diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index dbbabef..17ae78a 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -51,16 +51,33 @@ */ @RequestMapping(value = "/list") @ResponseBody - public Object list(){ + public Object list(String devType){ Page> page = new PageFactory>().defaultPage(); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = deviceService.selectDataScopePage(dataScope,page); - new DeviceWarpper(list).warp(); - page.setRecords(list); + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + page = deviceService.selectMapsPage(page,query); + new DeviceWarpper(page.getRecords()).warp(); return ResponseData.success(super.packForBT(page)); } /** + * 获取设备列表,不分页 + */ + @RequestMapping(value = "/listAll") + @ResponseBody + public Object listAll(String devType){ + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + List> list = deviceService.selectMaps(query); + new DeviceWarpper(list).warp(); + return ResponseData.success(list); + } + + /** * 添加设备 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @@ -71,7 +88,7 @@ return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); } try { - deviceService.insertDevice(device); + deviceService.insert(device); }catch (Exception e){ logger.error("设备添加失败", e); e.printStackTrace(); @@ -86,14 +103,17 @@ @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody @BussinessLog(value = "修改设备", key = DEVICE_ADD_LOG_KEY, dict = DeviceDict.class) - public Object update(Device device){ + public Object update(@Valid Device device, BindingResult result){ + if (result.hasErrors()) { + return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); + } if (ToolUtil.isEmpty(device.getId())) { throw new GunsException(GunsExceptionEnum.REQUEST_NULL); } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - deviceService.updateDevice(device); + deviceService.updateById(device); return ResponseData.success(); } @@ -114,35 +134,35 @@ return ResponseData.success(); } - /** - * 远程开门 - */ - @RequestMapping(value = "/open", method = RequestMethod.POST) - @ResponseBody - public Object open(Integer id){ - if(deviceService.remoteOpen(id)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - } - - /** - * 常开常闭 - * @param id - * @param alwaysOpen 1:常开 0:常闭 - */ - @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) - @ResponseBody - public Object alwaysOpen(Integer id, String alwaysOpen){ - if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - if(deviceService.alwaysOpen(id,alwaysOpen)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - - } +// /** +// * 远程开门 +// */ +// @RequestMapping(value = "/open", method = RequestMethod.POST) +// @ResponseBody +// public Object open(Integer id){ +// if(deviceService.remoteOpen(id)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// } +// +// /** +// * 常开常闭 +// * @param id +// * @param alwaysOpen 1:常开 0:常闭 +// */ +// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) +// @ResponseBody +// public Object alwaysOpen(Integer id, String alwaysOpen){ +// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { +// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); +// } +// if(deviceService.alwaysOpen(id,alwaysOpen)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// +// } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index dbbabef..17ae78a 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -51,16 +51,33 @@ */ @RequestMapping(value = "/list") @ResponseBody - public Object list(){ + public Object list(String devType){ Page> page = new PageFactory>().defaultPage(); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = deviceService.selectDataScopePage(dataScope,page); - new DeviceWarpper(list).warp(); - page.setRecords(list); + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + page = deviceService.selectMapsPage(page,query); + new DeviceWarpper(page.getRecords()).warp(); return ResponseData.success(super.packForBT(page)); } /** + * 获取设备列表,不分页 + */ + @RequestMapping(value = "/listAll") + @ResponseBody + public Object listAll(String devType){ + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + List> list = deviceService.selectMaps(query); + new DeviceWarpper(list).warp(); + return ResponseData.success(list); + } + + /** * 添加设备 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @@ -71,7 +88,7 @@ return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); } try { - deviceService.insertDevice(device); + deviceService.insert(device); }catch (Exception e){ logger.error("设备添加失败", e); e.printStackTrace(); @@ -86,14 +103,17 @@ @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody @BussinessLog(value = "修改设备", key = DEVICE_ADD_LOG_KEY, dict = DeviceDict.class) - public Object update(Device device){ + public Object update(@Valid Device device, BindingResult result){ + if (result.hasErrors()) { + return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); + } if (ToolUtil.isEmpty(device.getId())) { throw new GunsException(GunsExceptionEnum.REQUEST_NULL); } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - deviceService.updateDevice(device); + deviceService.updateById(device); return ResponseData.success(); } @@ -114,35 +134,35 @@ return ResponseData.success(); } - /** - * 远程开门 - */ - @RequestMapping(value = "/open", method = RequestMethod.POST) - @ResponseBody - public Object open(Integer id){ - if(deviceService.remoteOpen(id)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - } - - /** - * 常开常闭 - * @param id - * @param alwaysOpen 1:常开 0:常闭 - */ - @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) - @ResponseBody - public Object alwaysOpen(Integer id, String alwaysOpen){ - if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - if(deviceService.alwaysOpen(id,alwaysOpen)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - - } +// /** +// * 远程开门 +// */ +// @RequestMapping(value = "/open", method = RequestMethod.POST) +// @ResponseBody +// public Object open(Integer id){ +// if(deviceService.remoteOpen(id)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// } +// +// /** +// * 常开常闭 +// * @param id +// * @param alwaysOpen 1:常开 0:常闭 +// */ +// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) +// @ResponseBody +// public Object alwaysOpen(Integer id, String alwaysOpen){ +// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { +// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); +// } +// if(deviceService.alwaysOpen(id,alwaysOpen)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// +// } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 16ed91a..2bf6e42 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -18,8 +18,6 @@ * @since 2019-11-29 */ public interface DeviceMapper extends BaseMapper { - List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Integer countDeviceByDoor(@Param("doorCode")String doorCode); - String selectMaxByDoor(@Param("doorCode")String doorCode); - List> selectOutDeviceByDoor(@Param("doorCode")String doorCode); + List> selectDeviceByDoor(@Param("doorCode")String doorCode,@Param("inoutType")String inoutType); + Boolean clearDoorCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index dbbabef..17ae78a 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -51,16 +51,33 @@ */ @RequestMapping(value = "/list") @ResponseBody - public Object list(){ + public Object list(String devType){ Page> page = new PageFactory>().defaultPage(); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = deviceService.selectDataScopePage(dataScope,page); - new DeviceWarpper(list).warp(); - page.setRecords(list); + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + page = deviceService.selectMapsPage(page,query); + new DeviceWarpper(page.getRecords()).warp(); return ResponseData.success(super.packForBT(page)); } /** + * 获取设备列表,不分页 + */ + @RequestMapping(value = "/listAll") + @ResponseBody + public Object listAll(String devType){ + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + List> list = deviceService.selectMaps(query); + new DeviceWarpper(list).warp(); + return ResponseData.success(list); + } + + /** * 添加设备 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @@ -71,7 +88,7 @@ return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); } try { - deviceService.insertDevice(device); + deviceService.insert(device); }catch (Exception e){ logger.error("设备添加失败", e); e.printStackTrace(); @@ -86,14 +103,17 @@ @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody @BussinessLog(value = "修改设备", key = DEVICE_ADD_LOG_KEY, dict = DeviceDict.class) - public Object update(Device device){ + public Object update(@Valid Device device, BindingResult result){ + if (result.hasErrors()) { + return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); + } if (ToolUtil.isEmpty(device.getId())) { throw new GunsException(GunsExceptionEnum.REQUEST_NULL); } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - deviceService.updateDevice(device); + deviceService.updateById(device); return ResponseData.success(); } @@ -114,35 +134,35 @@ return ResponseData.success(); } - /** - * 远程开门 - */ - @RequestMapping(value = "/open", method = RequestMethod.POST) - @ResponseBody - public Object open(Integer id){ - if(deviceService.remoteOpen(id)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - } - - /** - * 常开常闭 - * @param id - * @param alwaysOpen 1:常开 0:常闭 - */ - @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) - @ResponseBody - public Object alwaysOpen(Integer id, String alwaysOpen){ - if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - if(deviceService.alwaysOpen(id,alwaysOpen)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - - } +// /** +// * 远程开门 +// */ +// @RequestMapping(value = "/open", method = RequestMethod.POST) +// @ResponseBody +// public Object open(Integer id){ +// if(deviceService.remoteOpen(id)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// } +// +// /** +// * 常开常闭 +// * @param id +// * @param alwaysOpen 1:常开 0:常闭 +// */ +// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) +// @ResponseBody +// public Object alwaysOpen(Integer id, String alwaysOpen){ +// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { +// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); +// } +// if(deviceService.alwaysOpen(id,alwaysOpen)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// +// } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 16ed91a..2bf6e42 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -18,8 +18,6 @@ * @since 2019-11-29 */ public interface DeviceMapper extends BaseMapper { - List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Integer countDeviceByDoor(@Param("doorCode")String doorCode); - String selectMaxByDoor(@Param("doorCode")String doorCode); - List> selectOutDeviceByDoor(@Param("doorCode")String doorCode); + List> selectDeviceByDoor(@Param("doorCode")String doorCode,@Param("inoutType")String inoutType); + Boolean clearDoorCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d6548eb..c66ef84 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -8,58 +8,34 @@ + - - + - ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, INSTALL_DATE AS installDate, ALWAYS_OPEN AS alwaysOpen + ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DEV_TYPE AS devType, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, DESCRIPTION AS description - SELECT - dev.ID AS id, - dev.DEV_CODE AS devCode, - dev.DEV_NAME AS devName, - dev.DEV_IP AS devIp, - dev.INOUT_TYPE AS inoutType, - dev.INSTALL_DATE AS installDate, - dev.ALWAYS_OPEN AS alwaysOpen, - door.ID AS doorId, - door.DOOR_CODE AS doorCode, - door.DOOR_NAME AS doorName, - door.DESCRIPTION AS description, - door.DEPTID AS deptid - FROM bus_device dev - LEFT JOIN bus_door door ON dev.DOOR_CODE = door.DOOR_CODE - - - - + - diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index dbbabef..17ae78a 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -51,16 +51,33 @@ */ @RequestMapping(value = "/list") @ResponseBody - public Object list(){ + public Object list(String devType){ Page> page = new PageFactory>().defaultPage(); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = deviceService.selectDataScopePage(dataScope,page); - new DeviceWarpper(list).warp(); - page.setRecords(list); + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + page = deviceService.selectMapsPage(page,query); + new DeviceWarpper(page.getRecords()).warp(); return ResponseData.success(super.packForBT(page)); } /** + * 获取设备列表,不分页 + */ + @RequestMapping(value = "/listAll") + @ResponseBody + public Object listAll(String devType){ + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + List> list = deviceService.selectMaps(query); + new DeviceWarpper(list).warp(); + return ResponseData.success(list); + } + + /** * 添加设备 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @@ -71,7 +88,7 @@ return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); } try { - deviceService.insertDevice(device); + deviceService.insert(device); }catch (Exception e){ logger.error("设备添加失败", e); e.printStackTrace(); @@ -86,14 +103,17 @@ @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody @BussinessLog(value = "修改设备", key = DEVICE_ADD_LOG_KEY, dict = DeviceDict.class) - public Object update(Device device){ + public Object update(@Valid Device device, BindingResult result){ + if (result.hasErrors()) { + return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); + } if (ToolUtil.isEmpty(device.getId())) { throw new GunsException(GunsExceptionEnum.REQUEST_NULL); } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - deviceService.updateDevice(device); + deviceService.updateById(device); return ResponseData.success(); } @@ -114,35 +134,35 @@ return ResponseData.success(); } - /** - * 远程开门 - */ - @RequestMapping(value = "/open", method = RequestMethod.POST) - @ResponseBody - public Object open(Integer id){ - if(deviceService.remoteOpen(id)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - } - - /** - * 常开常闭 - * @param id - * @param alwaysOpen 1:常开 0:常闭 - */ - @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) - @ResponseBody - public Object alwaysOpen(Integer id, String alwaysOpen){ - if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - if(deviceService.alwaysOpen(id,alwaysOpen)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - - } +// /** +// * 远程开门 +// */ +// @RequestMapping(value = "/open", method = RequestMethod.POST) +// @ResponseBody +// public Object open(Integer id){ +// if(deviceService.remoteOpen(id)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// } +// +// /** +// * 常开常闭 +// * @param id +// * @param alwaysOpen 1:常开 0:常闭 +// */ +// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) +// @ResponseBody +// public Object alwaysOpen(Integer id, String alwaysOpen){ +// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { +// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); +// } +// if(deviceService.alwaysOpen(id,alwaysOpen)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// +// } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 16ed91a..2bf6e42 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -18,8 +18,6 @@ * @since 2019-11-29 */ public interface DeviceMapper extends BaseMapper { - List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Integer countDeviceByDoor(@Param("doorCode")String doorCode); - String selectMaxByDoor(@Param("doorCode")String doorCode); - List> selectOutDeviceByDoor(@Param("doorCode")String doorCode); + List> selectDeviceByDoor(@Param("doorCode")String doorCode,@Param("inoutType")String inoutType); + Boolean clearDoorCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d6548eb..c66ef84 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -8,58 +8,34 @@ + - - + - ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, INSTALL_DATE AS installDate, ALWAYS_OPEN AS alwaysOpen + ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DEV_TYPE AS devType, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, DESCRIPTION AS description - SELECT - dev.ID AS id, - dev.DEV_CODE AS devCode, - dev.DEV_NAME AS devName, - dev.DEV_IP AS devIp, - dev.INOUT_TYPE AS inoutType, - dev.INSTALL_DATE AS installDate, - dev.ALWAYS_OPEN AS alwaysOpen, - door.ID AS doorId, - door.DOOR_CODE AS doorCode, - door.DOOR_NAME AS doorName, - door.DESCRIPTION AS description, - door.DEPTID AS deptid - FROM bus_device dev - LEFT JOIN bus_door door ON dev.DOOR_CODE = door.DOOR_CODE - - - - + - diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java index 8a72bc0..3b90bf2 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java @@ -7,7 +7,7 @@ @Override public void init() { put("id","设备ID"); - put("devName","设备名称"); + put("devCode","设备编号"); put("devIp","设备IP"); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index dbbabef..17ae78a 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -51,16 +51,33 @@ */ @RequestMapping(value = "/list") @ResponseBody - public Object list(){ + public Object list(String devType){ Page> page = new PageFactory>().defaultPage(); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = deviceService.selectDataScopePage(dataScope,page); - new DeviceWarpper(list).warp(); - page.setRecords(list); + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + page = deviceService.selectMapsPage(page,query); + new DeviceWarpper(page.getRecords()).warp(); return ResponseData.success(super.packForBT(page)); } /** + * 获取设备列表,不分页 + */ + @RequestMapping(value = "/listAll") + @ResponseBody + public Object listAll(String devType){ + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + List> list = deviceService.selectMaps(query); + new DeviceWarpper(list).warp(); + return ResponseData.success(list); + } + + /** * 添加设备 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @@ -71,7 +88,7 @@ return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); } try { - deviceService.insertDevice(device); + deviceService.insert(device); }catch (Exception e){ logger.error("设备添加失败", e); e.printStackTrace(); @@ -86,14 +103,17 @@ @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody @BussinessLog(value = "修改设备", key = DEVICE_ADD_LOG_KEY, dict = DeviceDict.class) - public Object update(Device device){ + public Object update(@Valid Device device, BindingResult result){ + if (result.hasErrors()) { + return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); + } if (ToolUtil.isEmpty(device.getId())) { throw new GunsException(GunsExceptionEnum.REQUEST_NULL); } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - deviceService.updateDevice(device); + deviceService.updateById(device); return ResponseData.success(); } @@ -114,35 +134,35 @@ return ResponseData.success(); } - /** - * 远程开门 - */ - @RequestMapping(value = "/open", method = RequestMethod.POST) - @ResponseBody - public Object open(Integer id){ - if(deviceService.remoteOpen(id)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - } - - /** - * 常开常闭 - * @param id - * @param alwaysOpen 1:常开 0:常闭 - */ - @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) - @ResponseBody - public Object alwaysOpen(Integer id, String alwaysOpen){ - if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - if(deviceService.alwaysOpen(id,alwaysOpen)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - - } +// /** +// * 远程开门 +// */ +// @RequestMapping(value = "/open", method = RequestMethod.POST) +// @ResponseBody +// public Object open(Integer id){ +// if(deviceService.remoteOpen(id)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// } +// +// /** +// * 常开常闭 +// * @param id +// * @param alwaysOpen 1:常开 0:常闭 +// */ +// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) +// @ResponseBody +// public Object alwaysOpen(Integer id, String alwaysOpen){ +// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { +// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); +// } +// if(deviceService.alwaysOpen(id,alwaysOpen)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// +// } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 16ed91a..2bf6e42 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -18,8 +18,6 @@ * @since 2019-11-29 */ public interface DeviceMapper extends BaseMapper { - List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Integer countDeviceByDoor(@Param("doorCode")String doorCode); - String selectMaxByDoor(@Param("doorCode")String doorCode); - List> selectOutDeviceByDoor(@Param("doorCode")String doorCode); + List> selectDeviceByDoor(@Param("doorCode")String doorCode,@Param("inoutType")String inoutType); + Boolean clearDoorCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d6548eb..c66ef84 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -8,58 +8,34 @@ + - - + - ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, INSTALL_DATE AS installDate, ALWAYS_OPEN AS alwaysOpen + ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DEV_TYPE AS devType, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, DESCRIPTION AS description - SELECT - dev.ID AS id, - dev.DEV_CODE AS devCode, - dev.DEV_NAME AS devName, - dev.DEV_IP AS devIp, - dev.INOUT_TYPE AS inoutType, - dev.INSTALL_DATE AS installDate, - dev.ALWAYS_OPEN AS alwaysOpen, - door.ID AS doorId, - door.DOOR_CODE AS doorCode, - door.DOOR_NAME AS doorName, - door.DESCRIPTION AS description, - door.DEPTID AS deptid - FROM bus_device dev - LEFT JOIN bus_door door ON dev.DOOR_CODE = door.DOOR_CODE - - - - + - diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java index 8a72bc0..3b90bf2 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java @@ -7,7 +7,7 @@ @Override public void init() { put("id","设备ID"); - put("devName","设备名称"); + put("devCode","设备编号"); put("devIp","设备IP"); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 814e054..0326b9f 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -11,6 +11,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.Pattern; import java.io.Serializable; /** @@ -46,8 +47,14 @@ * 设备IP */ @TableField("DEV_IP") + @Pattern(regexp = "((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)",message = "设备IP必须为合法IP地址") private String devIp; /** + * 设备类型 + */ + @TableField("DEV_TYPE") + private String devType; + /** * 门编号 */ @TableField("DOOR_CODE") @@ -57,17 +64,12 @@ */ @TableField("INOUT_TYPE") private String inoutType; + /** - * 安装日期 + * 描述 */ - @TableField("INSTALL_DATE") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date installDate; - /** - * 常开状态(1:常开;0:常闭) - */ - @TableField("ALWAYS_OPEN") - private String alwaysOpen; + @TableField("DESCRIPTION") + private String description; @Override protected Serializable pkVal() { @@ -81,10 +83,10 @@ ", devCode=" + devCode + ", devName=" + devName + ", devIp=" + devIp + + ", devType=" + devType + ", doorCode=" + doorCode + ", inoutType=" + inoutType + - ", installDate=" + installDate + - ", alwaysOpen=" + alwaysOpen + + ", description" + description + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index dbbabef..17ae78a 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -51,16 +51,33 @@ */ @RequestMapping(value = "/list") @ResponseBody - public Object list(){ + public Object list(String devType){ Page> page = new PageFactory>().defaultPage(); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = deviceService.selectDataScopePage(dataScope,page); - new DeviceWarpper(list).warp(); - page.setRecords(list); + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + page = deviceService.selectMapsPage(page,query); + new DeviceWarpper(page.getRecords()).warp(); return ResponseData.success(super.packForBT(page)); } /** + * 获取设备列表,不分页 + */ + @RequestMapping(value = "/listAll") + @ResponseBody + public Object listAll(String devType){ + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + List> list = deviceService.selectMaps(query); + new DeviceWarpper(list).warp(); + return ResponseData.success(list); + } + + /** * 添加设备 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @@ -71,7 +88,7 @@ return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); } try { - deviceService.insertDevice(device); + deviceService.insert(device); }catch (Exception e){ logger.error("设备添加失败", e); e.printStackTrace(); @@ -86,14 +103,17 @@ @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody @BussinessLog(value = "修改设备", key = DEVICE_ADD_LOG_KEY, dict = DeviceDict.class) - public Object update(Device device){ + public Object update(@Valid Device device, BindingResult result){ + if (result.hasErrors()) { + return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); + } if (ToolUtil.isEmpty(device.getId())) { throw new GunsException(GunsExceptionEnum.REQUEST_NULL); } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - deviceService.updateDevice(device); + deviceService.updateById(device); return ResponseData.success(); } @@ -114,35 +134,35 @@ return ResponseData.success(); } - /** - * 远程开门 - */ - @RequestMapping(value = "/open", method = RequestMethod.POST) - @ResponseBody - public Object open(Integer id){ - if(deviceService.remoteOpen(id)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - } - - /** - * 常开常闭 - * @param id - * @param alwaysOpen 1:常开 0:常闭 - */ - @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) - @ResponseBody - public Object alwaysOpen(Integer id, String alwaysOpen){ - if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - if(deviceService.alwaysOpen(id,alwaysOpen)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - - } +// /** +// * 远程开门 +// */ +// @RequestMapping(value = "/open", method = RequestMethod.POST) +// @ResponseBody +// public Object open(Integer id){ +// if(deviceService.remoteOpen(id)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// } +// +// /** +// * 常开常闭 +// * @param id +// * @param alwaysOpen 1:常开 0:常闭 +// */ +// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) +// @ResponseBody +// public Object alwaysOpen(Integer id, String alwaysOpen){ +// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { +// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); +// } +// if(deviceService.alwaysOpen(id,alwaysOpen)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// +// } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 16ed91a..2bf6e42 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -18,8 +18,6 @@ * @since 2019-11-29 */ public interface DeviceMapper extends BaseMapper { - List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Integer countDeviceByDoor(@Param("doorCode")String doorCode); - String selectMaxByDoor(@Param("doorCode")String doorCode); - List> selectOutDeviceByDoor(@Param("doorCode")String doorCode); + List> selectDeviceByDoor(@Param("doorCode")String doorCode,@Param("inoutType")String inoutType); + Boolean clearDoorCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d6548eb..c66ef84 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -8,58 +8,34 @@ + - - + - ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, INSTALL_DATE AS installDate, ALWAYS_OPEN AS alwaysOpen + ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DEV_TYPE AS devType, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, DESCRIPTION AS description - SELECT - dev.ID AS id, - dev.DEV_CODE AS devCode, - dev.DEV_NAME AS devName, - dev.DEV_IP AS devIp, - dev.INOUT_TYPE AS inoutType, - dev.INSTALL_DATE AS installDate, - dev.ALWAYS_OPEN AS alwaysOpen, - door.ID AS doorId, - door.DOOR_CODE AS doorCode, - door.DOOR_NAME AS doorName, - door.DESCRIPTION AS description, - door.DEPTID AS deptid - FROM bus_device dev - LEFT JOIN bus_door door ON dev.DOOR_CODE = door.DOOR_CODE - - - - + - diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java index 8a72bc0..3b90bf2 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java @@ -7,7 +7,7 @@ @Override public void init() { put("id","设备ID"); - put("devName","设备名称"); + put("devCode","设备编号"); put("devIp","设备IP"); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 814e054..0326b9f 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -11,6 +11,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.Pattern; import java.io.Serializable; /** @@ -46,8 +47,14 @@ * 设备IP */ @TableField("DEV_IP") + @Pattern(regexp = "((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)",message = "设备IP必须为合法IP地址") private String devIp; /** + * 设备类型 + */ + @TableField("DEV_TYPE") + private String devType; + /** * 门编号 */ @TableField("DOOR_CODE") @@ -57,17 +64,12 @@ */ @TableField("INOUT_TYPE") private String inoutType; + /** - * 安装日期 + * 描述 */ - @TableField("INSTALL_DATE") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date installDate; - /** - * 常开状态(1:常开;0:常闭) - */ - @TableField("ALWAYS_OPEN") - private String alwaysOpen; + @TableField("DESCRIPTION") + private String description; @Override protected Serializable pkVal() { @@ -81,10 +83,10 @@ ", devCode=" + devCode + ", devName=" + devName + ", devIp=" + devIp + + ", devType=" + devType + ", doorCode=" + doorCode + ", inoutType=" + inoutType + - ", installDate=" + installDate + - ", alwaysOpen=" + alwaysOpen + + ", description" + description + "}"; } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java index 806e446..3c5dfcc 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java @@ -17,9 +17,7 @@ * @since 2019-11-29 */ public interface IDeviceService extends IService { - List> selectDataScopePage(DataScope dataScope, Page page); - boolean insertDevice(Device device); - boolean updateDevice(Device device); - boolean remoteOpen(Integer id); - boolean alwaysOpen(Integer id, String alwaysOpen); + Boolean remoteOpen(Integer id); + Boolean clearDoorCode(String doorCode); + List> selectDeviceByDoor(String doorCode,String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index dbbabef..17ae78a 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -51,16 +51,33 @@ */ @RequestMapping(value = "/list") @ResponseBody - public Object list(){ + public Object list(String devType){ Page> page = new PageFactory>().defaultPage(); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = deviceService.selectDataScopePage(dataScope,page); - new DeviceWarpper(list).warp(); - page.setRecords(list); + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + page = deviceService.selectMapsPage(page,query); + new DeviceWarpper(page.getRecords()).warp(); return ResponseData.success(super.packForBT(page)); } /** + * 获取设备列表,不分页 + */ + @RequestMapping(value = "/listAll") + @ResponseBody + public Object listAll(String devType){ + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + List> list = deviceService.selectMaps(query); + new DeviceWarpper(list).warp(); + return ResponseData.success(list); + } + + /** * 添加设备 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @@ -71,7 +88,7 @@ return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); } try { - deviceService.insertDevice(device); + deviceService.insert(device); }catch (Exception e){ logger.error("设备添加失败", e); e.printStackTrace(); @@ -86,14 +103,17 @@ @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody @BussinessLog(value = "修改设备", key = DEVICE_ADD_LOG_KEY, dict = DeviceDict.class) - public Object update(Device device){ + public Object update(@Valid Device device, BindingResult result){ + if (result.hasErrors()) { + return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); + } if (ToolUtil.isEmpty(device.getId())) { throw new GunsException(GunsExceptionEnum.REQUEST_NULL); } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - deviceService.updateDevice(device); + deviceService.updateById(device); return ResponseData.success(); } @@ -114,35 +134,35 @@ return ResponseData.success(); } - /** - * 远程开门 - */ - @RequestMapping(value = "/open", method = RequestMethod.POST) - @ResponseBody - public Object open(Integer id){ - if(deviceService.remoteOpen(id)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - } - - /** - * 常开常闭 - * @param id - * @param alwaysOpen 1:常开 0:常闭 - */ - @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) - @ResponseBody - public Object alwaysOpen(Integer id, String alwaysOpen){ - if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - if(deviceService.alwaysOpen(id,alwaysOpen)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - - } +// /** +// * 远程开门 +// */ +// @RequestMapping(value = "/open", method = RequestMethod.POST) +// @ResponseBody +// public Object open(Integer id){ +// if(deviceService.remoteOpen(id)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// } +// +// /** +// * 常开常闭 +// * @param id +// * @param alwaysOpen 1:常开 0:常闭 +// */ +// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) +// @ResponseBody +// public Object alwaysOpen(Integer id, String alwaysOpen){ +// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { +// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); +// } +// if(deviceService.alwaysOpen(id,alwaysOpen)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// +// } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 16ed91a..2bf6e42 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -18,8 +18,6 @@ * @since 2019-11-29 */ public interface DeviceMapper extends BaseMapper { - List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Integer countDeviceByDoor(@Param("doorCode")String doorCode); - String selectMaxByDoor(@Param("doorCode")String doorCode); - List> selectOutDeviceByDoor(@Param("doorCode")String doorCode); + List> selectDeviceByDoor(@Param("doorCode")String doorCode,@Param("inoutType")String inoutType); + Boolean clearDoorCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d6548eb..c66ef84 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -8,58 +8,34 @@ + - - + - ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, INSTALL_DATE AS installDate, ALWAYS_OPEN AS alwaysOpen + ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DEV_TYPE AS devType, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, DESCRIPTION AS description - SELECT - dev.ID AS id, - dev.DEV_CODE AS devCode, - dev.DEV_NAME AS devName, - dev.DEV_IP AS devIp, - dev.INOUT_TYPE AS inoutType, - dev.INSTALL_DATE AS installDate, - dev.ALWAYS_OPEN AS alwaysOpen, - door.ID AS doorId, - door.DOOR_CODE AS doorCode, - door.DOOR_NAME AS doorName, - door.DESCRIPTION AS description, - door.DEPTID AS deptid - FROM bus_device dev - LEFT JOIN bus_door door ON dev.DOOR_CODE = door.DOOR_CODE - - - - + - diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java index 8a72bc0..3b90bf2 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java @@ -7,7 +7,7 @@ @Override public void init() { put("id","设备ID"); - put("devName","设备名称"); + put("devCode","设备编号"); put("devIp","设备IP"); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 814e054..0326b9f 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -11,6 +11,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.Pattern; import java.io.Serializable; /** @@ -46,8 +47,14 @@ * 设备IP */ @TableField("DEV_IP") + @Pattern(regexp = "((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)",message = "设备IP必须为合法IP地址") private String devIp; /** + * 设备类型 + */ + @TableField("DEV_TYPE") + private String devType; + /** * 门编号 */ @TableField("DOOR_CODE") @@ -57,17 +64,12 @@ */ @TableField("INOUT_TYPE") private String inoutType; + /** - * 安装日期 + * 描述 */ - @TableField("INSTALL_DATE") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date installDate; - /** - * 常开状态(1:常开;0:常闭) - */ - @TableField("ALWAYS_OPEN") - private String alwaysOpen; + @TableField("DESCRIPTION") + private String description; @Override protected Serializable pkVal() { @@ -81,10 +83,10 @@ ", devCode=" + devCode + ", devName=" + devName + ", devIp=" + devIp + + ", devType=" + devType + ", doorCode=" + doorCode + ", inoutType=" + inoutType + - ", installDate=" + installDate + - ", alwaysOpen=" + alwaysOpen + + ", description" + description + "}"; } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java index 806e446..3c5dfcc 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java @@ -17,9 +17,7 @@ * @since 2019-11-29 */ public interface IDeviceService extends IService { - List> selectDataScopePage(DataScope dataScope, Page page); - boolean insertDevice(Device device); - boolean updateDevice(Device device); - boolean remoteOpen(Integer id); - boolean alwaysOpen(Integer id, String alwaysOpen); + Boolean remoteOpen(Integer id); + Boolean clearDoorCode(String doorCode); + List> selectDeviceByDoor(String doorCode,String inoutType); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java index 5e52614..1cb3988 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java @@ -1,8 +1,5 @@ package com.casic.missiles.modular.system.service.impl; -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.system.service.IDeviceService; @@ -11,7 +8,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.text.DecimalFormat; import java.util.List; import java.util.Map; @@ -32,58 +28,7 @@ private Integer port; @Override - public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public boolean insertDevice(Device device){ - device.setDevCode(generateDevCode(device)); - return this.insert(device); - } - - @Override - public boolean updateDevice(Device device){ - String devCode = device.getDevCode(); - String doorCode = device.getDoorCode(); - if(ToolUtil.isEmpty(devCode) || !doorCode.equals(extractDoorCode(devCode))){ - device.setDevCode(generateDevCode(device)); - } - return this.updateById(device); - } - - /** - * 自动生成设备编号,生成规则:‘D’+ DOOR_CODE(门编号) + 'N' + COUNT(根据门计算) - **/ - private String generateDevCode(Device device){ - DecimalFormat df = new DecimalFormat("00"); -// Integer countNum = this.baseMapper.countDeviceByDoor(device.getDoorCode())+1; - String max = this.baseMapper.selectMaxByDoor(device.getDoorCode()); - String count = df.format(extractDeviceCount(max)+1); - StringBuilder sb = new StringBuilder(); - sb.append('D').append(device.getDoorCode()).append('N').append(count); - return sb.toString(); - } - - /** - * 根据设备编号获取门编号 - */ - private String extractDoorCode(String devCode){ - int p1 = devCode.indexOf('D'); - int p2 = devCode.indexOf('N'); - return devCode.substring(p1+1,p2); - } - - /** - * 根据设备编号获取设备数(count) - */ - private Integer extractDeviceCount(String devCode){ - int p1 = devCode.indexOf('N'); - return Integer.valueOf(devCode.substring(p1+1)); - } - - @Override - public boolean remoteOpen(Integer id) { + public Boolean remoteOpen(Integer id) { Device device = this.selectById(id); String devIp = device.getDevIp(); Map res = SocketClientUtil.sendMessage(devIp,port,DeviceConst.REMOTE_OPEN); @@ -95,24 +40,13 @@ } @Override - public boolean alwaysOpen(Integer id, String alwaysOpen) { - Device device = this.selectById(id); - // 1. 发送指令 - String devIp = device.getDevIp(); - String msg = new String(); - if("1".equals(alwaysOpen)){ - msg = DeviceConst.ALWAYS_OPEN; - }else if("0".equals(alwaysOpen)){ - msg = DeviceConst.ALWAYS_CLOSE; - } - Map res = SocketClientUtil.sendMessage(devIp,port,msg); - if ((boolean)res.get("success")){ - // 2.更新数据库 - device.setAlwaysOpen(alwaysOpen); - this.updateById(device); - return true; - }else { - return false; - } + public Boolean clearDoorCode(String doorCode) { + return this.baseMapper.clearDoorCode(doorCode); } + + @Override + public List> selectDeviceByDoor(String doorCode, String inoutType) { + return this.baseMapper.selectDeviceByDoor(doorCode, inoutType); + } + } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java new file mode 100644 index 0000000..61a158f --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/AcsPermissionController.java @@ -0,0 +1,121 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.warpper.AcsPermissionWarpper; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import java.util.List; +import java.util.Map; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.service.IAcsPermissionService; + +/** + * 控制器 + * + * @author dev + * @Date 2019-12-03 14:47:23 + */ +@Controller +@RequestMapping("/acsPermission") +public class AcsPermissionController extends BaseController { + + + @Autowired + private IAcsPermissionService acsPermissionService; + @Autowired + private ICommonPermissionService commonPermissionService; + + /** + * 门禁授权列表(门禁列表) + */ + @RequestMapping(value = "/listDoor") + @ResponseBody + public Object listDoor(){ + DataScope dataScope = commonPermissionService.getCurrUserDataScope(); + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectDoorList(dataScope,page); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 员工授权列表 + */ + @RequestMapping(value = "/listStaffPerm") + @ResponseBody + public Object listStaffPerm(String doorCode,String keyword,Long deptId){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectStaffList(page,doorCode,keyword,deptId); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 访客授权列表 + */ + @RequestMapping(value = "/listVisitorPerm") + @ResponseBody + public Object listVisitorPerm(String doorCode,String keyword,String beginTime,String endTime){ + Page> page = new PageFactory>().defaultPage(); + List> list = acsPermissionService.selectVisitorList(page,doorCode,keyword,beginTime,endTime); + new AcsPermissionWarpper(list).warp(); + page.setRecords(list); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增授权 + * @param doorCode 门禁编号 + * @param personList 人员ID列表 + * @param strategyId 策略ID + * @return + */ + @RequestMapping(value = "/add",method = RequestMethod.POST) + @ResponseBody + public Object add(@RequestParam("doorCode")String doorCode, + @RequestParam("personList")List personList, + @RequestParam("strategyId")Integer strategyId){ + acsPermissionService.addPermission(doorCode, personList, strategyId); + return ResponseData.success(); + } + + /** + * 查询员工列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listStaff") + @ResponseBody + public Object listStaff(String doorCode,String keyword,Long deptId){ + List> list = acsPermissionService.selectUserList(doorCode,"1",keyword,deptId); + return ResponseData.success(list); + } + + /** + * 查询访客列表,排除doorCode已有授权人员(新增用) + */ + @RequestMapping(value = "/listVisitor") + @ResponseBody + public Object listVisitor(String doorCode,String keyword){ + List> list = acsPermissionService.selectUserList(doorCode,"0",keyword,null); + return ResponseData.success(list); + } + + /** + * 取消授权(删除) + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam Integer permissionId){ + acsPermissionService.deleteById(permissionId); + return ResponseData.success(); + } + +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java index c7f1533..b1d9b45 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/DoorController.java @@ -118,24 +118,52 @@ @BussinessLog(value = "删除门禁") public Object delete(@RequestParam List ids){ try { - return doorService.deleteBatch(ids); + doorService.deleteBatch(ids); }catch (Exception e){ logger.error("门禁删除失败", e); e.printStackTrace(); return ResponseData.error("删除失败"); } + return ResponseData.success(); } /** - * 判断该门禁是否有出门设备 + * 绑定设备 */ - @RequestMapping(value = "/existOut") + @RequestMapping(value = "/bindDevice") @ResponseBody - public Object existOut(Integer id){ + public Object bindDevice(@RequestParam(value = "doorId",required = true) Integer doorId, + @RequestParam(value = "inDeviceIds",required = false) List inDeviceIds, + @RequestParam(value = "outDeviceIds",required = false) List outDeviceIds){ + doorService.bindDevice(doorId, inDeviceIds, outDeviceIds); + return ResponseData.success(); + } + + /** + * 更新开门状态 + */ + @RequestMapping(value = "/updateOpenStatus") + @ResponseBody + public Object updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime){ try { - return ResponseData.success(doorService.existOut(id)); + doorService.updateOpenStatus(doorId, openStatus, beginDateTime, endDateTime); }catch (Exception e){ - return ResponseData.error("请求失败"); + e.printStackTrace(); + return ResponseData.error("更新失败"); + } + return ResponseData.success(); + } + + /** + * 远程开门 + */ + @RequestMapping(value = "/remoteOpen") + @ResponseBody + public Object remoteOpen(Integer doorId){ + if(doorService.remoteOpenDoor(doorId)){ + return ResponseData.success(); + }else { + return ResponseData.error("开门失败"); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java index 48ee26c..afdee3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/RecognitionRecordsController.java @@ -36,17 +36,15 @@ @Autowired private ICommonPermissionService permissionService; - //TODO 人员类型改为字典值? - /** * 员工数据查询 */ @RequestMapping(value = "/listStaff") @ResponseBody - public Object listStaff(String keyword,Long personDeptId,String doorName,String devCode,String beginTime,String endTime){ + public Object listStaff(String keyword,Long personDeptId,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectStaffDataScopePage(dataScope,page,keyword,personDeptId,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -57,10 +55,10 @@ */ @RequestMapping(value = "/listVisitor") @ResponseBody - public Object listVisitor(String keyword,String doorName,String devCode,String beginTime,String endTime){ + public Object listVisitor(String keyword,String doorCode,String devCode,String beginTime,String endTime){ Page> page = new PageFactory>().defaultPage(); DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorName,devCode,beginTime,endTime); + List> list = recordsService.selectVisitorDataScopePage(dataScope,page,keyword,doorCode,devCode,beginTime,endTime); new RecognitionRecordsWarpper(list).warp(); page.setRecords(list); return ResponseData.success(super.packForBT(page)); @@ -71,8 +69,8 @@ */ @RequestMapping(value = "/statisticByDept") @ResponseBody - public Object statisticByDept(String doorName,String beginTime,String endTime,String inoutType){ - List> res = recordsService.statisticByDept(doorName, beginTime, endTime, inoutType); + public Object statisticByDept(String doorCode,String beginTime,String endTime,String inoutType){ + List> res = recordsService.statisticByDept(doorCode, beginTime, endTime, inoutType); return ResponseData.success(res); } @@ -81,8 +79,8 @@ */ @RequestMapping(value = "/statisticByPerson") @ResponseBody - public Object statisticByPerson(String doorName,String beginTime,String endTime, Long deptId, Long personId){ - List> res = recordsService.statisticByPerson(doorName, beginTime, endTime, deptId, personId); + public Object statisticByPerson(String doorCode,String beginTime,String endTime, Long deptId, Long personId){ + List> res = recordsService.statisticByPerson(doorCode, beginTime, endTime, deptId, personId); return ResponseData.success(res); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index b7884b4..f55aafd 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java @@ -71,19 +71,19 @@ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer strategyId) { - strategyService.deleteById(strategyId); + strategyService.deleteStrategy(strategyId); return ResponseData.success(); } /** - * 批量删除 + * 批量删除,暂时不用 */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("strategyIds") List strategyIds) { - strategyService.deleteBatchIds(strategyIds); - return ResponseData.success(); - } +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("strategyIds") List strategyIds) { +// strategyService.deleteBatchIds(strategyIds); +// return ResponseData.success(); +// } /** * 修改 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java new file mode 100644 index 0000000..79315db --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/AcsPermissionMapper.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface AcsPermissionMapper extends BaseMapper { + List> selectDoorList(@Param("datascope")DataScope dataScope,@Param("page")Page page); + List> selectStaffList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("deptId")Long deptId); + List> selectVisitorList(@Param("page")Page page,@Param("doorCode")String doorCode,@Param("keyword")String keyword,@Param("beginTime")String beginTime,@Param("endTime")String endTime); + + List> selectUserList(@Param("doorCode")String doorCode,@Param("personType")String personType,@Param("keyword")String keyword,@Param("deptId")Long deptId); + //List> selectByDoorAndUser(@Param("doorCode")String doorCode,@Param("personId")Long personId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java index d128811..6e47a04 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/DoorMapper.java @@ -20,5 +20,5 @@ public interface DoorMapper extends BaseMapper { List> selectDataScope(@Param("datascope")DataScope dataScope); List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Door selectByName(@Param("doorName")String doorName); + Door selectByCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java index a4445a1..8b983a5 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/RecognitionRecordsMapper.java @@ -19,10 +19,10 @@ * @since 2019-12-02 */ public interface RecognitionRecordsMapper extends BaseMapper { - List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorName")String doorName, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectStaffDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("personDeptId")Long personDeptId, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); + List> selectVisitorDataScopePage(@Param("dataScope")DataScope dataScope, @Param("page")Page page, @Param("keyword")String keyword, @Param("doorCode")String doorCode, @Param("devCode")String devCode, @Param("beginTime")String beginTime, @Param("endTime")String endTime); - List> statisticByDept(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); - Integer statisticByPerson(@Param("doorName") String doorName,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml new file mode 100644 index 0000000..03b9df5 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/AcsPermissionMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + ID AS id, DOOR_CODE AS doorCode, PERSON_ID AS personId, STRATEGY_ID AS strategyId, CREATE_USER AS createUser, CREATE_TIME AS createTime + + + + + + + + + + + diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml index 0ee8aed..18d8daf 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/DoorMapper.xml @@ -9,27 +9,30 @@ + + + - ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid + ID AS id, DOOR_CODE AS doorCode, DOOR_NAME AS doorName, DESCRIPTION AS description, DEPTID AS deptid, OPEN_STATUS AS openStatus, BEGIN_DATETIME AS beginDatetime, END_DATETIME AS endDatetime - SELECT - FROM bus_door - WHERE DOOR_NAME = #{doorName} + FROM acs_door + WHERE DOOR_CODE = #{doorCode} LIMIT 1 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml index 729bbde..7111c89 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/RecognitionRecordsMapper.xml @@ -5,44 +5,46 @@ - + + + - ID AS id, STAFF_ID AS staffId, DATETIME AS datetime, DEV_CODE AS devCode + ID AS id, PERSON_ID AS personId, DATETIME AS datetime, DEV_CODE AS devCode,DOOR_CODE AS doorCode,INOUT_TYPE AS inoutType @@ -114,12 +115,11 @@ count(*) AS num FROM `recognition_records` re - LEFT JOIN bus_device dev ON dev.DEV_CODE = re.DEV_CODE - LEFT JOIN bus_door door ON door.DOOR_CODE = SUBSTR(re.DEV_CODE,2,LENGTH(re.DEV_CODE)-4) - LEFT JOIN sys_person p ON p.ID = re.STAFF_ID - WHERE p.TYPE = 1 - AND door.DOOR_NAME = #{doorName} - AND dev.INOUT_TYPE = #{inoutType} + LEFT JOIN acs_door door ON door.DOOR_CODE = re.DOOR_CODE + LEFT JOIN sys_person p ON p.ID = re.PERSON_ID + WHERE p.PERSON_TYPE = 1 + AND door.DOOR_CODE = #{doorCode} + AND re.INOUT_TYPE = #{inoutType} AND p.DEPTID = #{deptId} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java new file mode 100644 index 0000000..0ffd699 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/AcsPermission.java @@ -0,0 +1,77 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Data +@TableName("acs_permission") +public class AcsPermission extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + /** + * 门禁编号 + */ + @TableField("DOOR_CODE") + private String doorCode; + /** + * 人员ID + */ + @TableField("PERSON_ID") + private Long personId; + /** + * 策略ID + */ + @TableField("STRATEGY_ID") + private Integer strategyId; + /** + * 创建用户 + */ + @TableField("CREATE_USER") + private Long createUser; + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "AcsPermission{" + + "id=" + id + + ", doorCode=" + doorCode + + ", personId=" + personId + + ", strategyId=" + strategyId + + ", createUser=" + createUser + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java index e8111a9..d672e51 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Door.java @@ -2,24 +2,28 @@ import java.io.Serializable; +import com.baomidou.mybatisplus.enums.FieldStrategy; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; /** *

- * + * *

* * @author 123 - * @since 2019-11-29 + * @since 2019-12-04 */ @Data -@TableName("bus_door") +@TableName("acs_door") public class Door extends Model { private static final long serialVersionUID = 1L; @@ -27,15 +31,15 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** - * 门编号 + * 门禁编号 */ @TableField("DOOR_CODE") private String doorCode; /** - * 门名称 + * 门禁名称 */ @TableField("DOOR_NAME") private String doorName; @@ -44,12 +48,28 @@ */ @TableField("DESCRIPTION") private String description; - /** * 权属单位 */ @TableField("DEPTID") private Long deptid; + /** + * 开门状态(1:常开;0:常闭;2:正常) + */ + @TableField("OPEN_STATUS") + private String openStatus; + /** + * 生效时间 + */ + @TableField(value = "BEGIN_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beginDatetime; + /** + * 失效时间 + */ + @TableField(value = "END_DATETIME", strategy= FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDatetime; @Override protected Serializable pkVal() { @@ -59,10 +79,14 @@ @Override public String toString() { return "Door{" + - "id=" + id + - ", doorCode=" + doorCode + - ", doorName=" + doorName + - ", description=" + description + - "}"; + "id=" + id + + ", doorCode=" + doorCode + + ", doorName=" + doorName + + ", description=" + description + + ", deptid=" + deptid + + ", openStatus=" + openStatus + + ", beginDatetime=" + beginDatetime + + ", endDatetime=" + endDatetime + + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java index 29dce4d..6415047 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/RecognitionRecords.java @@ -30,10 +30,10 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; /** - * 对应staff表主键 + * 对应person表主键 */ - @TableField("STAFF_ID") - private Long staffId; + @TableField("PERSON_ID") + private Long personId; /** * 识别时间 */ @@ -45,6 +45,18 @@ @TableField("DEV_CODE") private String devCode; + /** + * 门编码 + */ + @TableField("DOOR_CODE") + private String doorCode; + + /** + * 进出标记 + */ + @TableField("INOUT_TYPE") + private String inoutType; + @Override protected Serializable pkVal() { return this.id; @@ -54,9 +66,11 @@ public String toString() { return "RecognitionRecords{" + "id=" + id + - ", staffId=" + staffId + + ", personId=" + personId + ", datetime=" + datetime + ", devCode=" + devCode + + ", doorCode=" + doorCode + + ", inoutType=" + inoutType + "}"; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 25c0c87..6e8ee67 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java @@ -68,14 +68,14 @@ * 生效时间 */ @TableField("BEGIN_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time beginTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String beginTime; /** * 失效时间 */ @TableField("END_TIME") - @DateTimeFormat(pattern = "HH:mm:ss") - private Time endTime; + //@DateTimeFormat(pattern = "HH:mm:ss") + private String endTime; /** * 描述 diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java new file mode 100644 index 0000000..1f1103c --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IAcsPermissionService.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +public interface IAcsPermissionService extends IService { + List> selectDoorList(DataScope dataScope,Page page); + List> selectStaffList(Page page,String doorCode,String keyword,Long deptId); + List> selectVisitorList(Page page,String doorCode,String keyword,String beginTime,String endTime); + List> selectUserList(String doorCode,String personType,String keyword,Long deptId); + Boolean addPermission(String doorCode,List personList,Integer strategyId); + Boolean deleteByStrategy(Integer strategyId); +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java index d8764da..ab41b3f 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IDoorService.java @@ -5,6 +5,7 @@ import com.casic.missiles.modular.system.model.Door; import com.baomidou.mybatisplus.service.IService; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -19,7 +20,10 @@ public interface IDoorService extends IService { List> selectDataScope(DataScope dataScope); List> selectDataScopePage(DataScope dataScope, Page page); - Object deleteBatch(List ids); - Boolean existOut(Integer id); - Door selectByName(String doorName); + Boolean deleteBatch(List ids); + Boolean existOut(String doorCode); + Door selectByCode(String doorCode); + Boolean bindDevice(Integer doorId,List inDeviceIds,List outDeviceIds); + Boolean updateOpenStatus(Integer doorId,String openStatus,String beginDateTime, String endDateTime) throws ParseException; + Boolean remoteOpenDoor(Integer doorId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java index 9336707..5db5a1d 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IRecognitionRecordsService.java @@ -17,11 +17,11 @@ * @since 2019-12-02 */ public interface IRecognitionRecordsService extends IService { - List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime); - List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime); + List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime); + List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime); - List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType); - List> statisticByPerson(String doorName,String beginTime, String endTime,Long deptId, Long personId); + List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); + List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java index b239203..a064e7e 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IStrategyService.java @@ -12,5 +12,5 @@ * @since 2019-12-03 */ public interface IStrategyService extends IService { - + Boolean deleteStrategy(Integer strategyId); } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java new file mode 100644 index 0000000..2ff1262 --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/AcsPermissionServiceImpl.java @@ -0,0 +1,85 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.dao.AcsPermissionMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author 123 + * @since 2019-12-03 + */ +@Service +public class AcsPermissionServiceImpl extends ServiceImpl implements IAcsPermissionService { + @Autowired + private ICommonPermissionService commonPermissionService; + + @Override + public List> selectDoorList(DataScope dataScope, Page page) { + return this.baseMapper.selectDoorList(dataScope,page); + } + + @Override + public List> selectStaffList(Page page,String doorCode, String keyword, Long deptId) { + return this.baseMapper.selectStaffList(page,doorCode,keyword,deptId); + } + + @Override + public List> selectVisitorList(Page page,String doorCode, String keyword, String beginTime, String endTime) { + return this.baseMapper.selectVisitorList(page, doorCode, keyword, beginTime, endTime); + } + + @Override + @Transactional + public Boolean addPermission(String doorCode, List personList, Integer strategyId) { + for (Long personId : personList) { + AcsPermission acsPermission = new AcsPermission(); + acsPermission.setDoorCode(doorCode); + acsPermission.setPersonId(personId); + acsPermission.setStrategyId(strategyId); + acsPermission.setCreateTime(new Date()); + acsPermission.setCreateUser(commonPermissionService.getCurrLoginUser().getId()); + this.insert(acsPermission); + } + return true; + } + + @Override + public List> selectUserList(String doorCode,String personType, String keyword, Long deptId) { + List> list = this.baseMapper.selectUserList(doorCode, personType, keyword, deptId); + for (Map map : list) { + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } + return list; + } + + @Override + @Transactional + public Boolean deleteByStrategy(Integer strategyId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("STRATEGY_ID",strategyId); + List acsPermissionsList = this.selectList(query); + for (AcsPermission acsPermission : acsPermissionsList) { + this.deleteById(acsPermission.getId()); + } + return true; + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java index d7b6526..84b5a5c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/DoorServiceImpl.java @@ -1,16 +1,25 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dao.DeviceMapper; +import com.casic.missiles.modular.system.model.AcsPermission; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Door; import com.casic.missiles.modular.system.dao.DoorMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,52 +34,149 @@ */ @Service public class DoorServiceImpl extends ServiceImpl implements IDoorService { + @Autowired - private DeviceMapper deviceMapper; + private IDeviceService deviceService; + @Autowired + private IAcsPermissionService acsPermissionService; @Override public List> selectDataScope(DataScope dataScope) { - return this.baseMapper.selectDataScope(dataScope); + List> list = this.baseMapper.selectDataScope(dataScope); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); + }else{ + map.put("hasOut",false); + } + } + return list; } @Override public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public Object deleteBatch(List ids) { - List ref = new ArrayList<>(); // 存储不能删除的门禁编号 - for (Integer id : ids) { - Door door = this.selectById(id); - Integer count = deviceMapper.countDeviceByDoor(door.getDoorCode()); - if(count > 0){ - ref.add(door.getDoorCode()); + List> list = this.baseMapper.selectDataScopePage(dataScope,page); + for (Map map : list) { + String doorCode = map.get("doorCode").toString(); + map.put("inDevice",getDevice(doorCode,"1")); + String outDevice = getDevice(doorCode,"0"); + map.put("outDevice",outDevice); + if(ToolUtil.isNotEmpty(outDevice)){ + map.put("hasOut",true); }else{ - this.deleteById(id); // 没有关联设备的门,直接删除 + map.put("hasOut",false); } } - if(ref.size()>0){ - String codes = String.join(",",ref); - return ResponseData.error(codes + ",以上门禁存在绑定设备,请先解绑后再删除!"); + return list; + } + + + private String getDevice(String doorCode,String inoutType){ + List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 + if(list.size()>0){ + List devCodes = new ArrayList<>(); + list.forEach(map -> devCodes.add(map.get("devCode").toString())); + return String.join(",",devCodes); }else{ - return ResponseData.success(); + return ""; } } @Override - public Boolean existOut(Integer id) { - Door door = this.selectById(id); - List> list = deviceMapper.selectOutDeviceByDoor(door.getDoorCode()); + @Transactional + public Boolean deleteBatch(List ids) { + for (Integer id : ids) { + Door door = this.selectById(id); + //1.清除设备绑定关系 + deviceService.clearDoorCode(door.getDoorCode()); + //2.删除相关门禁授权 + EntityWrapper ascQuery = new EntityWrapper<>(); + ascQuery.eq("DOOR_CODE",door.getDoorCode()); + acsPermissionService.delete(ascQuery); + //3.删除门禁 + this.deleteById(id); + } + return true; + } + + @Override + public Boolean existOut(String doorCode) { +// List> list = deviceMapper.selectDeviceByDoor(doorCode,"0"); + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("DOOR_CODE",doorCode); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); if(list.size()>0){ return true; - }else{ + }else { return false; } } @Override - public Door selectByName(String doorName) { - return this.baseMapper.selectByName(doorName); + public Door selectByCode(String doorCode) { + return this.baseMapper.selectByCode(doorCode); + } + + @Override + @Transactional + public Boolean bindDevice(Integer doorId, List inDeviceIds, List outDeviceIds) { + Door door = this.selectById(doorId); + //进门设备 + if(ToolUtil.isNotEmpty(inDeviceIds)){ + for (Integer inDeviceId : inDeviceIds) { + Device inDevice = deviceService.selectById(inDeviceId); + inDevice.setDoorCode(door.getDoorCode()); + inDevice.setInoutType("1"); + deviceService.updateById(inDevice); + } + } + if(ToolUtil.isNotEmpty(outDeviceIds)){ + //出门设备 + for (Integer outDeviceId : outDeviceIds) { + Device outDevice = deviceService.selectById(outDeviceId); + outDevice.setDoorCode(door.getDoorCode()); + outDevice.setInoutType("0"); + deviceService.updateById(outDevice); + } + } + return true; + } + + @Override + public Boolean updateOpenStatus(Integer doorId, String openStatus, String beginDateTime, String endDateTime) throws ParseException{ + Door door = this.selectById(doorId); + door.setOpenStatus(openStatus); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if("2".equals(openStatus)){ + //"正常":清空生效时间、失效时间 + door.setBeginDatetime(null); + door.setEndDatetime(null); + }else { + door.setBeginDatetime(formatter.parse(beginDateTime)); + door.setEndDatetime(formatter.parse(endDateTime)); + } + this.updateById(door); + return true; + } + + @Override + public Boolean remoteOpenDoor(Integer doorId) { + String doorCode = this.selectById(doorId).getDoorCode(); + EntityWrapper deviceQuery = new EntityWrapper<>(); + deviceQuery.eq("DOOR_CODE",doorCode); + //deviceQuery.eq("INPUT_TYPE","1"); + List deviceList = deviceService.selectList(deviceQuery); + + Boolean res = false; + for (Device device : deviceList) { + Boolean tmp = deviceService.remoteOpen(device.getId()); + res = res || tmp; + } + return res; } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 860e20d..c342256 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java @@ -35,8 +35,8 @@ private IDoorService doorService; @Override - public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorName, String devCode, String beginTime, String endTime) { - List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorName, devCode, beginTime, endTime); + public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { + List> list = this.baseMapper.selectStaffDataScopePage(dataScope, page, keyword, personDeptId, doorCode, devCode, beginTime, endTime); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("personDeptId"))); String deptName = permissionService.getDeptName(deptid); @@ -46,13 +46,13 @@ } @Override - public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorName, String devCode, String beginTime, String endTime) { - return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorName, devCode, beginTime, endTime); + public List> selectVisitorDataScopePage(DataScope dataScope, Page page, String keyword, String doorCode, String devCode, String beginTime, String endTime) { + return this.baseMapper.selectVisitorDataScopePage(dataScope, page, keyword, doorCode, devCode, beginTime, endTime); } @Override - public List> statisticByDept(String doorName,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorName, beginTime, endTime, inoutType); + public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ + List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -62,10 +62,10 @@ } @Override - public List> statisticByPerson(String doorName, String beginTime, String endTime, Long deptId, Long personId) { + public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { List dictList = permissionService.findInDictByCode("inoutType"); List> mapList = new ArrayList<>(); - Boolean existOut = doorService.existOut(doorService.selectByName(doorName).getId()); + Boolean existOut = doorService.existOut(doorCode); for (Dict dict : dictList) { // 如果门禁不存在出门设备,不统计“出门” if(!existOut){ @@ -75,7 +75,7 @@ } Map map = new HashMap<>(); map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorName,beginTime,endTime,deptId,personId,dict.getCode())); + map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); mapList.add(map); } return mapList; diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java index 4e33670..4fbc8cc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/StrategyServiceImpl.java @@ -2,8 +2,10 @@ import com.casic.missiles.modular.system.model.Strategy; import com.casic.missiles.modular.system.dao.StrategyMapper; +import com.casic.missiles.modular.system.service.IAcsPermissionService; import com.casic.missiles.modular.system.service.IStrategyService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,5 +18,13 @@ */ @Service public class StrategyServiceImpl extends ServiceImpl implements IStrategyService { + @Autowired + private IAcsPermissionService acsPermissionService; + @Override + public Boolean deleteStrategy(Integer strategyId) { + acsPermissionService.deleteByStrategy(strategyId); + this.deleteById(strategyId); + return true; + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java new file mode 100644 index 0000000..b54562a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/AcsPermissionWarpper.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.system.warpper; + +import com.casic.missiles.core.base.warpper.BaseControllerWarpper; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.SpringContextHolder; +import com.casic.missiles.core.util.ToolUtil; + +import java.text.SimpleDateFormat; +import java.util.Map; + +public class AcsPermissionWarpper extends BaseControllerWarpper { + + public AcsPermissionWarpper(Object obj) { + super(obj); + } + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + + @Override + protected void warpTheMap(Map map) { + //将时间字段转成string,以保留时分秒 + if (!ToolUtil.isEmpty(map.get("createTime"))) { + String createTime = formatter.format(map.get("createTime")); + map.put("createTime",createTime); + } + + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long deptid = Long.valueOf(String.valueOf(map.get("deptId"))); + String deptName = permissionService.getDeptName(deptid); + map.put("deptName",deptName); + } + + if(ToolUtil.isNotEmpty(map.get("createUser"))){ + Long createUser = Long.valueOf(map.get("createUser").toString()); + String createUserName = permissionService.getUserById(createUser,"1").getName(); + map.put("createUserName",createUserName); + } + } +} diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java index 98fbebf..2ba8ca9 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/DoorWarpper.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.text.SimpleDateFormat; import java.util.Map; public class DoorWarpper extends BaseControllerWarpper { @@ -15,12 +16,34 @@ ICommonPermissionService permissionService = SpringContextHolder.getBean(ICommonPermissionService.class); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @Override protected void warpTheMap(Map map) { + // 设部门名称 if(ToolUtil.isNotEmpty(map.get("deptid"))){ Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); String deptName = permissionService.getDeptName(deptid); map.put("deptName",deptName); } + + //转换时间格式 + if (!ToolUtil.isEmpty(map.get("beginDatetime"))) { + String beginDatetime = formatter.format(map.get("beginDatetime")); + map.put("beginDatetime",beginDatetime); + } + if (!ToolUtil.isEmpty(map.get("endDatetime"))) { + String endDatetime = formatter.format(map.get("endDatetime")); + map.put("endDatetime",endDatetime); + } + + //设字典值 + if(ToolUtil.isNotEmpty(map.get("openStatus"))){ + String openStatus = map.get("openStatus").toString(); + map.put("openStatusName",permissionService.getDictNameByCode("openStatus",openStatus)); + }else{ + map.put("openStatusName",""); + } + } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java index 533a6a3..0ae05ac 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/RecognitionRecordsWarpper.java @@ -30,8 +30,8 @@ //将时间字段转成string,以保留时分秒 if (!ToolUtil.isEmpty(map.get("dateTime"))) { - String createTime = formatter.format(map.get("dateTime")); - map.put("dateTime",createTime); + String dateTime = formatter.format(map.get("dateTime")); + map.put("dateTime",dateTime); } } } diff --git a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java index a0dbe72..548bdf6 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/warpper/StrategyWarpper.java @@ -47,6 +47,8 @@ if(ToolUtil.isNotEmpty(map.get("period"))){ String period = map.get("period").toString(); map.put("periodName",permissionService.getDictNameByCode("strategyPeriod",period)); + }else { + map.put("periodName",""); } if(ToolUtil.isNotEmpty(map.get("week"))){ String weekStr = map.get("week").toString(); @@ -56,6 +58,8 @@ weekNameList.add(weekName); } map.put("weekName",String.join(",",weekNameList)); + }else { + map.put("weekName",""); } } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index 8ff0af3..f58e930 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -4,7 +4,7 @@ /** * 设备添加日志Key */ - public static final String DEVICE_ADD_LOG_KEY = "id,devName,devIp"; + public static final String DEVICE_ADD_LOG_KEY = "devCode,devIp"; /** * 远程开门指令 diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index dbbabef..17ae78a 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -51,16 +51,33 @@ */ @RequestMapping(value = "/list") @ResponseBody - public Object list(){ + public Object list(String devType){ Page> page = new PageFactory>().defaultPage(); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> list = deviceService.selectDataScopePage(dataScope,page); - new DeviceWarpper(list).warp(); - page.setRecords(list); + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + page = deviceService.selectMapsPage(page,query); + new DeviceWarpper(page.getRecords()).warp(); return ResponseData.success(super.packForBT(page)); } /** + * 获取设备列表,不分页 + */ + @RequestMapping(value = "/listAll") + @ResponseBody + public Object listAll(String devType){ + EntityWrapper query = new EntityWrapper<>(); + if(ToolUtil.isNotEmpty(devType)){ + query.like("DEV_TYPE",devType); + } + List> list = deviceService.selectMaps(query); + new DeviceWarpper(list).warp(); + return ResponseData.success(list); + } + + /** * 添加设备 */ @RequestMapping(value = "/add", method = RequestMethod.POST) @@ -71,7 +88,7 @@ return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); } try { - deviceService.insertDevice(device); + deviceService.insert(device); }catch (Exception e){ logger.error("设备添加失败", e); e.printStackTrace(); @@ -86,14 +103,17 @@ @RequestMapping(value = "/update", method = RequestMethod.POST) @ResponseBody @BussinessLog(value = "修改设备", key = DEVICE_ADD_LOG_KEY, dict = DeviceDict.class) - public Object update(Device device){ + public Object update(@Valid Device device, BindingResult result){ + if (result.hasErrors()) { + return ResponseData.error(result.getFieldErrors().get(0).getDefaultMessage()); + } if (ToolUtil.isEmpty(device.getId())) { throw new GunsException(GunsExceptionEnum.REQUEST_NULL); } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - deviceService.updateDevice(device); + deviceService.updateById(device); return ResponseData.success(); } @@ -114,35 +134,35 @@ return ResponseData.success(); } - /** - * 远程开门 - */ - @RequestMapping(value = "/open", method = RequestMethod.POST) - @ResponseBody - public Object open(Integer id){ - if(deviceService.remoteOpen(id)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - } - - /** - * 常开常闭 - * @param id - * @param alwaysOpen 1:常开 0:常闭 - */ - @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) - @ResponseBody - public Object alwaysOpen(Integer id, String alwaysOpen){ - if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { - throw new GunsException(GunsExceptionEnum.REQUEST_NULL); - } - if(deviceService.alwaysOpen(id,alwaysOpen)){ - return ResponseData.success(); - }else { - return ResponseData.error("请求失败"); - } - - } +// /** +// * 远程开门 +// */ +// @RequestMapping(value = "/open", method = RequestMethod.POST) +// @ResponseBody +// public Object open(Integer id){ +// if(deviceService.remoteOpen(id)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// } +// +// /** +// * 常开常闭 +// * @param id +// * @param alwaysOpen 1:常开 0:常闭 +// */ +// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) +// @ResponseBody +// public Object alwaysOpen(Integer id, String alwaysOpen){ +// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { +// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); +// } +// if(deviceService.alwaysOpen(id,alwaysOpen)){ +// return ResponseData.success(); +// }else { +// return ResponseData.error("请求失败"); +// } +// +// } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 16ed91a..2bf6e42 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -18,8 +18,6 @@ * @since 2019-11-29 */ public interface DeviceMapper extends BaseMapper { - List> selectDataScopePage(@Param("datascope")DataScope dataScope, @Param("page")Page page); - Integer countDeviceByDoor(@Param("doorCode")String doorCode); - String selectMaxByDoor(@Param("doorCode")String doorCode); - List> selectOutDeviceByDoor(@Param("doorCode")String doorCode); + List> selectDeviceByDoor(@Param("doorCode")String doorCode,@Param("inoutType")String inoutType); + Boolean clearDoorCode(@Param("doorCode")String doorCode); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d6548eb..c66ef84 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -8,58 +8,34 @@ + - - + - ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, INSTALL_DATE AS installDate, ALWAYS_OPEN AS alwaysOpen + ID AS id, DEV_CODE AS devCode, DEV_NAME AS devName, DEV_IP AS devIp, DEV_TYPE AS devType, DOOR_CODE AS doorCode, INOUT_TYPE AS inoutType, DESCRIPTION AS description - SELECT - dev.ID AS id, - dev.DEV_CODE AS devCode, - dev.DEV_NAME AS devName, - dev.DEV_IP AS devIp, - dev.INOUT_TYPE AS inoutType, - dev.INSTALL_DATE AS installDate, - dev.ALWAYS_OPEN AS alwaysOpen, - door.ID AS doorId, - door.DOOR_CODE AS doorCode, - door.DOOR_NAME AS doorName, - door.DESCRIPTION AS description, - door.DEPTID AS deptid - FROM bus_device dev - LEFT JOIN bus_door door ON dev.DOOR_CODE = door.DOOR_CODE - - - - + - diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java index 8a72bc0..3b90bf2 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/dict/DeviceDict.java @@ -7,7 +7,7 @@ @Override public void init() { put("id","设备ID"); - put("devName","设备名称"); + put("devCode","设备编号"); put("devIp","设备IP"); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java index 814e054..0326b9f 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/model/Device.java @@ -11,6 +11,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.Pattern; import java.io.Serializable; /** @@ -46,8 +47,14 @@ * 设备IP */ @TableField("DEV_IP") + @Pattern(regexp = "((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)",message = "设备IP必须为合法IP地址") private String devIp; /** + * 设备类型 + */ + @TableField("DEV_TYPE") + private String devType; + /** * 门编号 */ @TableField("DOOR_CODE") @@ -57,17 +64,12 @@ */ @TableField("INOUT_TYPE") private String inoutType; + /** - * 安装日期 + * 描述 */ - @TableField("INSTALL_DATE") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date installDate; - /** - * 常开状态(1:常开;0:常闭) - */ - @TableField("ALWAYS_OPEN") - private String alwaysOpen; + @TableField("DESCRIPTION") + private String description; @Override protected Serializable pkVal() { @@ -81,10 +83,10 @@ ", devCode=" + devCode + ", devName=" + devName + ", devIp=" + devIp + + ", devType=" + devType + ", doorCode=" + doorCode + ", inoutType=" + inoutType + - ", installDate=" + installDate + - ", alwaysOpen=" + alwaysOpen + + ", description" + description + "}"; } } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java index 806e446..3c5dfcc 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java @@ -17,9 +17,7 @@ * @since 2019-11-29 */ public interface IDeviceService extends IService { - List> selectDataScopePage(DataScope dataScope, Page page); - boolean insertDevice(Device device); - boolean updateDevice(Device device); - boolean remoteOpen(Integer id); - boolean alwaysOpen(Integer id, String alwaysOpen); + Boolean remoteOpen(Integer id); + Boolean clearDoorCode(String doorCode); + List> selectDeviceByDoor(String doorCode,String inoutType); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java index 5e52614..1cb3988 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java @@ -1,8 +1,5 @@ package com.casic.missiles.modular.system.service.impl; -import com.baomidou.mybatisplus.plugins.Page; -import com.casic.missiles.core.datascope.DataScope; -import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.system.service.IDeviceService; @@ -11,7 +8,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.text.DecimalFormat; import java.util.List; import java.util.Map; @@ -32,58 +28,7 @@ private Integer port; @Override - public List> selectDataScopePage(DataScope dataScope, Page page) { - return this.baseMapper.selectDataScopePage(dataScope,page); - } - - @Override - public boolean insertDevice(Device device){ - device.setDevCode(generateDevCode(device)); - return this.insert(device); - } - - @Override - public boolean updateDevice(Device device){ - String devCode = device.getDevCode(); - String doorCode = device.getDoorCode(); - if(ToolUtil.isEmpty(devCode) || !doorCode.equals(extractDoorCode(devCode))){ - device.setDevCode(generateDevCode(device)); - } - return this.updateById(device); - } - - /** - * 自动生成设备编号,生成规则:‘D’+ DOOR_CODE(门编号) + 'N' + COUNT(根据门计算) - **/ - private String generateDevCode(Device device){ - DecimalFormat df = new DecimalFormat("00"); -// Integer countNum = this.baseMapper.countDeviceByDoor(device.getDoorCode())+1; - String max = this.baseMapper.selectMaxByDoor(device.getDoorCode()); - String count = df.format(extractDeviceCount(max)+1); - StringBuilder sb = new StringBuilder(); - sb.append('D').append(device.getDoorCode()).append('N').append(count); - return sb.toString(); - } - - /** - * 根据设备编号获取门编号 - */ - private String extractDoorCode(String devCode){ - int p1 = devCode.indexOf('D'); - int p2 = devCode.indexOf('N'); - return devCode.substring(p1+1,p2); - } - - /** - * 根据设备编号获取设备数(count) - */ - private Integer extractDeviceCount(String devCode){ - int p1 = devCode.indexOf('N'); - return Integer.valueOf(devCode.substring(p1+1)); - } - - @Override - public boolean remoteOpen(Integer id) { + public Boolean remoteOpen(Integer id) { Device device = this.selectById(id); String devIp = device.getDevIp(); Map res = SocketClientUtil.sendMessage(devIp,port,DeviceConst.REMOTE_OPEN); @@ -95,24 +40,13 @@ } @Override - public boolean alwaysOpen(Integer id, String alwaysOpen) { - Device device = this.selectById(id); - // 1. 发送指令 - String devIp = device.getDevIp(); - String msg = new String(); - if("1".equals(alwaysOpen)){ - msg = DeviceConst.ALWAYS_OPEN; - }else if("0".equals(alwaysOpen)){ - msg = DeviceConst.ALWAYS_CLOSE; - } - Map res = SocketClientUtil.sendMessage(devIp,port,msg); - if ((boolean)res.get("success")){ - // 2.更新数据库 - device.setAlwaysOpen(alwaysOpen); - this.updateById(device); - return true; - }else { - return false; - } + public Boolean clearDoorCode(String doorCode) { + return this.baseMapper.clearDoorCode(doorCode); } + + @Override + public List> selectDeviceByDoor(String doorCode, String inoutType) { + return this.baseMapper.selectDeviceByDoor(doorCode, inoutType); + } + } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/warpper/DeviceWarpper.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/warpper/DeviceWarpper.java index 6366ab4..51fd4b0 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/warpper/DeviceWarpper.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/warpper/DeviceWarpper.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.util.SpringContextHolder; import com.casic.missiles.core.util.ToolUtil; +import java.util.ArrayList; +import java.util.List; import java.util.Map; public class DeviceWarpper extends BaseControllerWarpper { @@ -18,11 +20,11 @@ @Override protected void warpTheMap(Map map) { // 权属单位 - if(ToolUtil.isNotEmpty(map.get("deptid"))){ - Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); - String deptName = permissionService.getDeptName(deptid); - map.put("deptName",deptName); - } +// if(ToolUtil.isNotEmpty(map.get("deptid"))){ +// Long deptid = Long.valueOf(String.valueOf(map.get("deptid"))); +// String deptName = permissionService.getDeptName(deptid); +// map.put("deptName",deptName); +// } // 进出类型 if(ToolUtil.isNotEmpty(map.get("inoutType"))){ @@ -37,5 +39,17 @@ }else{ map.put("inoutTypeName",""); } + + if(ToolUtil.isNotEmpty(map.get("devType"))){ + String typeStr = map.get("devType").toString(); + List typeNameList = new ArrayList<>(); + for(String week: typeStr.split(",")){ + String typeName = permissionService.getDictNameByCode("businessType",week); + typeNameList.add(typeName); + } + map.put("devTypeName",String.join(",",typeNameList)); + }else { + map.put("devTypeName",""); + } } }