server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java
@@ -87,4 +87,11 @@ public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(deviceService.findById(id)); } @ApiOperation("获取门禁集合-提供给门禁组") @PostMapping("/getList") //@RequiresPermissions("business:device:query") public ApiResponse findList(@RequestBody Device device) { return ApiResponse.success(deviceService.findIdAndNameList(device)); } } server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -57,6 +57,9 @@ // ERP ACCESS_SECRET public static final String ERP_ACCESS_SECRET = "ERP_ACCESS_SECRET"; // FTP文件服务器资源访问地址 public static final String FTP_RESOURCE_PATH = "FTP_RESOURCE_PATH"; public static Date getBirthdyByCardNo(String idCard){ if(idCard ==null || idCard.length()<14){ return null; server/dmvisit_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
@@ -4,6 +4,7 @@ import com.doumee.dao.system.dto.QuerySystemDictDataDTO; import com.doumee.dao.system.model.SystemDictData; import com.doumee.dao.system.vo.SystemDictDataListVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -16,4 +17,8 @@ */ List<SystemDictDataListVO> selectManageList(QuerySystemDictDataDTO dto); /** * 根据Code 查询字典表code对应的值 */ List<SystemDictData> list(@Param("codes") List<String> codes); } server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
@@ -1,5 +1,6 @@ package com.doumee.service.business; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; @@ -81,6 +82,13 @@ List<Device> findList(Device device); /** * 根据条件查询,所有门禁的ID和名称 * @param device * @return */ List<Device> findIdAndNameList(Device device); /** * 分页查询 * * @param pageWrap 分页对象 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.core.util.ReUtil; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.admin.request.DeviceEventQuery; import com.doumee.dao.admin.response.DeviceEventDTO; @@ -14,19 +15,24 @@ import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.DeviceEvent; import com.doumee.dao.business.model.Member; import com.doumee.dao.system.SystemDictDataMapper; import com.doumee.dao.system.model.SystemDictData; import com.doumee.dao.system.vo.SystemDictDataListVO; import com.doumee.service.business.DeviceEventService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.sun.org.apache.xerces.internal.xs.StringList; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; /** * 门禁事件推送记录表Service实现 @@ -42,6 +48,9 @@ @Autowired private DeviceEventJoinMapper deviceEventJoinMapper; @Autowired private SystemDictDataMapper systemDictDataMapper; @Override public Integer create(DeviceEvent deviceEvent) { @@ -322,6 +331,37 @@ pageWrap.getModel().getEndTime()); queryWrapper.orderByDesc(DeviceEvent::getHappenTime); IPage<DeviceEventDTO> deviceEventDTOIPage = deviceEventJoinMapper.selectJoinPage(page, DeviceEventDTO.class, queryWrapper); if(null != deviceEventDTOIPage && deviceEventDTOIPage.getRecords().size() > 0) { deviceEventDTOIPage.setRecords(newDeviceEvent(deviceEventDTOIPage.getRecords())); } return PageData.from(deviceEventDTOIPage); } // 对图片进行判断处理 private List<DeviceEventDTO> newDeviceEvent(List<DeviceEventDTO> DeviceEventDTOList) { List<DeviceEventDTO> newDeviceEventDTOS = new ArrayList<>(); for (DeviceEventDTO dto:DeviceEventDTOList) { if(StringUtils.isNotBlank(dto.getExtEventPictureURL())) { String extEventPictureURL = dto.getExtEventPictureURL(); // 使用split("/")将URL按照"/"进行分割成多个部分 String[] parts = extEventPictureURL.split("\\\\"); String newStr = parts[0]; boolean number = Validator.isNumber(newStr); if(number) { List<String> codes = Arrays.asList(Constants.FTP_RESOURCE_PATH,Constants.DEVICE_EVENT_IMG); List<SystemDictData> list = systemDictDataMapper.list(codes); if(null != list && list.size() > 0) { Map<String,SystemDictData> dataMap = list.stream().collect(Collectors.toMap(SystemDictData::getLabel, Function.identity())); dto.setExtEventPictureURL(dataMap.get(Constants.FTP_RESOURCE_PATH).getCode() +dataMap.get(Constants.DEVICE_EVENT_IMG).getCode() +dto.getExtEventPictureURL()); } }else { dto.setExtEventPictureURL(null); } } newDeviceEventDTOS.add(dto); } return newDeviceEventDTOS; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -56,7 +56,7 @@ .eq(DeviceRole::getStatus,Constants.ONE); List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query); if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"同一个用户类型,只能有一个默认角色"); throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"管理内部员工只能有一个默认门禁组"); } LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); @@ -113,7 +113,7 @@ .eq(DeviceRole::getStatus,Constants.ONE); List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query); if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"同一个用户类型,只能有一个默认角色"); throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"管理内部员工只能有一个默认门禁组"); } deviceRole.setIsDefault(Constants.equalsInteger(Constants.ONE,deviceRole.getStatus()) ? 0 : 1); deviceRoleMapper.updateById(deviceRole); @@ -128,7 +128,7 @@ .eq(DeviceRole::getStatus,Constants.ONE); List<DeviceRole> deviceRoles = deviceRoleMapper.selectList(query); if (CollectionUtils.isNotEmpty(deviceRoles) && Constants.equalsInteger(Constants.ONE,deviceRole.getStatus())){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"同一个用户类型,只能有一个默认角色"); throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"管理内部员工只能有一个默认门禁组"); } LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); DeviceRole update = new DeviceRole(); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -1,5 +1,6 @@ package com.doumee.service.business.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; @@ -13,7 +14,9 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.DeviceMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.Retention; import com.doumee.service.business.DeviceService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -28,6 +31,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; /** * 设备信息表Service实现 @@ -99,6 +103,18 @@ } @Override public List<Device> findIdAndNameList(Device param) { LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>(param); wrapper.select(Device::getId, Device::getName); if(null != param.getType() && null != param.getIsdeleted() && null != param.getHkStatus()) { wrapper.eq(Device::getType,param.getType()) .eq(Device::getIsdeleted,param.getIsdeleted()) .eq(Device::getHkStatus,param.getHkStatus()); } return deviceMapper.selectList(wrapper); } @Override public PageData<Device> findPage(PageWrap<Device> pageWrap) { IPage<Device> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<Device> queryWrapper = new QueryWrapper<>(); server/dmvisit_service/src/main/resources/mappers/SystemDictDataMapper.xml
@@ -29,5 +29,19 @@ </if> </where> </select> <select id="list" resultType="com.doumee.dao.system.vo.SystemDictDataListVO"> SELECT dict_data.`ID`, dict_data.`DICT_ID`, dict_data.`CODE`, dict_data.`LABEL` FROM SYSTEM_DICT_DATA dict_data <where> dict_data.DELETED = 0 <if test="codes != null and codes.size > 0"> AND dict_data.`LABEL` in <foreach collection="codes" index="index" item="code" open="(" separator="," close=")"> #{code} </foreach> </if> </where> </select> </mapper>