das接口新增

This commit is contained in:
chenhaojie 2024-07-05 10:55:30 +08:00
parent 4ebb3d9d34
commit b341ebb2bc
7 changed files with 227 additions and 4 deletions

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.das.common.constant.BaseEntity;
import com.das.modules.equipment.entity.SysEquipment;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
@ -102,8 +103,8 @@ public class SysOrg extends BaseEntity {
private String aliasName;
/**
* 节点
* 设备节点
*/
@TableField(exist = false)
private List<SysOrg> children;
private List<SysEquipment> equipChildren;
}

View File

@ -8,9 +8,12 @@ import com.das.common.result.R;
import com.das.common.utils.PageDataInfo;
import com.das.modules.auth.entity.SysOrg;
import com.das.modules.equipment.domain.dto.SysEquipmentDto;
import com.das.modules.equipment.domain.dto.SysIotModelDto;
import com.das.modules.equipment.domain.vo.EquipmentTypeVo;
import com.das.modules.equipment.domain.vo.SysEquipmentVo;
import com.das.modules.equipment.service.SysEquipmentService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -110,15 +113,36 @@ public class EquipmentController {
return sysEquipmentService.querySysEquipmentList(sysEquipmentDto);
}
/**
* 查询设备类型列表
* @return 所有的设备类型
*/
@PostMapping("/list")
public R<List<SysEquipmentVo>> queryAllSysEquipmentList(@RequestBody SysEquipmentDto sysEquipmentDto) {
return R.success(sysEquipmentService.queryAllSysEquipmentList(sysEquipmentDto));
}
/**
* 查询设备树
* @return 所有的设备类型
*/
@PostMapping("/getDeviceTree")
@PostMapping("/getEquipmentTree")
public R<List<SysOrg>> getRootOrg(@RequestBody SysEquipmentDto sysEquipmentDto) {
if (sysEquipmentDto.getOrgId() == null) {
throw new ServiceException("参数缺失");
}
return R.success(sysEquipmentService.getRootOrg(sysEquipmentDto));
}
/** 设备导出 */
@PostMapping("/export")
public void exportSysEquipment(@RequestBody SysEquipmentDto sysEquipmentDto, HttpServletRequest request, HttpServletResponse response) {
if (sysEquipmentDto.getParentEquipmentId() == null) {
throw new ServiceException("请选择需要下载的设备类型信息");
}
sysEquipmentService.exportSysEquipment(sysEquipmentDto,request, response);
}
}

View File

@ -0,0 +1,91 @@
package com.das.modules.equipment.domain.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.util.Date;
@Data
public class SysEquipmentExcel {
/**
* 设备类型编码
*/
@ExcelProperty(value = "设备类型编码",index = 0)
private Integer objectType;
/**
* 所属物模型ID
*/
@ExcelProperty(value = "所属物模型名称",index = 1)
private String iotModelName;
/**
* 设备编码
*/
@ExcelProperty(value = "设备编码",index = 2)
private String code;
/**
* 设备名称
*/
@ExcelProperty(value = "设备名称",index = 3)
private String name;
/**
* 制造商
*/
@ExcelProperty(value = "制造商",index = 4)
private String madeinFactory;
/**
* 型号规格
*/
@ExcelProperty(value = "型号规格",index = 5)
private String model;
/**
* 安装位置
*/
@ExcelProperty(value = "安装位置",index = 6)
private String location;
/**
* 安装位置_经度
*/
@ExcelProperty(value = "安装位置_经度",index = 7)
private float longitude;
/**
* 安装位置_纬度
*/
@ExcelProperty(value = "安装位置_纬度",index = 8)
private float latitude;
/**
* 安装日期
*/
@ExcelProperty(value = "安装日期",index = 9)
private Date installDate;
/**
* 备注
*/
@ExcelProperty(value = "备注",index = 10)
private String remarks;
/**
* 机构id
*/
@ExcelProperty(value = "机构名称",index = 11)
private String orgName;
/**
* 上级设备id
*/
@ExcelProperty(value = "上级设备名称",index = 12)
private String parentEquipmentName;
}

View File

@ -4,15 +4,23 @@ package com.das.modules.equipment.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.das.modules.equipment.domain.dto.SysEquipmentDto;
import com.das.modules.equipment.domain.dto.SysIotModelDto;
import com.das.modules.equipment.domain.dto.SysIotModelFieldDto;
import com.das.modules.equipment.domain.excel.SysEquipmentExcel;
import com.das.modules.equipment.domain.vo.SysEquipmentVo;
import com.das.modules.equipment.domain.vo.SysIotModelFieldVo;
import com.das.modules.equipment.entity.SysEquipment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface SysEquipmentMapper extends BaseMapper<SysEquipment> {
IPage<SysEquipmentVo> querySysEquipmentList(IPage<SysEquipmentVo> page, @Param("info") SysEquipmentDto sysEquipmentDto);
List<SysEquipment> queryEquipmentTree(@Param("info")SysEquipmentDto sysEquipmentDto);
List<SysEquipmentExcel> queryInfoById (@Param("info") SysEquipmentDto sysEquipmentDto);
}

View File

@ -24,6 +24,10 @@ public interface SysEquipmentService {
PageDataInfo<SysEquipmentVo> querySysEquipmentList(SysEquipmentDto sysEquipmentDto);
List<SysEquipmentVo> queryAllSysEquipmentList(SysEquipmentDto sysEquipmentDto);
List<SysOrg> getRootOrg(SysEquipmentDto sysEquipmentDto);
void exportSysEquipment(SysEquipmentDto sysEquipmentDto, HttpServletRequest request, HttpServletResponse response);
}

View File

@ -6,11 +6,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.das.common.config.SessionUtil;
import com.das.common.exceptions.ServiceException;
import com.das.common.utils.BeanCopyUtils;
import com.das.common.utils.ExcelUtil;
import com.das.common.utils.PageDataInfo;
import com.das.common.utils.PageQuery;
import com.das.modules.auth.domain.vo.SysUserVo;
import com.das.modules.auth.entity.SysOrg;
import com.das.modules.auth.mapper.SysOrgMapper;
import com.das.modules.equipment.domain.dto.SysEquipmentDto;
import com.das.modules.equipment.domain.dto.SysIotModelDto;
import com.das.modules.equipment.domain.excel.SheetInfoBean;
import com.das.modules.equipment.domain.excel.SysEquipmentExcel;
import com.das.modules.equipment.domain.excel.SysIotModelFieldExcel;
import com.das.modules.equipment.domain.excel.SysIotModelServiceExcel;
import com.das.modules.equipment.domain.vo.SysEquipmentVo;
import com.das.modules.equipment.domain.vo.SysIotModelServiceVo;
import com.das.modules.equipment.domain.vo.SysIotModelVo;
@ -19,10 +26,13 @@ import com.das.modules.equipment.entity.SysIotModel;
import com.das.modules.equipment.mapper.SysEquipmentMapper;
import com.das.modules.equipment.mapper.SysIotModelMapper;
import com.das.modules.equipment.service.SysEquipmentService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -32,6 +42,9 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
@Autowired
private SysEquipmentMapper sysEquipmentMapper;
@Autowired
private SysOrgMapper sysOrgMapper;
@Override
public SysEquipmentVo creatSysEquipment(SysEquipmentDto sysEquipmentDto) {
SysEquipment sysEquipment = new SysEquipment();
@ -79,8 +92,43 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
return PageDataInfo.build(iPage.getRecords(), iPage.getTotal());
}
@Override
public List<SysEquipmentVo> queryAllSysEquipmentList(SysEquipmentDto sysEquipmentDto) {
// 查询当前账号机构下的子机构和子设备
QueryWrapper<SysEquipment> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("org_id", sysEquipmentDto.getOrgId());
queryWrapper.eq("parent_equipment_id", sysEquipmentDto.getParentEquipmentId());
queryWrapper.eq("object_type", sysEquipmentDto.getObjectType());
List<SysEquipment> sysEquipmentList = sysEquipmentMapper.selectList(queryWrapper);
List<SysEquipmentVo> list = new ArrayList<>();
list.addAll(BeanCopyUtils.copyList(sysEquipmentList, SysEquipmentVo.class));
return list;
}
@Override
public List<SysOrg> getRootOrg(SysEquipmentDto sysEquipmentDto) {
return null;
// 查询当前账号机构下的子机构和子设备
QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", sysEquipmentDto.getOrgId());
List<SysOrg> sysOrgList = sysOrgMapper.selectList(queryWrapper);
if (sysOrgList.size() == 0) {
throw new ServiceException("机构不存在");
}
for (SysOrg sysOrg : sysOrgList) {
sysOrg.setEquipChildren(sysEquipmentMapper.queryEquipmentTree(sysEquipmentDto));
}
return sysOrgList;
}
@Override
public void exportSysEquipment(SysEquipmentDto sysEquipmentDto, HttpServletRequest request, HttpServletResponse response) {
// 查询物模型属性和动作
List<SysEquipmentExcel> sysEquipmentList = sysEquipmentMapper.queryInfoById(sysEquipmentDto);
String fileName = "设备类型信息表";
List<SheetInfoBean> sheetInfoBeanList = new ArrayList<>();
SheetInfoBean sheetInfoBean = new SheetInfoBean("设备类型信息", SysEquipmentExcel.class, sysEquipmentList);
sheetInfoBeanList.add(sheetInfoBean);
ExcelUtil.exportMoreSheet(fileName,request,response,sheetInfoBeanList);
}
}

View File

@ -19,6 +19,23 @@
<result property="iotModelId" column="iot_model_id" jdbcType="BIGINT"/>
</resultMap>
<resultMap type="com.das.modules.equipment.domain.excel.SysEquipmentExcel" id="SysEquipmentExcelMap">
<result property="orgName" column="org_name" jdbcType="VARCHAR"/>
<result property="parentEquipmentName" column="parent_equipment_name" jdbcType="VARCHAR"/>
<result property="objectType" column="object_type" jdbcType="INTEGER"/>
<result property="iotModelName" column="iot_model_name" jdbcType="VARCHAR"/>
<result property="code" column="code" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="model" column="model" jdbcType="VARCHAR"/>
<result property="location" column="location" jdbcType="VARCHAR"/>
<result property="madeinFactory" column="madein_factory" jdbcType="VARCHAR"/>
<result property="installDate" column="install_date" jdbcType="TIMESTAMP"/>
<result property="remarks" column="remarks" jdbcType="VARCHAR"/>
<result property="latitude" column="latitude" jdbcType="REAL"/>
<result property="longitude" column="longitude" jdbcType="REAL"/>
</resultMap>
<select id="querySysEquipmentList" resultMap="SysEquipmentMap">
select t.* from sys_equipment t
<where>
@ -31,7 +48,37 @@
<if test="info.parentEquipmentId != null and info.parentEquipmentId != ''">
and t.parent_equipment_id = #{info.parentEquipmentId}
</if>
<if test="info.name != null and info.name != ''">
and t.name like concat('%',#{info.name},'%')
</if>
<if test="info.code != null and info.code != ''">
and t.code like concat('%',#{info.code},'%')
</if>
</where>
</select>
<select id="queryEquipmentTree" resultMap="SysEquipmentMap">
select t.* from sys_equipment t WHERE t.org_id = #{info.id} and t.object_type in (10001,10002)
<if test="info.parentEquipmentId != null and info.parentEquipmentId != ''">
and t.parent_equipment_id = #{info.parentEquipmentId}
</if>
</select>
<select id="queryInfoById" resultMap="SysEquipmentExcelMap">
select t.*,se."name" as parentEquipmentName,sim.iot_model_name as iotModelName, so."name" as orgName from sys_equipment t
left join sys_equipment se on t.parent_equipment_id = se.id
left join sys_iot_model sim on t.iot_model_id = sim.id
left join sys_org so on t.org_id = so.id
<where>
<if test="info.id != null and info.id != ''">
and t.parent_equipment_id = #{info.id}
</if>
<if test="info.orgId != null and info.orgId != ''">
and t.org_id = #{info.orgId}
</if>
</where>
</select>
</mapper>