diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - public Object detail(@PathVariable("personId") String personId) { - return ResponseData.success(personService.selectById(personId)); - } - -} diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("deptId")Long deptId,@Param("personId")Long personId,@Param("inoutType") String inoutType); } diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "id=" + id + - ", delflag=" + delflag + - ", createtime=" + createtime + - ", updatetime=" + updatetime + - ", name=" + name + - ", sex=" + sex + - ", deptid=" + deptid + - ", idCardNo=" + idCardNo + - ", remarks=" + remarks + - ", personType=" + personType + - "}"; - } -} diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml index 7b6dbad..6b80048 100644 --- a/casic-iris-register/pom.xml +++ b/casic-iris-register/pom.xml @@ -30,41 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - - - - - diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml index 7b6dbad..6b80048 100644 --- a/casic-iris-register/pom.xml +++ b/casic-iris-register/pom.xml @@ -30,41 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - - - - - diff --git a/casic-iris-support/pom.xml b/casic-iris-support/pom.xml index 8100a44..5732dfd 100644 --- a/casic-iris-support/pom.xml +++ b/casic-iris-support/pom.xml @@ -28,37 +28,6 @@ casic-admin-support ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml index 7b6dbad..6b80048 100644 --- a/casic-iris-register/pom.xml +++ b/casic-iris-register/pom.xml @@ -30,41 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - - - - - diff --git a/casic-iris-support/pom.xml b/casic-iris-support/pom.xml index 8100a44..5732dfd 100644 --- a/casic-iris-support/pom.xml +++ b/casic-iris-support/pom.xml @@ -28,37 +28,6 @@ casic-admin-support ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 9d289a4..4b77183 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -78,6 +78,11 @@ com.casic + casic-admin-init + ${casic.version} + + + com.casic casic-metadata-core ${casic.version} @@ -133,75 +138,23 @@ spring-boot-devtools true - - - - - org.apache.shiro - shiro-core - - - slf4j-api - org.slf4j - - - - - org.apache.shiro - shiro-spring - - - org.apache.shiro - shiro-ehcache - - - slf4j-api - org.slf4j - - - - - org.ehcache - ehcache - ${ehcache.version} - + + + + + - - commons-io - commons-io - - - com.github.penggle - kaptcha - - - com.google.zxing - core - - - com.ibeetl - beetl - - - org.apache.commons - commons-lang3 - - - com.oracle - ojdbc6 - ${oracle.version} - - - org.codehaus.groovy - groovy-all - true - + + org.springframework.session + spring-session + compile + + --> + + + + + diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml index 7b6dbad..6b80048 100644 --- a/casic-iris-register/pom.xml +++ b/casic-iris-register/pom.xml @@ -30,41 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - - - - - diff --git a/casic-iris-support/pom.xml b/casic-iris-support/pom.xml index 8100a44..5732dfd 100644 --- a/casic-iris-support/pom.xml +++ b/casic-iris-support/pom.xml @@ -28,37 +28,6 @@ casic-admin-support ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 9d289a4..4b77183 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -78,6 +78,11 @@ com.casic + casic-admin-init + ${casic.version} + + + com.casic casic-metadata-core ${casic.version} @@ -133,75 +138,23 @@ spring-boot-devtools true - - - - - org.apache.shiro - shiro-core - - - slf4j-api - org.slf4j - - - - - org.apache.shiro - shiro-spring - - - org.apache.shiro - shiro-ehcache - - - slf4j-api - org.slf4j - - - - - org.ehcache - ehcache - ${ehcache.version} - + + + + + - - commons-io - commons-io - - - com.github.penggle - kaptcha - - - com.google.zxing - core - - - com.ibeetl - beetl - - - org.apache.commons - commons-lang3 - - - com.oracle - ojdbc6 - ${oracle.version} - - - org.codehaus.groovy - groovy-all - true - + + org.springframework.session + spring-session + compile + + --> + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java index 0051e60..00959b4 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -1,23 +1,20 @@ package com.casic.missiles.controller; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.log.LogManager; import com.casic.missiles.core.log.factory.LogTaskFactory; -import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.RSAUtils; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.contant.PermissionContant; import com.casic.missiles.modular.system.dto.LoginResult; -import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml index 7b6dbad..6b80048 100644 --- a/casic-iris-register/pom.xml +++ b/casic-iris-register/pom.xml @@ -30,41 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - - - - - diff --git a/casic-iris-support/pom.xml b/casic-iris-support/pom.xml index 8100a44..5732dfd 100644 --- a/casic-iris-support/pom.xml +++ b/casic-iris-support/pom.xml @@ -28,37 +28,6 @@ casic-admin-support ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 9d289a4..4b77183 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -78,6 +78,11 @@ com.casic + casic-admin-init + ${casic.version} + + + com.casic casic-metadata-core ${casic.version} @@ -133,75 +138,23 @@ spring-boot-devtools true - - - - - org.apache.shiro - shiro-core - - - slf4j-api - org.slf4j - - - - - org.apache.shiro - shiro-spring - - - org.apache.shiro - shiro-ehcache - - - slf4j-api - org.slf4j - - - - - org.ehcache - ehcache - ${ehcache.version} - + + + + + - - commons-io - commons-io - - - com.github.penggle - kaptcha - - - com.google.zxing - core - - - com.ibeetl - beetl - - - org.apache.commons - commons-lang3 - - - com.oracle - ojdbc6 - ${oracle.version} - - - org.codehaus.groovy - groovy-all - true - + + org.springframework.session + spring-session + compile + + --> + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java index 0051e60..00959b4 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -1,23 +1,20 @@ package com.casic.missiles.controller; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.log.LogManager; import com.casic.missiles.core.log.factory.LogTaskFactory; -import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.RSAUtils; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.contant.PermissionContant; import com.casic.missiles.modular.system.dto.LoginResult; -import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; 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 deleted file mode 100644 index 6689124..0000000 --- a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java +++ /dev/null @@ -1,53 +0,0 @@ -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登录使用 - */ -@Controller -@RequestMapping("/test") -public class TableTestController extends BaseController { - private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); - - @Autowired - private IMetadataCommonService metadataCommonService; - - - @PostMapping("/add") - @ResponseBody - public Object add(@RequestParam Map map) { - map.put("id", IdWorker.getId()); - map.put("targetId", 123L); - metadataCommonService.insertMetaData("SysPersonExt", map); - return ResponseData.success(); - } - - - @PostMapping("/update") - @ResponseBody - public Object update(@RequestParam Map map) { - metadataCommonService.updateMetaData("SysPersonExt", map); - return ResponseData.success(); - } - - @PostMapping("/detail") - @ResponseBody - public Object detail(Long id) { - return ResponseData.success(metadataCommonService.selectOneMetaData("SysPersonExt", id)); - } - -} diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml index 7b6dbad..6b80048 100644 --- a/casic-iris-register/pom.xml +++ b/casic-iris-register/pom.xml @@ -30,41 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - - - - - diff --git a/casic-iris-support/pom.xml b/casic-iris-support/pom.xml index 8100a44..5732dfd 100644 --- a/casic-iris-support/pom.xml +++ b/casic-iris-support/pom.xml @@ -28,37 +28,6 @@ casic-admin-support ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 9d289a4..4b77183 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -78,6 +78,11 @@ com.casic + casic-admin-init + ${casic.version} + + + com.casic casic-metadata-core ${casic.version} @@ -133,75 +138,23 @@ spring-boot-devtools true - - - - - org.apache.shiro - shiro-core - - - slf4j-api - org.slf4j - - - - - org.apache.shiro - shiro-spring - - - org.apache.shiro - shiro-ehcache - - - slf4j-api - org.slf4j - - - - - org.ehcache - ehcache - ${ehcache.version} - + + + + + - - commons-io - commons-io - - - com.github.penggle - kaptcha - - - com.google.zxing - core - - - com.ibeetl - beetl - - - org.apache.commons - commons-lang3 - - - com.oracle - ojdbc6 - ${oracle.version} - - - org.codehaus.groovy - groovy-all - true - + + org.springframework.session + spring-session + compile + + --> + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java index 0051e60..00959b4 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -1,23 +1,20 @@ package com.casic.missiles.controller; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.log.LogManager; import com.casic.missiles.core.log.factory.LogTaskFactory; -import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.RSAUtils; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.contant.PermissionContant; import com.casic.missiles.modular.system.dto.LoginResult; -import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; 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 deleted file mode 100644 index 6689124..0000000 --- a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java +++ /dev/null @@ -1,53 +0,0 @@ -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登录使用 - */ -@Controller -@RequestMapping("/test") -public class TableTestController extends BaseController { - private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); - - @Autowired - private IMetadataCommonService metadataCommonService; - - - @PostMapping("/add") - @ResponseBody - public Object add(@RequestParam Map map) { - map.put("id", IdWorker.getId()); - map.put("targetId", 123L); - metadataCommonService.insertMetaData("SysPersonExt", map); - return ResponseData.success(); - } - - - @PostMapping("/update") - @ResponseBody - public Object update(@RequestParam Map map) { - metadataCommonService.updateMetaData("SysPersonExt", map); - return ResponseData.success(); - } - - @PostMapping("/detail") - @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 4ba9e81..73ecf80 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,8 +3,7 @@ ################### spring配置 ################### spring: datasource: - //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 + url: jdbc:mysql://192.168.8.201:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root password: Casic203 initial-size: 2 @@ -14,6 +13,10 @@ 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 +# logic-delete-value: 0 logging: level.root: info level.com.casic: debug diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml index 7b6dbad..6b80048 100644 --- a/casic-iris-register/pom.xml +++ b/casic-iris-register/pom.xml @@ -30,41 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - - - - - diff --git a/casic-iris-support/pom.xml b/casic-iris-support/pom.xml index 8100a44..5732dfd 100644 --- a/casic-iris-support/pom.xml +++ b/casic-iris-support/pom.xml @@ -28,37 +28,6 @@ casic-admin-support ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 9d289a4..4b77183 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -78,6 +78,11 @@ com.casic + casic-admin-init + ${casic.version} + + + com.casic casic-metadata-core ${casic.version} @@ -133,75 +138,23 @@ spring-boot-devtools true - - - - - org.apache.shiro - shiro-core - - - slf4j-api - org.slf4j - - - - - org.apache.shiro - shiro-spring - - - org.apache.shiro - shiro-ehcache - - - slf4j-api - org.slf4j - - - - - org.ehcache - ehcache - ${ehcache.version} - + + + + + - - commons-io - commons-io - - - com.github.penggle - kaptcha - - - com.google.zxing - core - - - com.ibeetl - beetl - - - org.apache.commons - commons-lang3 - - - com.oracle - ojdbc6 - ${oracle.version} - - - org.codehaus.groovy - groovy-all - true - + + org.springframework.session + spring-session + compile + + --> + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java index 0051e60..00959b4 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -1,23 +1,20 @@ package com.casic.missiles.controller; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.log.LogManager; import com.casic.missiles.core.log.factory.LogTaskFactory; -import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.RSAUtils; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.contant.PermissionContant; import com.casic.missiles.modular.system.dto.LoginResult; -import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; 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 deleted file mode 100644 index 6689124..0000000 --- a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java +++ /dev/null @@ -1,53 +0,0 @@ -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登录使用 - */ -@Controller -@RequestMapping("/test") -public class TableTestController extends BaseController { - private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); - - @Autowired - private IMetadataCommonService metadataCommonService; - - - @PostMapping("/add") - @ResponseBody - public Object add(@RequestParam Map map) { - map.put("id", IdWorker.getId()); - map.put("targetId", 123L); - metadataCommonService.insertMetaData("SysPersonExt", map); - return ResponseData.success(); - } - - - @PostMapping("/update") - @ResponseBody - public Object update(@RequestParam Map map) { - metadataCommonService.updateMetaData("SysPersonExt", map); - return ResponseData.success(); - } - - @PostMapping("/detail") - @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 4ba9e81..73ecf80 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,8 +3,7 @@ ################### spring配置 ################### spring: datasource: - //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 + url: jdbc:mysql://192.168.8.201:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root password: Casic203 initial-size: 2 @@ -14,6 +13,10 @@ 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 +# logic-delete-value: 0 logging: level.root: info level.com.casic: debug diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 1c80179..39e13f0 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -16,6 +16,7 @@ mybatis-plus: global-config: sql-injector: com.casic.missiles.modular.metadata.inject.MetaSqlInject +# logic-delete-value: 0 logging: level.root: info level.com.casic: debug diff --git a/.gitignore b/.gitignore index 967cb75..4450645 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/target/** logs/ casic-web/src/test -*.iml \ No newline at end of file +*.iml +out/ \ No newline at end of file diff --git a/casic-iris-acs/pom.xml b/casic-iris-acs/pom.xml index d7cb377..3bc35aa 100644 --- a/casic-iris-acs/pom.xml +++ b/casic-iris-acs/pom.xml @@ -27,21 +27,7 @@ casic-admin-support ${casic.version} - - com.casic - casic-metadata-core - ${casic.version} - - - com.casic - casic-metadata-support - ${casic.version} - - - com.casic - casic-export-support - 1.0.0-SNAPSHOT - + com.casic @@ -58,37 +44,7 @@ casic-iris-device ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 b1d9b45..899c451 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; //import com.casic.missiles.core.result.ResultData; import com.casic.missiles.core.base.response.ResponseData; @@ -14,6 +15,7 @@ import com.casic.missiles.modular.system.warpper.DoorWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -86,9 +88,11 @@ try { doorService.insert(door); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } logger.error("门禁添加失败", e); - e.printStackTrace(); - return ResponseData.error("添加失败"); + return ResponseData.error("门禁添加失败"); } return ResponseData.success(); } @@ -105,8 +109,15 @@ } Door oldDoor = this.doorService.selectById(door.getId()); LogObjectHolder.me().set(oldDoor); - - doorService.updateById(door); + try{ + doorService.updateById(door); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("门禁编号重复"); + } + logger.error("门禁更新失败", e); + return ResponseData.error("门禁更新失败"); + } return ResponseData.success(); } 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 deleted file mode 100644 index fc7f86b..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/PersonController.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.plugins.Page; -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; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 人员管理控制器 - * - * @author dev - * @Date 2019-12-03 17:45:18 - */ -@RestController -@RequestMapping("/person") -public class PersonController extends BaseController { - @Autowired - private ICommonPermissionService permissionService; - @Autowired - private IPersonService personService; - - - /** - * 获取人员管理列表 - */ - @GetMapping(value = "/list") - @ResponseBody - public Object list(String condition) { - return ResponseData.success(personService.selectList(null)); - } - - /** - * 获取人员管理分页列表 - */ - @RequestMapping(value = "/listPage") - @ResponseBody - public Object listPage(String keywords, String sex, String duty, String deptId) { - Page page = new PageFactory().defaultPage(); - EntityWrapper query = new EntityWrapper<>(); - - 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(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - return ResponseData.success(personService.insert(person)); - } - - /** - * 删除人员管理 - */ - @RequestMapping(value = "/delete") - @ResponseBody - public Object delete(@RequestParam Long personId) { - personService.deleteById(personId); - return ResponseData.success(); - } - - /** - * 批量删除 - */ - @RequestMapping(value = "/batchDelete") - @ResponseBody - public Object delete(@RequestParam("ids") List personIds) { - personService.deleteBatchIds(personIds); - return ResponseData.success(); - } - - /** - * 修改人员管理 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object update(@RequestBody Person person) { - person.setOprationId(permissionService.getCurrLoginUser().getId()); - personService.updateById(person); - return ResponseData.success(); - } - - /** - * 人员管理详情 - */ - @RequestMapping(value = "/detail/{personId}") - @ResponseBody - 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/StrategyController.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/controller/StrategyController.java index f55aafd..cab84e3 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 @@ -2,6 +2,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.exception.GunsException; +import com.casic.missiles.core.exception.GunsExceptionEnum; +import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.warpper.StrategyWarpper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -91,6 +94,9 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(Strategy strategy) { + if (ToolUtil.isEmpty(strategy.getId())) { + throw new GunsException(GunsExceptionEnum.REQUEST_NULL); + } strategyService.updateById(strategy); return ResponseData.success(); } 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 deleted file mode 100644 index 116cc48..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/PersonMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 Mapper 接口 - *

- * - * @author lwh123 - * @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 8b983a5..8fe1c78 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 @@ -22,7 +22,7 @@ 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("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); + List> statisticByDept(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("inoutType") String inoutType); + Integer statisticByPerson(@Param("doorCode") String doorCode,@Param("deptIds")String deptIds, @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 index 03b9df5..57db741 100644 --- 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 @@ -30,7 +30,7 @@ acs_door door LEFT JOIN acs_permission per ON per.DOOR_CODE = door.DOOR_CODE LEFT JOIN sys_person p ON per.PERSON_ID = p.ID - WHERE p.DELFLAG = '0' + WHERE p.DELFLAG = '0' OR p.DELFLAG IS NULL GROUP BY door.DOOR_CODE 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 deleted file mode 100644 index 295c59a..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonMapper.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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 7111c89..42ce3b1 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 @@ -97,7 +97,14 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND re.DATETIME = ]]> #{beginTime} @@ -118,8 +125,15 @@ 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 door.DOOR_CODE = #{doorCode} + + + AND door.DEPTID IN (${deptIds}) + + AND p.DEPTID = #{deptId} 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 deleted file mode 100644 index 362678c..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Person.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.casic.missiles.modular.system.model; - -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; - -/** - *

- * 人员数据表 - *

- * - * @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(value = "ID", type = IdType.ID_WORKER) - private Long id; - /** - * 状态(0:有效 1:删除) - */ - @TableLogic - @TableField("DELFLAG") - private String delflag; - /** - * 创建时间 - */ - @TableField("CREATETIME") - private Date createtime; - /** - * 修改时间 - */ - @TableField("UPDATETIME") - private Date updatetime; - /** - * 姓名 - */ - @TableField("NAME") - private String name; - /** - * 性别 - */ - @TableField("SEX") - private String sex; - /** - * 所属部门 - */ - @TableField("DEPTID") - private Long deptid; - /** - * 身份证号 - */ - @TableField("ID_CARD_NO") - private String idCardNo; - /** - * 备注信息 - */ - @TableField("REMARKS") - private String remarks; - /** - * 人员类型 - */ - @TableField("PERSON_TYPE") - private String 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; - } - - @Override - public String toString() { - return "Person{" + - "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/Strategy.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/model/Strategy.java index 6e8ee67..a86aa0a 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -30,7 +31,7 @@ /** * 主键ID */ - @TableId("ID") + @TableId(value = "ID", type = IdType.AUTO) private Integer id; /** * 策略名称 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 deleted file mode 100644 index 1e4f7bc..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/IPersonService.java +++ /dev/null @@ -1,26 +0,0 @@ -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; - -/** - *

- * 人员数据表 服务类 - *

- * - * @author lwh123 - * @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 5db5a1d..0416aeb 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 @@ -23,5 +23,6 @@ List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType); List> statisticByPerson(String doorCode,String beginTime, String endTime,Long deptId, Long personId); + Boolean hasOutRecords(String doorCode); } 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 index 2ff1262..765ef93 100644 --- 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 @@ -4,6 +4,7 @@ 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.core.util.ToolUtil; import com.casic.missiles.modular.system.model.AcsPermission; import com.casic.missiles.modular.system.dao.AcsPermissionMapper; import com.casic.missiles.modular.system.service.IAcsPermissionService; @@ -64,9 +65,11 @@ 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); + if(ToolUtil.isNotEmpty(map.get("deptId"))){ + Long dept = Long.valueOf(map.get("deptId").toString()); + String deptName = commonPermissionService.getDeptName(dept); + map.put("deptName",deptName); + } } return list; } 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 84b5a5c..8039759 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 @@ -39,20 +39,14 @@ private IDeviceService deviceService; @Autowired private IAcsPermissionService acsPermissionService; + @Autowired + private RecognitionRecordsServiceImpl recordsService; @Override public List> selectDataScope(DataScope 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); - } + setInOutDevice(map); } return list; } @@ -61,21 +55,22 @@ public List> selectDataScopePage(DataScope dataScope, Page page) { 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{ - map.put("hasOut",false); - } + setInOutDevice(map); } return list; } - - private String getDevice(String doorCode,String inoutType){ + private void setInOutDevice(Map map){ + String doorCode = map.get("doorCode").toString(); + map.put("inDeviceCodes",getDeviceCodes(doorCode,"1")); + map.put("outDeviceCodes",getDeviceCodes(doorCode,"0")); + map.put("inDeviceIds",getDeviceIds(doorCode,"1")); + map.put("outDeviceIds",getDeviceIds(doorCode,"0")); + map.put("hasOut",existOut(doorCode)); + map.put("hasOutRecords",recordsService.hasOutRecords(doorCode)); + } + + private String getDeviceCodes(String doorCode,String inoutType){ List> list = deviceService.selectDeviceByDoor(doorCode,inoutType); //设备列表 if(list.size()>0){ List devCodes = new ArrayList<>(); @@ -86,6 +81,17 @@ } } + private String getDeviceIds(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("id").toString())); + return String.join(",",devCodes); + }else{ + return ""; + } + } + @Override @Transactional public Boolean deleteBatch(List ids) { 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 deleted file mode 100644 index a672344..0000000 --- a/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/PersonServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.casic.missiles.modular.system.service.impl; - -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; - -/** - *

- * 人员数据表 服务实现类 - *

- * - * @author lwh123 - * @since 2019-12-03 - */ -@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 c342256..42f87cf 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 @@ -1,15 +1,20 @@ 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.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Device; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.RecognitionRecords; import com.casic.missiles.modular.system.dao.RecognitionRecordsMapper; +import com.casic.missiles.modular.system.service.IDeviceService; import com.casic.missiles.modular.system.service.IDoorService; import com.casic.missiles.modular.system.service.IRecognitionRecordsService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.sun.javafx.collections.MappingChange; +import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,6 +38,8 @@ private ICommonPermissionService permissionService; @Autowired private IDoorService doorService; + @Autowired + private IDeviceService deviceService; @Override public List> selectStaffDataScopePage(DataScope dataScope, Page page, String keyword, Long personDeptId, String doorCode, String devCode, String beginTime, String endTime) { @@ -52,7 +59,10 @@ @Override public List> statisticByDept(String doorCode,String beginTime, String endTime,String inoutType){ - List> list = this.baseMapper.statisticByDept(doorCode, beginTime, endTime, inoutType); + List> list = new ArrayList<>(); + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + list = this.baseMapper.statisticByDept(doorCode, deptIds,beginTime, endTime, inoutType); for (Map res : list) { Long deptid = Long.valueOf(String.valueOf(res.get("deptId"))); String deptName = permissionService.getDeptName(deptid); @@ -63,21 +73,72 @@ @Override 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(doorCode); - for (Dict dict : dictList) { - // 如果门禁不存在出门设备,不统计“出门” - if(!existOut){ - if("out".equals(dict.getTips())){ - continue; - } + + DataScope dataScope = permissionService.getCurrUserDataScope(); + String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(),"[]"); + // 进门 + Map map1 = new HashMap<>(); + map1.put("inoutType","进门"); + map1.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"1")); + mapList.add(map1); + + // 出门 + if(ToolUtil.isEmpty(doorCode)){ + // 对于所有门,没有出门设备&&没有出门记录,不统计出门 + if(hasOutRecordsAll() || hasOutDeviceAll()){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); } - Map map = new HashMap<>(); - map.put("inoutType",dict.getName()); - map.put("num",this.baseMapper.statisticByPerson(doorCode,beginTime,endTime,deptId,personId,dict.getCode())); - mapList.add(map); + }else { + // 对于doorCode, 没有出门设备&&没有出门记录,不统计出门 + Boolean existOut = doorService.existOut(doorCode); + Boolean existOutRecords = hasOutRecords(doorCode); + if(existOut || existOutRecords){ + Map map2 = new HashMap<>(); + map2.put("inoutType","出门"); + map2.put("num",this.baseMapper.statisticByPerson(doorCode,deptIds,beginTime,endTime,deptId,personId,"0")); + mapList.add(map2); + } } return mapList; } + + @Override + public Boolean hasOutRecords(String doorCode){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("DOOR_CODE",doorCode); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutRecordsAll(){ + EntityWrapper query = new EntityWrapper<>(); + query.eq("INOUT_TYPE","0"); + List records = this.selectList(query); + if(records.size()>0){ + return true; + }else { + return false; + } + } + + private Boolean hasOutDeviceAll(){ + EntityWrapper devQuery = new EntityWrapper<>(); + devQuery.eq("INOUT_TYPE",'0'); + List list = deviceService.selectList(devQuery); + if(list.size()>0){ + return true; + }else { + return false; + } + } } diff --git a/casic-iris-device/pom.xml b/casic-iris-device/pom.xml index 338bacf..b755d76 100644 --- a/casic-iris-device/pom.xml +++ b/casic-iris-device/pom.xml @@ -30,37 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - 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 17ae78a..3271a10 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.exceptions.MybatisPlusException; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.annotion.BussinessLog; @@ -13,6 +14,7 @@ import com.casic.missiles.modular.system.warpper.DeviceWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -90,8 +92,10 @@ try { deviceService.insert(device); }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } logger.error("设备添加失败", e); - e.printStackTrace(); return ResponseData.error("设备添加失败"); } return ResponseData.success(); @@ -112,8 +116,15 @@ } Device oldDevice = this.deviceService.selectById(device.getId()); LogObjectHolder.me().set(oldDevice); - - deviceService.updateById(device); + try { + deviceService.updateById(device); + }catch (Exception e){ + if (e instanceof DuplicateKeyException) { + return ResponseData.error("设备编号重复"); + } + logger.error("设备修改失败", e); + return ResponseData.error("设备修改失败"); + } return ResponseData.success(); } diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml index 7b6dbad..6b80048 100644 --- a/casic-iris-register/pom.xml +++ b/casic-iris-register/pom.xml @@ -30,41 +30,6 @@ ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - - - - - diff --git a/casic-iris-support/pom.xml b/casic-iris-support/pom.xml index 8100a44..5732dfd 100644 --- a/casic-iris-support/pom.xml +++ b/casic-iris-support/pom.xml @@ -28,37 +28,6 @@ casic-admin-support ${casic.version} - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework.boot - spring-boot-starter-test - test - - - commons-io - commons-io - - - - org.apache.commons - commons-lang3 - diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 9d289a4..4b77183 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -78,6 +78,11 @@ com.casic + casic-admin-init + ${casic.version} + + + com.casic casic-metadata-core ${casic.version} @@ -133,75 +138,23 @@ spring-boot-devtools true - - - - - org.apache.shiro - shiro-core - - - slf4j-api - org.slf4j - - - - - org.apache.shiro - shiro-spring - - - org.apache.shiro - shiro-ehcache - - - slf4j-api - org.slf4j - - - - - org.ehcache - ehcache - ${ehcache.version} - + + + + + - - commons-io - commons-io - - - com.github.penggle - kaptcha - - - com.google.zxing - core - - - com.ibeetl - beetl - - - org.apache.commons - commons-lang3 - - - com.oracle - ojdbc6 - ${oracle.version} - - - org.codehaus.groovy - groovy-all - true - + + org.springframework.session + spring-session + compile + + --> + + + + + diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java index 0051e60..00959b4 100644 --- a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java @@ -1,23 +1,20 @@ package com.casic.missiles.controller; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.log.LogManager; import com.casic.missiles.core.log.factory.LogTaskFactory; -import com.casic.missiles.core.base.response.SuccessResponseData; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.RSAUtils; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.contant.PermissionContant; import com.casic.missiles.modular.system.dto.LoginResult; -import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; 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 deleted file mode 100644 index 6689124..0000000 --- a/casic-web/src/main/java/com/casic/missiles/controller/TableTestController.java +++ /dev/null @@ -1,53 +0,0 @@ -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登录使用 - */ -@Controller -@RequestMapping("/test") -public class TableTestController extends BaseController { - private static final Logger logger = LoggerFactory.getLogger(TableTestController.class); - - @Autowired - private IMetadataCommonService metadataCommonService; - - - @PostMapping("/add") - @ResponseBody - public Object add(@RequestParam Map map) { - map.put("id", IdWorker.getId()); - map.put("targetId", 123L); - metadataCommonService.insertMetaData("SysPersonExt", map); - return ResponseData.success(); - } - - - @PostMapping("/update") - @ResponseBody - public Object update(@RequestParam Map map) { - metadataCommonService.updateMetaData("SysPersonExt", map); - return ResponseData.success(); - } - - @PostMapping("/detail") - @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 4ba9e81..73ecf80 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,8 +3,7 @@ ################### spring配置 ################### spring: datasource: - //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 + url: jdbc:mysql://192.168.8.201:3306/casic_iris?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root password: Casic203 initial-size: 2 @@ -14,6 +13,10 @@ 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 +# logic-delete-value: 0 logging: level.root: info level.com.casic: debug diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml index 1c80179..39e13f0 100644 --- a/casic-web/src/main/resources/config/application-test.yml +++ b/casic-web/src/main/resources/config/application-test.yml @@ -16,6 +16,7 @@ mybatis-plus: global-config: sql-injector: com.casic.missiles.modular.metadata.inject.MetaSqlInject +# logic-delete-value: 0 logging: level.root: info level.com.casic: debug diff --git a/pom.xml b/pom.xml index 92aa7c3..6716793 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 2.2.2 3.6 2.6.11 - 5.1.38 + 5.1.44 0.9.0 4.0.0 ojdbc6-11.1.0.7.0