diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version}
- + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version}
- + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version}
- + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version}
- + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version}
- + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version}
- + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version}
- + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version}
- + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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",""); + } } } diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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",""); + } } } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 343547c..9d289a4 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.casic - casic-smartcity-dcms + casic-iris-parent ../pom.xml 1.0.0-SNAPSHOT @@ -206,6 +206,7 @@ + org.apache.maven.plugins @@ -283,7 +284,10 @@ + + + src/main/webapp diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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",""); + } } } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 343547c..9d289a4 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.casic - casic-smartcity-dcms + casic-iris-parent ../pom.xml 1.0.0-SNAPSHOT @@ -206,6 +206,7 @@ + org.apache.maven.plugins @@ -283,7 +284,10 @@ + + + src/main/webapp diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" index 9656df2..0b03730 100644 --- "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -1,4 +1,4 @@ @echo off -title 智慧城管 -java -jar guns-web-1.0.0-SNAPSHOT.jar +title �ǻ۳ǹ� +java -jar casic-web-1.0.0-SNAPSHOT.jar @pause diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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",""); + } } } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 343547c..9d289a4 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.casic - casic-smartcity-dcms + casic-iris-parent ../pom.xml 1.0.0-SNAPSHOT @@ -206,6 +206,7 @@ + org.apache.maven.plugins @@ -283,7 +284,10 @@ + + + src/main/webapp diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" index 9656df2..0b03730 100644 --- "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -1,4 +1,4 @@ @echo off -title 智慧城管 -java -jar guns-web-1.0.0-SNAPSHOT.jar +title �ǻ۳ǹ� +java -jar casic-web-1.0.0-SNAPSHOT.jar @pause diff --git a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java b/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java index 274647f..6689124 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java @@ -1,8 +1,19 @@ package com.casic.missiles.controller; +import com.baomidou.mybatisplus.toolkit.IdWorker; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.metadata.service.IMetadataCommonService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Map; /** * 仅为mock登录使用 @@ -10,14 +21,12 @@ @Controller @RequestMapping("/test") public class TableTestController extends BaseController { - /* private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); + private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); @Autowired private IMetadataCommonService metadataCommonService; - *//** - * 获取mockToken - *//* + @PostMapping("/add") @ResponseBody public Object add(@RequestParam Map map) { @@ -39,6 +48,6 @@ @ResponseBody public Object detail(Long id) { return ResponseData.success(metadataCommonService.selectOneMetaData("SysPersonExt", id)); - }*/ + } } diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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",""); + } } } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 343547c..9d289a4 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.casic - casic-smartcity-dcms + casic-iris-parent ../pom.xml 1.0.0-SNAPSHOT @@ -206,6 +206,7 @@ + org.apache.maven.plugins @@ -283,7 +284,10 @@ + + + src/main/webapp diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" index 9656df2..0b03730 100644 --- "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -1,4 +1,4 @@ @echo off -title 智慧城管 -java -jar guns-web-1.0.0-SNAPSHOT.jar +title �ǻ۳ǹ� +java -jar casic-web-1.0.0-SNAPSHOT.jar @pause diff --git a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java b/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java index 274647f..6689124 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java @@ -1,8 +1,19 @@ package com.casic.missiles.controller; +import com.baomidou.mybatisplus.toolkit.IdWorker; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.metadata.service.IMetadataCommonService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Map; /** * 仅为mock登录使用 @@ -10,14 +21,12 @@ @Controller @RequestMapping("/test") public class TableTestController extends BaseController { - /* private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); + private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); @Autowired private IMetadataCommonService metadataCommonService; - *//** - * 获取mockToken - *//* + @PostMapping("/add") @ResponseBody public Object add(@RequestParam Map map) { @@ -39,6 +48,6 @@ @ResponseBody public Object detail(Long id) { return ResponseData.success(metadataCommonService.selectOneMetaData("SysPersonExt", id)); - }*/ + } } diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 61e440c..4ba9e81 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -6,7 +6,7 @@ //url: jdbc:mysql://192.168.8.201:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://localhost:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203 initial-size: 2 min-idle: 1 #flowable数据源和多数据源配置 diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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",""); + } } } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 343547c..9d289a4 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.casic - casic-smartcity-dcms + casic-iris-parent ../pom.xml 1.0.0-SNAPSHOT @@ -206,6 +206,7 @@ + org.apache.maven.plugins @@ -283,7 +284,10 @@ + + + src/main/webapp diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" index 9656df2..0b03730 100644 --- "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -1,4 +1,4 @@ @echo off -title 智慧城管 -java -jar guns-web-1.0.0-SNAPSHOT.jar +title �ǻ۳ǹ� +java -jar casic-web-1.0.0-SNAPSHOT.jar @pause diff --git a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java b/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java index 274647f..6689124 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java @@ -1,8 +1,19 @@ package com.casic.missiles.controller; +import com.baomidou.mybatisplus.toolkit.IdWorker; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.metadata.service.IMetadataCommonService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Map; /** * 仅为mock登录使用 @@ -10,14 +21,12 @@ @Controller @RequestMapping("/test") public class TableTestController extends BaseController { - /* private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); + private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); @Autowired private IMetadataCommonService metadataCommonService; - *//** - * 获取mockToken - *//* + @PostMapping("/add") @ResponseBody public Object add(@RequestParam Map map) { @@ -39,6 +48,6 @@ @ResponseBody public Object detail(Long id) { return ResponseData.success(metadataCommonService.selectOneMetaData("SysPersonExt", id)); - }*/ + } } diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 61e440c..4ba9e81 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -6,7 +6,7 @@ //url: jdbc:mysql://192.168.8.201:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://localhost:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203 initial-size: 2 min-idle: 1 #flowable数据源和多数据源配置 diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 313eafd..1c80179 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -13,9 +13,14 @@ kaptcha-open: false #是否开启登录时验证码 (true/false) nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +mybatis-plus: + global-config: + sql-injector: com.casic.missiles.modular.metadata.inject.MetaSqlInject logging: level.root: info level.com.casic: debug path: logs/ file: missiles.log +iris: + socket-port: 8000 diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index 92a10e1..d7cb377 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -32,7 +32,11 @@ casic-metadata-core ${casic.version} - + + com.casic + casic-metadata-support + ${casic.version} + com.casic casic-export-support 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/PersonController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java index 882434e..fc7f86b 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java @@ -5,6 +5,8 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.model.Person; import com.casic.missiles.modular.system.service.IPersonService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,8 @@ @RestController @RequestMapping("/person") public class PersonController extends BaseController { - - + @Autowired + private ICommonPermissionService permissionService; @Autowired private IPersonService personService; @@ -30,10 +32,10 @@ /** * 获取人员管理列表 */ - @RequestMapping(value = "/list") + @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { - return personService.selectList(null); + return ResponseData.success(personService.selectList(null)); } /** @@ -41,20 +43,43 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(String condition) { + public Object listPage(String keywords, String sex, String duty, String deptId) { Page page = new PageFactory().defaultPage(); EntityWrapper query = new EntityWrapper<>(); - page = personService.selectPage(page,query); - return super.packForBT(page); + + if(ToolUtil.isNotEmpty(duty)){ + query.eq("a.DUTY",duty); + } + if (ToolUtil.isNotEmpty(deptId)) { + query.eq("a.DEPTID", deptId); + } + if (ToolUtil.isNotEmpty(sex)) { + query.eq("a.SEX", sex); + } + query.eq("a.DELFLAG", 0); + if(ToolUtil.isNotEmpty(keywords)){ + query.andNew().like("a.NAME",keywords).or().like("a.ID_CARD_NO",keywords); + } + List scopePersons = personService.selectDataScopePerson(page,permissionService.getCurrUserDataScope(), query); + page.setRecords(scopePersons); + //展示数据封装 + page.getRecords().forEach(person -> { + person.setDeptName(permissionService.getDeptName(person.getDeptid())); + person.setSexName(permissionService.getDictNameByCode("sysSex", person.getSex())); + person.setPersonTypeName(permissionService.getDictNameByCode("personType", person.getSex())); + }); + + return ResponseData.success(super.packForBT(page)); } + /** * 新增人员管理 */ @RequestMapping(value = "/add") @ResponseBody - public Object add(Person person) { - personService.insert(person); - return ResponseData.success(); + public Object add(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); + return ResponseData.success(personService.insert(person)); } /** @@ -62,7 +87,7 @@ */ @RequestMapping(value = "/delete") @ResponseBody - public Object delete(@RequestParam String personId) { + public Object delete(@RequestParam Long personId) { personService.deleteById(personId); return ResponseData.success(); } @@ -72,7 +97,7 @@ */ @RequestMapping(value = "/batchDelete") @ResponseBody - public Object delete(@RequestParam("personIds") List personIds) { + public Object delete(@RequestParam("ids") List personIds) { personService.deleteBatchIds(personIds); return ResponseData.success(); } @@ -82,7 +107,8 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(Person person) { + public Object update(@RequestBody Person person) { + person.setOprationId(permissionService.getCurrLoginUser().getId()); personService.updateById(person); return ResponseData.success(); } @@ -95,4 +121,5 @@ public Object detail(@PathVariable("personId") String personId) { return ResponseData.success(personService.selectById(personId)); } + } 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/PersonMapper.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java index c2a324b..116cc48 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.modular.system.dao; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -12,5 +19,8 @@ * @since 2019-12-03 */ public interface PersonMapper extends BaseMapper { + @Select({"SELECT IFNULL(max(PERSON_CODE),0) AS personCode FROM sys_person where PERSON_TYPE = #{personType} and CREATETIME > #{currDay} "}) + String selectMaxPersonCode(@Param("personType") String personType,@Param("currDay") String currDay); + List selectDataScopePerson(@Param("page") Page page, @Param("scope") DataScope dataScope, @Param("ew") EntityWrapper wrapper); } 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/PersonMapper.xml b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml index f556815..295c59a 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml @@ -4,21 +4,33 @@ - - - - - - - - - - + + + + + + + + + + - ID AS id, DELFLAG AS delflag, CREATETIME AS createtime, UPDATETIME AS updatetime, NAME AS name, SEX AS sex, DEPTID AS deptid, ID_CARD AS idCard, REMARKS AS remarks, PERSON_TYPE AS personType + a.ID AS id, a.DELFLAG AS delflag, a.CREATETIME AS createtime, a.UPDATETIME AS updatetime, a.NAME AS name, a.SEX AS sex, a.DEPTID AS deptid, a.ID_CARD_NO AS idCard, a.REMARKS AS remarks, a.PERSON_TYPE AS personType + ,a.DUTY + 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/enums/PersonTypeEnums.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java new file mode 100644 index 0000000..a139b9a --- /dev/null +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/enums/PersonTypeEnums.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.casic.missiles.modular.system.enums; + +public enum PersonTypeEnums { + VISITOR("0", "FK", "添加"), + STAFF("1", "", "删除"); + + private String value; + private String code; + private String name; + + private PersonTypeEnums(String value, String code, String name) { + this.value = value; + this.code = code; + this.name = name; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static PersonTypeEnums typeOf(String value){ + switch (value){ + case "0": + return VISITOR; + default: return STAFF; + } + } +} 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/Person.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java index 4a8d915..362678c 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java @@ -1,15 +1,16 @@ package com.casic.missiles.modular.system.model; -import java.io.Serializable; +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.*; +import com.baomidou.mybatisplus.enums.IdType; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.annotations.MetaDataBean; +import com.casic.missiles.core.base.model.DataMetaModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.io.Serializable; 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 com.casic.missiles.modular.metadata.base.DataMetaModel; - -import java.io.Serializable; /** *

@@ -19,16 +20,18 @@ * @author lwh123 * @since 2019-12-03 */ +@Data +@MetaDataBean(name = "SysPersonExt") @TableName("sys_person") public class Person extends DataMetaModel { private static final long serialVersionUID = 1L; - - @TableId("ID") + @TableId(value = "ID", type = IdType.ID_WORKER) private Long id; /** * 状态(0:有效 1:删除) */ + @TableLogic @TableField("DELFLAG") private String delflag; /** @@ -59,8 +62,8 @@ /** * 身份证号 */ - @TableField("ID_CARD") - private String idCard; + @TableField("ID_CARD_NO") + private String idCardNo; /** * 备注信息 */ @@ -71,88 +74,22 @@ */ @TableField("PERSON_TYPE") private String personType; - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDelflag() { - return delflag; - } - - public void setDelflag(String delflag) { - this.delflag = delflag; - } - - public Date getCreatetime() { - return createtime; - } - - public void setCreatetime(Date createtime) { - this.createtime = createtime; - } - - public Date getUpdatetime() { - return updatetime; - } - - public void setUpdatetime(Date updatetime) { - this.updatetime = updatetime; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public Long getDeptid() { - return deptid; - } - - public void setDeptid(Long deptid) { - this.deptid = deptid; - } - - public String getIdCard() { - return idCard; - } - - public void setIdCard(String idCard) { - this.idCard = idCard; - } - - public String getRemarks() { - return remarks; - } - - public void setRemarks(String remarks) { - this.remarks = remarks; - } - - public String getPersonType() { - return personType; - } - - public void setPersonType(String personType) { - this.personType = personType; - } - + /** + * 人员编码 + */ + @TableField("PERSON_CODE") + private String personCode; + @TableField("OPRATION_ID") + private Long oprationId; + //人员编码 + @TableField(exist = false) + private String deptName; + @TableField(exist = false) + private String personTypeName; + @TableField(exist = false) + private String sexName; + @TableField(exist = false) + private String oprationName; @Override protected Serializable pkVal() { return this.id; @@ -161,16 +98,16 @@ @Override public String toString() { return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCard=" + idCard + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; + "id=" + id + + ", delflag=" + delflag + + ", createtime=" + createtime + + ", updatetime=" + updatetime + + ", name=" + name + + ", sex=" + sex + + ", deptid=" + deptid + + ", idCardNo=" + idCardNo + + ", remarks=" + remarks + + ", personType=" + personType + + "}"; } } 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/IPersonService.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java index c58c236..1e4f7bc 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.model.Person; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + /** *

* 人员数据表 服务类 @@ -12,5 +17,10 @@ * @since 2019-12-03 */ public interface IPersonService extends IService { - + /** + * 查询最大的人员编码 + * @return + */ + String selectMaxPersonCode(String personType,String currDay); + List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper); } 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/PersonServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java index 4eb8734..a672344 100644 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java @@ -1,10 +1,23 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.Person; -import com.casic.missiles.modular.system.dao.PersonMapper; -import com.casic.missiles.modular.system.service.IPersonService; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.annotations.MetaData; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.enums.MetaTypeEnums; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.dao.PersonMapper; +import com.casic.missiles.modular.system.enums.PersonTypeEnums; +import com.casic.missiles.modular.system.model.Person; +import com.casic.missiles.modular.system.service.IPersonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

@@ -16,5 +29,57 @@ */ @Service public class PersonServiceImpl extends ServiceImpl implements IPersonService { + @Value("${casic.base.personPrefix:}") + private String personPrefix; + + @MetaData + @Override + public List selectList(Wrapper wrapper) { + return super.selectList(wrapper); + } + + @MetaData + @Override + public Page selectPage(Page page, Wrapper wrapper) { + return super.selectPage(page, wrapper); + } + + @Transactional + @Override + public boolean insert(@MetaData(type = MetaTypeEnums.INSERT) Person entity) { + //查询最大人员编码 + if (ToolUtil.isEmpty(entity.getPersonCode())) { + String currDay = DateUtil.getDays(); + String personCode = this.selectMaxPersonCode(entity.getPersonType(), currDay); + String code = PersonTypeEnums.typeOf(entity.getPersonType()).getCode(); + String prefix = ToolUtil.isEmpty(code)?personPrefix:code; + personCode = personCode.replaceAll(prefix, ""); + if (!"0".equals(personCode)) { + personCode = personCode.substring(8); + } + entity.setPersonCode(prefix.concat(currDay).concat(String.format("%06d", Integer.valueOf(personCode) + 1))); + } + return super.insert(entity); + } + + @Transactional + @Override + public boolean updateById(@MetaData(type = MetaTypeEnums.UPDATE) Person entity) { + return super.updateById(entity); + } + + @Override + public String selectMaxPersonCode(String personType, String currDay) { + return baseMapper.selectMaxPersonCode(personType, currDay); + } + @MetaData + @Override + public List selectDataScopePerson(Page page, DataScope dataScope, EntityWrapper wrapper) { + return baseMapper.selectDataScopePerson(page,dataScope,wrapper); + } + + public static void main(String[] args) { + System.out.println(PersonTypeEnums.valueOf("1")); + } } 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",""); + } } } diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 343547c..9d289a4 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.casic - casic-smartcity-dcms + casic-iris-parent ../pom.xml 1.0.0-SNAPSHOT @@ -206,6 +206,7 @@ + org.apache.maven.plugins @@ -283,7 +284,10 @@ + + + src/main/webapp diff --git "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" index 9656df2..0b03730 100644 --- "a/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" +++ "b/casic-web/src/main/bin/\350\231\271\350\206\234\351\227\250\347\246\201.bat" @@ -1,4 +1,4 @@ @echo off -title 智慧城管 -java -jar guns-web-1.0.0-SNAPSHOT.jar +title �ǻ۳ǹ� +java -jar casic-web-1.0.0-SNAPSHOT.jar @pause diff --git a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java b/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java index 274647f..6689124 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java @@ -1,8 +1,19 @@ package com.casic.missiles.controller; +import com.baomidou.mybatisplus.toolkit.IdWorker; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.modular.metadata.service.IMetadataCommonService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Map; /** * 仅为mock登录使用 @@ -10,14 +21,12 @@ @Controller @RequestMapping("/test") public class TableTestController extends BaseController { - /* private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); + private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); @Autowired private IMetadataCommonService metadataCommonService; - *//** - * 获取mockToken - *//* + @PostMapping("/add") @ResponseBody public Object add(@RequestParam Map map) { @@ -39,6 +48,6 @@ @ResponseBody public Object detail(Long id) { return ResponseData.success(metadataCommonService.selectOneMetaData("SysPersonExt", id)); - }*/ + } } diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 61e440c..4ba9e81 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -6,7 +6,7 @@ //url: jdbc:mysql://192.168.8.201:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull url: jdbc:mysql://localhost:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root - password: root + password: Casic203 initial-size: 2 min-idle: 1 #flowable数据源和多数据源配置 diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 313eafd..1c80179 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -13,9 +13,14 @@ kaptcha-open: false #是否开启登录时验证码 (true/false) nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram file-upload-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\upload +mybatis-plus: + global-config: + sql-injector: com.casic.missiles.modular.metadata.inject.MetaSqlInject logging: level.root: info level.com.casic: debug path: logs/ file: missiles.log +iris: + socket-port: 8000 diff --git a/pom.xml b/pom.xml index 7e39171..92aa7c3 100644 --- a/pom.xml +++ b/pom.xml @@ -62,7 +62,6 @@ casic-admin-support ${casic.version} - com.casic casic-core @@ -70,7 +69,9 @@ + + com.casic casic-iris-acs