Browse Source

设备新增代码提交

jingyuanchao 1 năm trước cách đây
mục cha
commit
1498fe4cab

+ 11 - 5
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeviceController.java

@@ -19,11 +19,13 @@ import com.xunmei.system.api.domain.SysDictData;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.dto.ProtectionDTO;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
+import com.xunmei.system.dto.SysDevicePageDto;
 import com.xunmei.system.service.ISysDeviceService;
 import com.xunmei.system.service.ISysDictDataService;
 import com.xunmei.system.service.ISysDictTypeService;
 import com.xunmei.system.service.ISysOrgService;
 import com.xunmei.system.util.DeviceExport;
+import com.xunmei.system.vo.device.SysDevicePageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -68,7 +70,7 @@ public class SysDeviceController extends BaseController {
     @ApiOperation(value = "查询SysDevice列表")
     @RequiresPermissions("system:device:list")
     @GetMapping("/list")
-    public TableDataInfo<SysDevice> list(SysDevice sysDevice) {
+    public TableDataInfo<SysDevicePageVo> list(SysDevicePageDto sysDevice) {
         return sysDeviceService.selectPage(sysDevice);
     }
 
@@ -84,10 +86,14 @@ public class SysDeviceController extends BaseController {
     public AjaxResult listIdName(SysDevice sysDevice) {
         sysDevice.setPageNum(1L);
         sysDevice.setPageSize(99999L);
+        SysDevicePageDto pageVo = new SysDevicePageDto();
+        pageVo.setPageNum(1);
+        pageVo.setPageSize(99999);
+        BeanUtils.copyProperties(sysDevice, pageVo);
 
-        List<?> table = sysDeviceService.selectPage(sysDevice).getRows();
+        List<?> table = sysDeviceService.selectPage(pageVo).getRows();
         List<IdNameVo> voList = table.stream().map(r -> {
-            return new IdNameVo(((SysDevice) r).getId(), ((SysDevice) r).getDeviceName(), "");
+            return new IdNameVo(((SysDevicePageVo) r).getId(), ((SysDevicePageVo) r).getDeviceName(), "");
         }).collect(Collectors.toList());
 
         return success(voList);
@@ -263,14 +269,14 @@ public class SysDeviceController extends BaseController {
                         }
                         ProtectionDTO protectionDTO = sysDeviceService.insertSysDeviceExcel(sysDevice);
 
-                        if(null != protectionDTO){
+                        if (null != protectionDTO) {
                             dtos.add(protectionDTO);
                         }
                     } else {
                         throw new RuntimeException("机构名称" + d.getOrgName() + "不存在");
                     }
                 }
-                if(!dtos.isEmpty()){
+                if (!dtos.isEmpty()) {
                     for (ProtectionDTO dto : dtos) {
                         remoteProtectionService.addByDevice(dto, SecurityConstants.INNER);
                     }

+ 20 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/dto/SysDevicePageDto.java

@@ -0,0 +1,20 @@
+package com.xunmei.system.dto;
+
+import com.xunmei.common.core.web.domain.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SysDevicePageDto extends PageRequest {
+
+    @ApiModelProperty(value = "资产类别")
+    private Long assetType;
+
+    @ApiModelProperty(value = "设备分类")
+    private Long deviceType;
+
+    @ApiModelProperty(value = "名称")
+    private String deviceName;
+}

+ 7 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysDeviceMapper.java

@@ -1,14 +1,17 @@
 package com.xunmei.system.mapper;
 
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
+import com.xunmei.system.dto.SysDevicePageDto;
 import com.xunmei.system.vo.area.AccessType;
+import com.xunmei.system.vo.device.SysDevicePageVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * 【请填写功能名称】Mapper接口
  *
@@ -86,4 +89,6 @@ public interface SysDeviceMapper extends BaseMapper<SysDevice> {
      * @return 结果
      */
     int deleteSysDeviceByIds(Long[] ids);
+
+    Page<SysDevicePageVo> selectPageData(Page<SysDevicePageVo> pageRequest, @Param("req") SysDevicePageDto req);
 }

+ 5 - 5
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeviceService.java

@@ -1,17 +1,17 @@
 package com.xunmei.system.service;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.dto.ProtectionDTO;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
+import com.xunmei.system.dto.SysDevicePageDto;
 import com.xunmei.system.vo.area.HostVO;
+import com.xunmei.system.vo.device.SysDevicePageVo;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
 
 /**
  * 【设备管理】Service接口
@@ -105,7 +105,7 @@ public interface ISysDeviceService extends IService<SysDevice> {
      * @param sysDevice 查询条件对象
      * @return Page
      */
-    TableDataInfo<SysDevice> selectPage(SysDevice sysDevice);
+    TableDataInfo<SysDevicePageVo> selectPage(SysDevicePageDto sysDevice);
 
 
 

+ 35 - 62
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java

@@ -7,37 +7,42 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.enums.OrgTypeEnum;
+import com.xunmei.common.core.domain.device.domain.SysMultiLayerDictionary;
 import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
-import com.xunmei.system.api.RemoteMediatorService;
 import com.xunmei.system.api.RemoteProtectionService;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.dto.ProtectionDTO;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
 import com.xunmei.system.api.vo.ProtectionVO;
+import com.xunmei.system.dto.SysDevicePageDto;
 import com.xunmei.system.mapper.SysDeviceMapper;
 import com.xunmei.system.mapper.SysOrgMapper;
 import com.xunmei.system.service.ISysDeviceService;
+import com.xunmei.system.service.ISysMultiLayerDictionaryService;
 import com.xunmei.system.service.ISysOrgService;
 import com.xunmei.system.util.DeviceExport;
 import com.xunmei.system.vo.area.AccessType;
 import com.xunmei.system.vo.area.HostVO;
 import com.xunmei.system.vo.area.VideoVO;
+import com.xunmei.system.vo.device.SysDevicePageVo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 【请填写功能名称】Service业务层处理
@@ -56,77 +61,42 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
     private SysOrgMapper sysOrgMapper;
     @Autowired
     private RemoteProtectionService remoteProtectionService;
-    @Autowired
-    private RemoteMediatorService remoteMediatorService;
+    @Resource
+    private ISysMultiLayerDictionaryService dictionaryService;
     @Autowired
     private RedisTemplate redisTemplate;
 
     @Override
-    public TableDataInfo<SysDevice> selectPage(SysDevice sysDevice) {
-        //未删除
-        sysDevice.setDelFlag("0");
-        Page<SysDevice> page;
-        //分页
-        if (sysDevice.getPageNum() != null && sysDevice.getPageSize() != null) {
-            page = new Page<>(sysDevice.getPageNum(), sysDevice.getPageSize());
-        } else {
-            page = new Page<>();
-        }
-        //查询条件
-        String n = sysDevice.getDeviceName();
-        sysDevice.setDeviceName(null);
-        QueryWrapper<SysDevice> query = new QueryWrapper<>(sysDevice);
-        if (null != n) {
-            query.like("device_name", n);
-        }
+    public TableDataInfo<SysDevicePageVo> selectPage(SysDevicePageDto req) {
+
         //下穿
-        if (sysDevice.getCheckSub()) {
-            List<Long> ids = orgService.selectCheckSubOrgIdList(sysDevice.getOrgId());
-            //清空前端传递的org_id
-            sysDevice.setOrgId(null);
-            //添加in条件
-            query.in("org_id", ids);
-        }
-        //时间范围查询
-        if (sysDevice.getParams().get("beginTime") != null && sysDevice.getParams().get("endTime") != null) {
-            query.between("create_time", sysDevice.getParams().get("beginTime"), sysDevice.getParams().get("endTime"));
+        if (req.getCheckSub()) {
+            SysOrg org = orgService.getById(req.getOrgId());
+            req.setOrgPath(org.getPath());
         }
+
         //获取数据
-        page = sysDeviceMapper.selectPage(page, query);
-        if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isEmpty(page.getRecords()) && page.getTotal() > 0) {
-            if (sysDevice.getPageNum() != null && sysDevice.getPageSize() != null) {
-                page = new Page<>(sysDevice.getPageNum() - 1, sysDevice.getPageSize());
-            } else {
-                page = new Page<>();
-            }
-            page = sysDeviceMapper.selectPage(page, query);
-        }
-        if (ObjectUtil.isNotEmpty(page.getRecords())) {
-            List<Long> collect = page.getRecords().stream().map(SysDevice::getOrgId).collect(Collectors.toList());
-            List<SysOrg> sysOrgs = orgService.selectByOrgIdList(collect);
-            for (SysDevice record : page.getRecords()) {
-                Optional<SysOrg> any = sysOrgs.stream().filter(r -> ObjectUtil.equal(r.getId(), record.getOrgId())).findAny();
-                if (!any.isPresent()) {
-                    continue;
-                }
-                SysOrg sysOrg = any.get();
-                if (OrgTypeEnum.DIQU_HANG_SHE.getCode().toString().equals(sysOrg.getOrgType())) {
-                    continue;
-                }
-                if (OrgTypeEnum.HANG_SHE.getCode().toString().equals(sysOrg.getOrgType())) {
-                    record.setAffiliatedArea(sysOrg.getAffiliatedArea());
-                    continue;
-                }
-                record.setAffiliatedArea(sysOrg.getAffiliatedArea());
-                record.setAffiliatedBank(sysOrg.getAffiliatedBank());
-            }
-        }
+        Page<SysDevicePageVo> page = sysDeviceMapper.selectPageData(req.getPageRequest(), req);
+        dealDictData(page.getRecords());
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(page);
 
 
     }
 
+    private void dealDictData(List<SysDevicePageVo> list) {
+        if (ObjectUtil.isEmpty(list)) {
+            return;
+        }
+        List<SysMultiLayerDictionary> dictionaryList = dictionaryService.list();
+        for (SysDevicePageVo vo : list) {
+            dictionaryList.stream().filter(r -> ObjectUtil.equal(vo.getAssetType(), r.getId().toString())).findFirst().ifPresent(r -> vo.setAssetType(r.getName()));
+            dictionaryList.stream().filter(r -> ObjectUtil.equal(vo.getDeviceType(), r.getId().toString())).findFirst().ifPresent(r -> vo.setDeviceType(r.getName()));
+            dictionaryList.stream().filter(r -> ObjectUtil.equal(vo.getDeviceBrand(), r.getId().toString())).findFirst().ifPresent(r -> vo.setDeviceBrand(r.getName()));
+            dictionaryList.stream().filter(r -> ObjectUtil.equal(vo.getDeviceModel(), r.getId().toString())).findFirst().ifPresent(r -> vo.setDeviceModel(r.getName()));
+        }
+    }
+
     /**
      * 查询列表
      *
@@ -254,6 +224,7 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
     /**
      * 新增【请填写功能名称】
      * 该方法只适合单个新增,批量导入时,会导致报警主机新增时数据报错
+     *
      * @param sysDevice 【请填写功能名称】
      * @return 结果
      */
@@ -265,6 +236,8 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
         sysDevice.setUpdateBy(SecurityUtils.getUsername());
         SysOrg sysOrg = orgService.selectSysOrgById(sysDevice.getOrgId());
         sysDevice.setOrgName(sysOrg.getShortName());
+        sysDevice.setOrgPath(sysOrg.getPath());
+        sysDevice.setOrgId(sysOrg.getId());
         SysDevice sysDevice1 = this.checkName(sysDevice.getOrgId(), sysDevice.getDeviceName());
         if (null != sysDevice1) {
             throw new RuntimeException("设备名称重复");

+ 54 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/vo/device/SysDevicePageVo.java

@@ -0,0 +1,54 @@
+package com.xunmei.system.vo.device;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SysDevicePageVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "机构id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long orgId;
+
+    @ApiModelProperty(value = "机构名字")
+    private String orgName;
+
+    @ApiModelProperty(value = "orgPath")
+    private String orgPath;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "资产编号")
+    private String assetNo;
+
+    @ApiModelProperty(value = "设备状态")
+    private Integer deviceStatus;
+
+    @ApiModelProperty(value = "设备型号")
+    private String deviceModel;
+
+    @ApiModelProperty(value = "资产类别")
+    private String assetType;
+
+    @ApiModelProperty(value = "设备分类")
+    private String deviceType;
+
+    @ApiModelProperty(value = "设备品牌")
+    private String deviceBrand;
+
+    @ApiModelProperty(value = "地区")
+    private String affiliatedArea;
+
+    @ApiModelProperty(value = "行社")
+    private String affiliatedBank;
+}

+ 24 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysDeviceMapper.xml

@@ -328,4 +328,28 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="selectPageData" resultType="com.xunmei.system.vo.device.SysDevicePageVo">
+        select
+        d.id,d.asset_no,d.org_id,d.org_name,d.device_name,d.asset_type,d.device_type,d.device_brand,d.device_model,o.affiliated_bank,o.affiliated_area,d.device_status
+        from sys_device d
+        inner join sys_org o on d.org_id = o.id
+        where d.del_flag = 0 and o.deleted=0 and o.is_lock = 0
+        <if test="req.deviceName != null and req.deviceName !='' ">
+            and d.device_name like concat('%',#{req.deviceName},'%')
+        </if>
+        <if test="req.assetType != null ">
+            and d.asset_type = #{req.assetType}
+        </if>
+        <if test="req.deviceType != null ">
+            and d.device_type = #{req.deviceType}
+        </if>
+        <if test="req.checkSub == false">
+            and d.org_id = #{req.orgId}
+        </if>
+        <if test="req.checkSub == true">
+            and d.org_path like concat(#{req.orgPath},'%')
+        </if>
+        order by d.create_time desc
+    </select>
 </mapper>