lishuai
2023-12-15 dc533427ccc2a3b2fc19334dbb6fc87f9399d5d0
事件图片处理
已修改8个文件
105 ■■■■■ 文件已修改
server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/resources/mappers/SystemDictDataMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
@@ -79,7 +80,14 @@
     * @return List<Device>
     */
    List<Device> findList(Device device);
    /**
     * 根据条件查询,所有门禁的ID和名称
     * @param device
     * @return
     */
    List<Device> findIdAndNameList(Device device);
    /**
     * 分页查询
     *
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实现
@@ -97,6 +101,18 @@
        QueryWrapper<Device> wrapper = new QueryWrapper<>(device);
        return deviceMapper.selectList(wrapper);
    }
    @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) {
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>