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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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-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/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/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/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/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/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/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/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(); }