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/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/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/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/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/service/impl/RecognitionRecordsServiceImpl.java b/casic-iris-acs/src/main/java/com/casic/missiles/modular/system/service/impl/RecognitionRecordsServiceImpl.java index 34e7e4f..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 @@ -4,13 +4,17 @@ 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; @@ -34,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) { @@ -53,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); @@ -64,22 +73,36 @@ @Override public List> statisticByPerson(String doorCode, String beginTime, String endTime, Long deptId, Long personId) { - List dictList = permissionService.findInDictByCode("inoutType"); + List> mapList = new ArrayList<>(); - for (Dict dict : dictList) { - // 没有出门设备&&没有出门记录,不统计出门 - if("out".equals(dict.getTips())){ - Boolean existOut = doorService.existOut(doorCode); - Boolean existOutRecords = hasOutRecords(doorCode); - if(!existOut && !existOutRecords){ - 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; } @@ -96,4 +119,26 @@ 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; + } + } }