From ebe3633d22f3db6e87de3a73af006f124fd03d49 Mon Sep 17 00:00:00 2001 From: mh Date: Wed, 8 Jan 2025 17:49:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E5=85=B3=E3=80=81=E7=BB=B4=E4=BF=9D?= =?UTF-8?q?=E3=80=81=E8=AE=BE=E5=A4=87=E9=80=9A=E4=BF=A1=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/CommunicationParamsController.java | 87 +++++ .../device/GatewayManageController.java | 89 +++++ .../device/MaintainInfoController.java | 87 +++++ .../domain/entity/CommunicationParams.java | 123 ++++++ .../core/domain/entity/GatewayManage.java | 160 ++++++++ .../core/domain/entity/MaintainInfo.java | 123 ++++++ .../device/CommunicationParamsMapper.java | 16 + .../mapper/device/GatewayManageMapper.java | 16 + .../mapper/device/MaintainInfoMapper.java | 16 + .../device/ICommunicationParamsService.java | 24 ++ .../service/device/IGatewayManageService.java | 25 ++ .../service/device/IMaintainInfoService.java | 24 ++ .../impl/CommunicationParamsServiceImpl.java | 63 ++++ .../device/impl/GatewayManageServiceImpl.java | 67 ++++ .../device/impl/MaintainInfoServiceImpl.java | 67 ++++ sql/表结构设计.sql | 357 ++++++++++++++++++ 16 files changed, 1344 insertions(+) create mode 100644 mh-admin/src/main/java/com/mh/web/controller/device/CommunicationParamsController.java create mode 100644 mh-admin/src/main/java/com/mh/web/controller/device/GatewayManageController.java create mode 100644 mh-admin/src/main/java/com/mh/web/controller/device/MaintainInfoController.java create mode 100644 mh-common/src/main/java/com/mh/common/core/domain/entity/CommunicationParams.java create mode 100644 mh-common/src/main/java/com/mh/common/core/domain/entity/GatewayManage.java create mode 100644 mh-common/src/main/java/com/mh/common/core/domain/entity/MaintainInfo.java create mode 100644 mh-system/src/main/java/com/mh/system/mapper/device/CommunicationParamsMapper.java create mode 100644 mh-system/src/main/java/com/mh/system/mapper/device/GatewayManageMapper.java create mode 100644 mh-system/src/main/java/com/mh/system/mapper/device/MaintainInfoMapper.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/ICommunicationParamsService.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/IGatewayManageService.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/IMaintainInfoService.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/impl/CommunicationParamsServiceImpl.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/impl/GatewayManageServiceImpl.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/impl/MaintainInfoServiceImpl.java create mode 100644 sql/表结构设计.sql diff --git a/mh-admin/src/main/java/com/mh/web/controller/device/CommunicationParamsController.java b/mh-admin/src/main/java/com/mh/web/controller/device/CommunicationParamsController.java new file mode 100644 index 0000000..97308e9 --- /dev/null +++ b/mh-admin/src/main/java/com/mh/web/controller/device/CommunicationParamsController.java @@ -0,0 +1,87 @@ +package com.mh.web.controller.device; + +import com.mh.common.annotation.Log; +import com.mh.common.core.controller.BaseController; +import com.mh.common.core.domain.AjaxResult; +import com.mh.common.core.domain.entity.CommunicationParams; +import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; +import com.mh.system.service.device.ICommunicationParamsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备采集参数管理 + * @date 2025-01-08 14:36:24 + */ +@RestController +@RequestMapping("/device/cmp") +public class CommunicationParamsController extends BaseController { + + @Autowired + private ICommunicationParamsService iCommunicationParamsService; + + /** + * 获取列表内容数据 + */ + @PreAuthorize("@ss.hasPermi('system:cmp:list')") + @GetMapping("/list") + public TableDataInfo list(CommunicationParams communicationParams) + { + startPage(); + List list = iCommunicationParamsService.selectCmPList(communicationParams); + return getDataTable(list); + } + + /** + * 根据id获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:cmp:query')") + @GetMapping(value = "/{cmpId}") + public AjaxResult getInfo(@PathVariable String cmpId) + { + return success(iCommunicationParamsService.selectCommunicationParamsById(cmpId)); + } + + /** + * 新增网关 + */ + @PreAuthorize("@ss.hasPermi('system:cmp:add')") + @Log(title = "设备采集参数管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody CommunicationParams communicationParams) + { + communicationParams.setCreateBy(getUsername()); + return toAjax(iCommunicationParamsService.insertCommunicationParams(communicationParams)); + } + + /** + * 修改网关信息 + */ + @PreAuthorize("@ss.hasPermi('system:cmp:edit')") + @Log(title = "设备采集参数管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody CommunicationParams communicationParams) + { + communicationParams.setUpdateBy(getUsername()); + return toAjax(iCommunicationParamsService.updateCommunicationParams(communicationParams)); + } + + /** + * 删除设备采集参数管理 + */ + @PreAuthorize("@ss.hasPermi('system:cmp:remove')") + @Log(title = "设备采集参数管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{cmpIds}") + public AjaxResult remove(@PathVariable String[] cmpIds) + { + return toAjax(iCommunicationParamsService.deleteCommunicationByIds(cmpIds)); + } +} diff --git a/mh-admin/src/main/java/com/mh/web/controller/device/GatewayManageController.java b/mh-admin/src/main/java/com/mh/web/controller/device/GatewayManageController.java new file mode 100644 index 0000000..12741ce --- /dev/null +++ b/mh-admin/src/main/java/com/mh/web/controller/device/GatewayManageController.java @@ -0,0 +1,89 @@ +package com.mh.web.controller.device; + +import com.mh.common.annotation.Log; +import com.mh.common.core.controller.BaseController; +import com.mh.common.core.domain.AjaxResult; +import com.mh.common.core.domain.entity.GatewayManage; +import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; +import com.mh.system.domain.SysNotice; +import com.mh.system.service.ISysNoticeService; +import com.mh.system.service.device.IGatewayManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 网关设备管理 + * @date 2025-01-08 14:36:24 + */ +@RestController +@RequestMapping("/device/gateway") +public class GatewayManageController extends BaseController { + + @Autowired + private IGatewayManageService gatewayManageService; + + /** + * 获取网关列表内容数据 + */ + @PreAuthorize("@ss.hasPermi('system:gw:list')") + @GetMapping("/list") + public TableDataInfo list(GatewayManage gatewayManage) + { + startPage(); + List list = gatewayManageService.selectGwManageList(gatewayManage); + return getDataTable(list); + } + + /** + * 根据网关id获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:gw:query')") + @GetMapping(value = "/{gwId}") + public AjaxResult getInfo(@PathVariable String gwId) + { + return success(gatewayManageService.selectGwManageById(gwId)); + } + + /** + * 新增网关 + */ + @PreAuthorize("@ss.hasPermi('system:gw:add')") + @Log(title = "网关管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody GatewayManage gatewayManage) + { + gatewayManage.setCreateBy(getUsername()); + return toAjax(gatewayManageService.insertGatewayManage(gatewayManage)); + } + + /** + * 修改网关信息 + */ + @PreAuthorize("@ss.hasPermi('system:gw:edit')") + @Log(title = "网关管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody GatewayManage gatewayManage) + { + gatewayManage.setUpdateBy(getUsername()); + return toAjax(gatewayManageService.updateGateway(gatewayManage)); + } + + /** + * 删除网关管理 + */ + @PreAuthorize("@ss.hasPermi('system:gw:remove')") + @Log(title = "网关管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{gatewayIds}") + public AjaxResult remove(@PathVariable String[] gatewayIds) + { + return toAjax(gatewayManageService.deleteGatewayByIds(gatewayIds)); + } +} diff --git a/mh-admin/src/main/java/com/mh/web/controller/device/MaintainInfoController.java b/mh-admin/src/main/java/com/mh/web/controller/device/MaintainInfoController.java new file mode 100644 index 0000000..90aa538 --- /dev/null +++ b/mh-admin/src/main/java/com/mh/web/controller/device/MaintainInfoController.java @@ -0,0 +1,87 @@ +package com.mh.web.controller.device; + +import com.mh.common.annotation.Log; +import com.mh.common.core.controller.BaseController; +import com.mh.common.core.domain.AjaxResult; +import com.mh.common.core.domain.entity.MaintainInfo; +import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; +import com.mh.system.service.device.IMaintainInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 维护设备设备管理 + * @date 2025-01-08 14:36:24 + */ +@RestController +@RequestMapping("/device/maintain") +public class MaintainInfoController extends BaseController { + + @Autowired + private IMaintainInfoService maintainInfoService; + + /** + * 获取维护设备列表内容数据 + */ + @PreAuthorize("@ss.hasPermi('system:maintain:list')") + @GetMapping("/list") + public TableDataInfo list(MaintainInfo maintainInfo) + { + startPage(); + List list = maintainInfoService.selectMaintainInfoList(maintainInfo); + return getDataTable(list); + } + + /** + * 根据维护设备id获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:maintain:query')") + @GetMapping(value = "/{maintainId}") + public AjaxResult getInfo(@PathVariable String maintainId) + { + return success(maintainInfoService.selectMaintainInfoById(maintainId)); + } + + /** + * 新增维护设备 + */ + @PreAuthorize("@ss.hasPermi('system:maintain:add')") + @Log(title = "维护设备管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody MaintainInfo gatewayManage) + { + gatewayManage.setCreateBy(getUsername()); + return toAjax(maintainInfoService.insertMaintainInfo(gatewayManage)); + } + + /** + * 修改维护设备信息 + */ + @PreAuthorize("@ss.hasPermi('system:maintain:edit')") + @Log(title = "维护设备管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody MaintainInfo gatewayManage) + { + gatewayManage.setUpdateBy(getUsername()); + return toAjax(maintainInfoService.updateMaintainInfo(gatewayManage)); + } + + /** + * 删除维护设备管理 + */ + @PreAuthorize("@ss.hasPermi('system:maintain:remove')") + @Log(title = "维护设备管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{maintainIds}") + public AjaxResult remove(@PathVariable String[] maintainIds) + { + return toAjax(maintainInfoService.deleteMaintainInfoByIds(maintainIds)); + } +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/CommunicationParams.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/CommunicationParams.java new file mode 100644 index 0000000..012b656 --- /dev/null +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/CommunicationParams.java @@ -0,0 +1,123 @@ +package com.mh.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mh.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备采集通信参数设置 + * @date 2025-01-08 15:42:26 + */ +@TableName("communication_params") +public class CommunicationParams extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 仪表类型(从字典表中拿) + */ + private Integer mtType; + + /** + * 波特率 + */ + private int baudRate; + + /** + * 数据位 + */ + private int dataBit; + + /** + * 停止位 + */ + private int stopBit; + + /** + * 校验位 + */ + private String parity; + + /** + * 备注 + */ + private String remark; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getMtType() { + return mtType; + } + + public void setMtType(Integer mtType) { + this.mtType = mtType; + } + + public int getBaudRate() { + return baudRate; + } + + public void setBaudRate(int baudRate) { + this.baudRate = baudRate; + } + + public int getDataBit() { + return dataBit; + } + + public void setDataBit(int dataBit) { + this.dataBit = dataBit; + } + + public int getStopBit() { + return stopBit; + } + + public void setStopBit(int stopBit) { + this.stopBit = stopBit; + } + + public String getParity() { + return parity; + } + + public void setParity(String parity) { + this.parity = parity; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("mtType", mtType) + .append("baudRate", baudRate) + .append("dataBit", dataBit) + .append("stopBit", stopBit) + .append("parity", parity) + .append("remark", remark) + .toString(); + } +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/GatewayManage.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/GatewayManage.java new file mode 100644 index 0000000..2a54c13 --- /dev/null +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/GatewayManage.java @@ -0,0 +1,160 @@ +package com.mh.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mh.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; + +import java.util.Date; + +/** + * @author ljf + * @title : + * @description :网关管理实体类 + * @updateTime 2020-05-21 + * @throws : + */ +@TableName("gateway_manage") +public class GatewayManage extends BaseEntity { + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + private String gwName; // 网关名称 + private String gwIp; // 网关IP地址 + private String gwAddr; // 网关安装地址 + private int port; // 端口号 + private int collectionLoop; // 采集周期 + private Date connectTime; // 最新上线连接时间 + private String internetCard; // 物联网卡号 + private int operatorType; // 0:中国移动 1:中国联通 2:中国电信 + private int communicationType; // 通讯类型 + private String remark; // 备注 + private int grade; // 标志位(连接状态) 0:正常;1:不在线;2:异常 + private Integer status; // (连接状态) 0:正常;1:不在线;2:异常 + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getGwName() { + return gwName; + } + + public void setGwName(String gwName) { + this.gwName = gwName; + } + + public String getGwIp() { + return gwIp; + } + + public void setGwIp(String gwIp) { + this.gwIp = gwIp; + } + + public String getGwAddr() { + return gwAddr; + } + + public void setGwAddr(String gwAddr) { + this.gwAddr = gwAddr; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public int getCollectionLoop() { + return collectionLoop; + } + + public void setCollectionLoop(int collectionLoop) { + this.collectionLoop = collectionLoop; + } + + public Date getConnectTime() { + return connectTime; + } + + public void setConnectTime(Date connectTime) { + this.connectTime = connectTime; + } + + public String getInternetCard() { + return internetCard; + } + + public void setInternetCard(String internetCard) { + this.internetCard = internetCard; + } + + public int getOperatorType() { + return operatorType; + } + + public void setOperatorType(int operatorType) { + this.operatorType = operatorType; + } + + public int getCommunicationType() { + return communicationType; + } + + public void setCommunicationType(int communicationType) { + this.communicationType = communicationType; + } + + @Override + public String getRemark() { + return remark; + } + + @Override + public void setRemark(String remark) { + this.remark = remark; + } + + public int getGrade() { + return grade; + } + + public void setGrade(int grade) { + this.grade = grade; + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("gwName", gwName) + .append("gwIp", gwIp) + .append("gwAddr", gwAddr) + .append("port", port) + .append("collectionLoop", collectionLoop) + .append("connectTime", connectTime) + .append("internetCard", internetCard) + .append("operatorType", operatorType) + .append("communicationType", communicationType) + .append("remark", remark) + .append("grade", grade) + .append("status", status) + .toString(); + } +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/MaintainInfo.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/MaintainInfo.java new file mode 100644 index 0000000..ec08b82 --- /dev/null +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/MaintainInfo.java @@ -0,0 +1,123 @@ +package com.mh.common.core.domain.entity; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mh.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; + +import java.math.BigDecimal; +import java.util.Date; + +@TableName("maintain_info") +public class MaintainInfo extends BaseEntity { + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; // 编号 + private String deviceId; // 设备编号 + private String deviceType; // 设备类型 + private String maintainType; // 维护类型 + private String maintainPeople; // 维护人员 + private BigDecimal cost; // 费用 + private String contents; // 维保内容 + private String evaluate; // 评价分数 + private Date execTime; // 执行时间 + private Integer spendTime; // 花费时间 + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getMaintainType() { + return maintainType; + } + + public void setMaintainType(String maintainType) { + this.maintainType = maintainType; + } + + public String getMaintainPeople() { + return maintainPeople; + } + + public void setMaintainPeople(String maintainPeople) { + this.maintainPeople = maintainPeople; + } + + public BigDecimal getCost() { + return cost; + } + + public void setCost(BigDecimal cost) { + this.cost = cost; + } + + public String getContents() { + return contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getEvaluate() { + return evaluate; + } + + public void setEvaluate(String evaluate) { + this.evaluate = evaluate; + } + + public Date getExecTime() { + return execTime; + } + + public void setExecTime(Date execTime) { + this.execTime = execTime; + } + + public Integer getSpendTime() { + return spendTime; + } + + public void setSpendTime(Integer spendTime) { + this.spendTime = spendTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("deviceId", deviceId) + .append("deviceType", deviceType) + .append("maintainType", maintainType) + .append("maintainPeople", maintainPeople) + .append("cost", cost) + .append("contents", contents) + .append("evaluate", evaluate) + .append("execTime", execTime) + .append("spendTime", spendTime) + .toString(); + } +} diff --git a/mh-system/src/main/java/com/mh/system/mapper/device/CommunicationParamsMapper.java b/mh-system/src/main/java/com/mh/system/mapper/device/CommunicationParamsMapper.java new file mode 100644 index 0000000..e4d0a07 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/mapper/device/CommunicationParamsMapper.java @@ -0,0 +1,16 @@ +package com.mh.system.mapper.device; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.common.core.domain.entity.CommunicationParams; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 网关管理数据库操作mapper + * @date 2025-01-08 15:13:16 + */ +@Mapper +public interface CommunicationParamsMapper extends BaseMapper { +} diff --git a/mh-system/src/main/java/com/mh/system/mapper/device/GatewayManageMapper.java b/mh-system/src/main/java/com/mh/system/mapper/device/GatewayManageMapper.java new file mode 100644 index 0000000..8aa6063 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/mapper/device/GatewayManageMapper.java @@ -0,0 +1,16 @@ +package com.mh.system.mapper.device; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.common.core.domain.entity.GatewayManage; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 网关管理数据库操作mapper + * @date 2025-01-08 15:13:16 + */ +@Mapper +public interface GatewayManageMapper extends BaseMapper { +} diff --git a/mh-system/src/main/java/com/mh/system/mapper/device/MaintainInfoMapper.java b/mh-system/src/main/java/com/mh/system/mapper/device/MaintainInfoMapper.java new file mode 100644 index 0000000..1cc8543 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/mapper/device/MaintainInfoMapper.java @@ -0,0 +1,16 @@ +package com.mh.system.mapper.device; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.common.core.domain.entity.MaintainInfo; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 维保管理mapper + * @date 2025-01-08 17:31:03 + */ +@Mapper +public interface MaintainInfoMapper extends BaseMapper { +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/ICommunicationParamsService.java b/mh-system/src/main/java/com/mh/system/service/device/ICommunicationParamsService.java new file mode 100644 index 0000000..c413e40 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/ICommunicationParamsService.java @@ -0,0 +1,24 @@ +package com.mh.system.service.device; + +import com.mh.common.core.domain.entity.CommunicationParams; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备采集通信参数配置 + * @date 2025-01-08 16:28:53 + */ +public interface ICommunicationParamsService { + List selectCmPList(CommunicationParams communicationParams); + + CommunicationParams selectCommunicationParamsById(String cmpId); + + int insertCommunicationParams(CommunicationParams communicationParams); + + int updateCommunicationParams(CommunicationParams communicationParams); + + int deleteCommunicationByIds(String[] cmpIds); +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/IGatewayManageService.java b/mh-system/src/main/java/com/mh/system/service/device/IGatewayManageService.java new file mode 100644 index 0000000..d0be95e --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/IGatewayManageService.java @@ -0,0 +1,25 @@ +package com.mh.system.service.device; + +import com.mh.common.core.domain.entity.GatewayManage; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 网管管理接口 + * @date 2025-01-08 14:47:32 + */ +public interface IGatewayManageService { + + List selectGwManageList(GatewayManage gatewayManage); + + GatewayManage selectGwManageById(String gwId); + + int insertGatewayManage(GatewayManage gatewayManage); + + int updateGateway(GatewayManage gatewayManage); + + int deleteGatewayByIds(String[] gatewayIds); +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/IMaintainInfoService.java b/mh-system/src/main/java/com/mh/system/service/device/IMaintainInfoService.java new file mode 100644 index 0000000..5155911 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/IMaintainInfoService.java @@ -0,0 +1,24 @@ +package com.mh.system.service.device; + +import com.mh.common.core.domain.entity.MaintainInfo; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备维护管理服务类 + * @date 2025-01-08 17:37:26 + */ +public interface IMaintainInfoService { + List selectMaintainInfoList(MaintainInfo maintainInfo); + + MaintainInfo selectMaintainInfoById(String maintainId); + + int insertMaintainInfo(MaintainInfo maintainInfo); + + int updateMaintainInfo(MaintainInfo maintainInfo); + + int deleteMaintainInfoByIds(String[] maintainIds); +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/impl/CommunicationParamsServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/device/impl/CommunicationParamsServiceImpl.java new file mode 100644 index 0000000..995b0e0 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/impl/CommunicationParamsServiceImpl.java @@ -0,0 +1,63 @@ +package com.mh.system.service.device.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mh.common.core.domain.entity.CommunicationParams; +import com.mh.system.mapper.device.CommunicationParamsMapper; +import com.mh.system.service.device.ICommunicationParamsService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备采集通信参数配置实现类 + * @date 2025-01-08 16:33:54 + */ +@Service +public class CommunicationParamsServiceImpl implements ICommunicationParamsService { + + @Resource + private CommunicationParamsMapper communicationParamsMapper; + + @Override + public List selectCmPList(CommunicationParams communicationParams) { + if (communicationParams == null) { + return List.of(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (communicationParams.getMtType() != null) { + queryWrapper.eq("mt_type", communicationParams.getMtType()); + } + queryWrapper.orderByAsc("mt_type"); + return communicationParamsMapper.selectList(queryWrapper); + } + + @Override + public CommunicationParams selectCommunicationParamsById(String cmpId) { + return communicationParamsMapper.selectById(cmpId); + } + + @Override + public int insertCommunicationParams(CommunicationParams communicationParams) { + return communicationParamsMapper.insert(communicationParams); + } + + @Override + public int updateCommunicationParams(CommunicationParams communicationParams) { + return communicationParamsMapper.updateById(communicationParams); + } + + @Override + public int deleteCommunicationByIds(String[] cmpIds) { + if (cmpIds != null && cmpIds.length > 0) { + for (String cmpId : cmpIds) { + communicationParamsMapper.deleteById(cmpId); + } + return cmpIds.length; + } + return 0; + } +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/impl/GatewayManageServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/device/impl/GatewayManageServiceImpl.java new file mode 100644 index 0000000..811b1de --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/impl/GatewayManageServiceImpl.java @@ -0,0 +1,67 @@ +package com.mh.system.service.device.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mh.common.core.domain.entity.GatewayManage; +import com.mh.common.utils.StringUtils; +import com.mh.system.mapper.device.GatewayManageMapper; +import com.mh.system.service.device.IGatewayManageService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 网关管理接口实现类 + * @date 2025-01-08 14:48:17 + */ +@Service +public class GatewayManageServiceImpl implements IGatewayManageService { + + @Resource + private GatewayManageMapper gatewayManageMapper; + + @Override + public List selectGwManageList(GatewayManage gatewayManage) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (!StringUtils.isEmpty(gatewayManage.getGwName())) { + queryWrapper.like("gw_name", gatewayManage.getGwName()); + } + if (gatewayManage.getStatus() != null) { + queryWrapper.eq("status", gatewayManage.getStatus()); + } + if (!StringUtils.isEmpty(gatewayManage.getCreateBy())) { + queryWrapper.like("create_by", gatewayManage.getCreateBy()); + } + queryWrapper.orderByDesc("create_time"); + return gatewayManageMapper.selectList(queryWrapper); + } + + @Override + public GatewayManage selectGwManageById(String gwId) { + return gatewayManageMapper.selectById(gwId); + } + + @Override + public int insertGatewayManage(GatewayManage gatewayManage) { + return gatewayManageMapper.insert(gatewayManage); + } + + @Override + public int updateGateway(GatewayManage gatewayManage) { + return gatewayManageMapper.updateById(gatewayManage); + } + + @Override + public int deleteGatewayByIds(String[] gatewayIds) { + if (gatewayIds != null && gatewayIds.length > 0) { + for (String gatewayId : gatewayIds) { + gatewayManageMapper.deleteById(gatewayId); + } + return gatewayIds.length; + } + return 0; + } +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/impl/MaintainInfoServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/device/impl/MaintainInfoServiceImpl.java new file mode 100644 index 0000000..c6228d4 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/impl/MaintainInfoServiceImpl.java @@ -0,0 +1,67 @@ +package com.mh.system.service.device.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mh.common.core.domain.entity.MaintainInfo; +import com.mh.common.utils.StringUtils; +import com.mh.system.mapper.device.MaintainInfoMapper; +import com.mh.system.service.device.IMaintainInfoService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备维护管理服务类 + * @date 2025-01-08 17:37:53 + */ +@Service +public class MaintainInfoServiceImpl implements IMaintainInfoService { + + @Resource + private MaintainInfoMapper maintainInfoMapper; + + @Override + public List selectMaintainInfoList(MaintainInfo maintainInfo) { + if (maintainInfo == null) { + return List.of(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (maintainInfo.getMaintainType() != null) { + queryWrapper.eq("maintain_type", maintainInfo.getMaintainType()); + } + if (!StringUtils.isEmpty(maintainInfo.getMaintainPeople())) { + queryWrapper.like("maintain_people", maintainInfo.getMaintainPeople()); + } + queryWrapper.orderByDesc("create_time"); + return maintainInfoMapper.selectList(queryWrapper); + } + + @Override + public MaintainInfo selectMaintainInfoById(String maintainId) { + return maintainInfoMapper.selectById(maintainId); + } + + @Override + public int insertMaintainInfo(MaintainInfo maintainInfo) { + return maintainInfoMapper.insert(maintainInfo); + } + + @Override + public int updateMaintainInfo(MaintainInfo maintainInfo) { + return maintainInfoMapper.updateById(maintainInfo); + } + + @Override + public int deleteMaintainInfoByIds(String[] maintainIds) { + if (maintainIds != null) { + for (String maintainId : maintainIds) { + maintainInfoMapper.deleteById(maintainId); + } + return maintainIds.length; + } + return 0; + } +} diff --git a/sql/表结构设计.sql b/sql/表结构设计.sql new file mode 100644 index 0000000..70fde1d --- /dev/null +++ b/sql/表结构设计.sql @@ -0,0 +1,357 @@ +--1、创建设备台账管理 device_ledger 表 +CREATE TABLE device_ledger ( + id VARCHAR(36) NOT NULL, -- 设备id + device_name VARCHAR(50) NULL, -- 设备名称 + model_specs VARCHAR(100) NULL, -- 规格型号 + asset_num VARCHAR(50) NULL, -- 资产编号 + qr_code_id VARCHAR(36) NULL, -- 二维码id + service_life VARCHAR(10) NULL, -- 使用寿命 + device_type VARCHAR(50) NULL, -- 设备类型(字典) + tech_params VARCHAR(200) NULL, -- 技术参数 + tech_doc VARCHAR(100) NULL, -- 技术文档 + install_time TIMESTAMP NULL, -- 安装时间 + create_time TIMESTAMP NULL, -- 创建时间 + update_time TIMESTAMP NULL, -- 更新时间 + create_by VARCHAR(100) NULL, -- 创建者 + status int null, -- 状态(0:在线或者使用中,1:不在线或者停用) + is_collection int null, -- 是否是需要采集(0:是,1:不采集) + is_calc_energy int null, -- 是否计算能效(0:计算,1不计算) + PRIMARY KEY (id) +); +-- 为表添加备注 +COMMENT ON TABLE device_ledger IS '设备台账表,用于记录所有设备的基本信息、安装及维护情况'; + +-- 为各列添加备注 +COMMENT ON COLUMN device_ledger.id IS '设备唯一标识符'; +COMMENT ON COLUMN device_ledger.device_name IS '设备的名称'; +COMMENT ON COLUMN device_ledger.model_specs IS '设备的规格和型号'; +COMMENT ON COLUMN device_ledger.asset_num IS '设备的资产编号'; +COMMENT ON COLUMN device_ledger.qr_code_id IS '与设备关联的二维码ID'; +COMMENT ON COLUMN device_ledger.service_life IS '设备的预计使用寿命'; +COMMENT ON COLUMN device_ledger.device_type IS '设备所属类型(字典值获取)'; +COMMENT ON COLUMN device_ledger.tech_params IS '设备的技术参数描述'; +COMMENT ON COLUMN device_ledger.tech_doc IS '设备相关的技术文档链接或文件名'; +COMMENT ON COLUMN device_ledger.install_time IS '设备的安装日期和时间'; +COMMENT ON COLUMN device_ledger.create_time IS '记录创建的时间戳'; +COMMENT ON COLUMN device_ledger.update_time IS '记录最后一次更新的时间戳'; +COMMENT ON COLUMN device_ledger.create_by IS '创建该记录的用户'; +COMMENT ON COLUMN device_ledger.status IS '状态(0:在线或者使用中,1:不在线或者停用)'; +COMMENT ON COLUMN device_ledger.is_collection IS '是否是需要采集(0:是,1:不采集)'; +COMMENT ON COLUMN device_ledger.is_calc_energy IS '是否计算能效(0:计算,1不计算)'; + +-- 为 device_ledger 表的 device_type_id 字段添加索引 +CREATE INDEX idx_device_ledger_device_ledger_id ON device_ledger (device_type); + +-- 为 device_ledger 表的 create_time 字段添加索引(倒序) +CREATE INDEX idx_device_ledger_create_time_desc ON device_ledger (create_time DESC); + +--2、创建二维码管理 device_qr_manage 表 +CREATE TABLE device_qr_manage ( + id VARCHAR(36) NOT NULL, -- 设备二维码管理记录ID + serial_num VARCHAR(50) NULL, -- 设备序列号编号 + pic_content VARCHAR(100) NULL, -- 二维码图片内容或链接 + device_ledger_id VARCHAR(36), -- 关联的设备台账ID + device_name VARCHAR(50), -- 设备名称(冗余字段,方便查询) + bind_time TIMESTAMP NULL, -- 二维码与设备绑定的时间 + create_time TIMESTAMP NULL, -- 记录创建的时间戳 + update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳 + create_by VARCHAR(100) NULL, -- 创建该记录的用户 + PRIMARY KEY (id) +); + +-- 为表添加备注 +COMMENT ON TABLE device_qr_manage IS '设备二维码管理表,用于记录设备与二维码之间的绑定关系及二维码相关信息'; + +-- 为各列添加备注 +COMMENT ON COLUMN device_qr_manage.id IS '设备二维码管理记录的唯一标识符'; +COMMENT ON COLUMN device_qr_manage.serial_num IS '设备的序列号,用于唯一识别每个设备'; +COMMENT ON COLUMN device_qr_manage.pic_content IS '二维码图片的内容或存储路径'; +COMMENT ON COLUMN device_qr_manage.device_ledger_id IS '关联到设备台账表的设备ID,建立外键关系'; +COMMENT ON COLUMN device_qr_manage.device_name IS '设备名称,作为冗余字段便于快速查询'; +COMMENT ON COLUMN device_qr_manage.bind_time IS '二维码与设备绑定的具体时间'; +COMMENT ON COLUMN device_qr_manage.create_time IS '记录创建的时间戳'; +COMMENT ON COLUMN device_qr_manage.update_time IS '记录最后一次更新的时间戳'; +COMMENT ON COLUMN device_qr_manage.create_by IS '创建该记录的用户'; + +-- 为 device_qr_manage 表的 device_ledger_id 字段添加索引 +CREATE INDEX idx_device_qr_manage_device_ledger_id ON device_qr_manage (device_ledger_id); + +-- 为 device_qr_manage 表的 create_time 字段添加索引(倒序) +CREATE INDEX idx_device_qr_manage_create_time_desc ON device_qr_manage (create_time DESC); + +--3、采集参数管理表 collection_params_manage 表 +CREATE TABLE collection_params_manage ( + id varchar(36) NOT NULL, -- 主键 + device_ledger_id varchar(36) NULL, -- 设备台账id + mt_type varchar(10), -- 设备类型(字典) + mt_num VARCHAR(20) NULL, -- 设备地址 + mt_code VARCHAR(20) NULL, -- 设备采集地址 + register_addr VARCHAR(20) NULL, -- 寄存器地址 + func_code VARCHAR(20) NULL, -- 功能码 + identify_code VARCHAR(20) NULL, -- 数据标识码 + mt_caliber_pulse VARCHAR(20) NULL, -- 口径 + mt_range NUMERIC(24, 3) NULL, -- 取值范围 + mt_ratio INT NULL, -- 倍率 + mt_init_value NUMERIC(24, 3) NULL, -- 初始值 + digits INT NULL, -- 保留小数位 + data_type INT NULL, -- 数据类型(字典) + cur_value NUMERIC(24, 3) NULL, -- 当前值 + cur_time TIMESTAMP NULL, -- 采集时间 + mt_is_sum BOOLEAN NULL, -- 是否是总表 + unit VARCHAR(20) NULL, -- 单位 + sort BIGINT NULL, -- 排序 + gateway_id varchar(36) NULL, -- 网关id + param_id varchar(36) NULL, -- 串口采集通讯配置id + protocol_type varchar(5) NULL, -- 协议类型 + communication_type varchar(5) NULL, -- 通讯类型(字典) + remark varchar(200) NULL, -- 备注 + register_size INT NULL, -- 读取寄存器大小 + is_use INT NULL, -- 是否启用采集(0:正常,1:不采集) + create_time TIMESTAMP NULL, -- 创建时间 + update_time TIMESTAMP NULL, -- 更新时间 + + PRIMARY KEY (id) +); + +-- 为表添加备注 +COMMENT ON TABLE collection_params_manage IS '仪表管理表,用于记录各种仪表的基本信息、配置及状态'; + +-- 为各列添加备注 +COMMENT ON COLUMN collection_params_manage.id IS '自增主键'; +COMMENT ON COLUMN collection_params_manage.mt_type IS '仪表类型ID'; +COMMENT ON COLUMN collection_params_manage.mt_name IS '仪表名称'; +COMMENT ON COLUMN collection_params_manage.other_name IS '其他名称'; +COMMENT ON COLUMN collection_params_manage.mt_brand IS '仪表品牌'; +COMMENT ON COLUMN collection_params_manage.mt_num IS '仪表编号'; +COMMENT ON COLUMN collection_params_manage.mt_code IS '仪表代码'; +COMMENT ON COLUMN collection_params_manage.register_addr IS '注册地址'; +COMMENT ON COLUMN collection_params_manage.func_code IS '功能代码'; +COMMENT ON COLUMN collection_params_manage.identify_code IS '识别代码'; +COMMENT ON COLUMN collection_params_manage.mt_caliber_pulse IS '口径脉冲'; +COMMENT ON COLUMN collection_params_manage.mt_range IS '量程'; +COMMENT ON COLUMN collection_params_manage.mt_ratio IS '比例'; +COMMENT ON COLUMN collection_params_manage.mt_init_value IS '初始值'; +COMMENT ON COLUMN collection_params_manage.digits IS '位数'; +COMMENT ON COLUMN collection_params_manage.data_type IS '数据类型'; +COMMENT ON COLUMN collection_params_manage.cur_value IS '当前值'; +COMMENT ON COLUMN collection_params_manage.cur_time IS '当前时间'; +COMMENT ON COLUMN collection_params_manage.mt_is_sum IS '是否累计(0: 否, 1: 是)'; +COMMENT ON COLUMN collection_params_manage.create_time IS '记录创建的时间戳'; +COMMENT ON COLUMN collection_params_manage.update_time IS '记录最后一次更新的时间戳'; +COMMENT ON COLUMN collection_params_manage.unit IS '单位'; +COMMENT ON COLUMN collection_params_manage.sort IS '排序'; +COMMENT ON COLUMN collection_params_manage.data_com IS '数据通信配置'; +COMMENT ON COLUMN collection_params_manage.device_id IS '设备ID'; +COMMENT ON COLUMN collection_params_manage.gateway_id IS '网关ID'; +COMMENT ON COLUMN collection_params_manage.param_id IS '参数ID'; +COMMENT ON COLUMN collection_params_manage.protocol_type IS '协议类型ID'; +COMMENT ON COLUMN collection_params_manage.communication_type IS '通信类型'; +COMMENT ON COLUMN collection_params_manage.remark IS '备注'; +COMMENT ON COLUMN collection_params_manage.register_size IS '注册大小'; +COMMENT ON COLUMN collection_params_manage.is_use IS '是否使用(0: 使用, 1: 不使用)'; + +-- 为 device_qr_manage 表的 device_ledger_id 字段添加索引 +CREATE INDEX idx_meter_manage_mt_type ON collection_params_manage (mt_type); + +-- 为 device_qr_manage 表的 create_time 字段添加索引(倒序) +CREATE INDEX idx_meter_manage_create_time_desc ON collection_params_manage (create_time DESC); + +--4、创建备件/备品管理 spare_parts_manage 表 +CREATE TABLE spare_parts_manage ( + id VARCHAR(36) NOT NULL, -- 备件ID + serial_num VARCHAR(50) NULL, -- 序列号编号 + spare_name VARCHAR(100) NULL, -- 备件名称 + model_specs VARCHAR(100) NULL, -- 规格型号 + device_type_id VARCHAR(50) NULL, -- 设备类型ID + inventory_levels INT NULL, -- 当前库存量 + min_inventory_levels INT NULL, -- 最低库存量阈值 + service_life INT NULL, -- 使用年限(单位:年) + unit_price NUMERIC(24, 3), -- 单价(保留三位小数) + create_time TIMESTAMP NULL, -- 记录创建的时间戳 + update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳 + create_by VARCHAR(100) NULL, -- 创建该记录的用户 + PRIMARY KEY (id) +); + +-- 为表添加备注 +COMMENT ON TABLE spare_parts_manage IS '备品/备件管理表,用于记录所有备件的基本信息、库存情况及价格'; + +-- 为各列添加备注 +COMMENT ON COLUMN spare_parts_manage.id IS '备件的唯一标识符'; +COMMENT ON COLUMN spare_parts_manage.serial_num IS '备件的序列号,用于唯一识别每个备件'; +COMMENT ON COLUMN spare_parts_manage.spare_name IS '备件的名称'; +COMMENT ON COLUMN spare_parts_manage.model_specs IS '备件的规格和型号'; +COMMENT ON COLUMN spare_parts_manage.device_type_id IS '关联到设备类型的ID,标识备件适用于哪种设备类型'; +COMMENT ON COLUMN spare_parts_manage.inventory_levels IS '当前备件的库存数量'; +COMMENT ON COLUMN spare_parts_manage.min_inventory_levels IS '最低库存量阈值,当库存低于此值时需要补货'; +COMMENT ON COLUMN spare_parts_manage.service_life IS '备件的预计使用年限,单位为年'; +COMMENT ON COLUMN spare_parts_manage.unit_price IS '备件的单价,保留三位小数'; +COMMENT ON COLUMN spare_parts_manage.create_time IS '记录创建的时间戳'; +COMMENT ON COLUMN spare_parts_manage.update_time IS '记录最后一次更新的时间戳'; +COMMENT ON COLUMN spare_parts_manage.create_by IS '创建该记录的用户'; + +CREATE INDEX idx_spare_parts_device_type_id ON spare_parts_manage (device_type_id); +CREATE INDEX idx_spare_parts_create_time_desc ON spare_parts_manage (create_time DESC); + +--5、创建出入库管理device_in_out_manage +CREATE TABLE device_in_out_manage ( + id VARCHAR(36) NOT NULL, -- 出入库管理ID + spare_parts_id VARCHAR(36) NULL, -- 备件ID + spare_name VARCHAR(100) NULL, -- 备件名称 + opera_type VARCHAR(10) NULL, -- 出入库操作类型(0:入库,1:出库) + int_out_num INT NULL, -- 出入库数量 + inventory_levels INT NULL, -- 当前库存量 + create_time TIMESTAMP NULL, -- 记录创建的时间戳 + update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳 + create_by VARCHAR(100) NULL, -- 创建该记录的用户 + PRIMARY KEY (id) +); + +-- 为表添加备注 +COMMENT ON TABLE device_in_out_manage IS '备品/备件出入库管理表,用于记录备件的出入库操作及当前库存情况'; + +-- 为各列添加备注 +COMMENT ON COLUMN device_in_out_manage.id IS '出入库管理记录的唯一标识符'; +COMMENT ON COLUMN device_in_out_manage.spare_parts_id IS '关联到备件的唯一标识符,用于标识具体的备件'; +COMMENT ON COLUMN device_in_out_manage.spare_name IS '备件的名称,便于快速识别'; +COMMENT ON COLUMN device_in_out_manage.opera_type IS '出入库操作类型,0表示入库,1表示出库'; +COMMENT ON COLUMN device_in_out_manage.int_out_num IS '本次出入库操作的数量,正值表示入库,负值表示出库'; +COMMENT ON COLUMN device_in_out_manage.inventory_levels IS '当前备件的库存数量,在每次出入库操作后更新'; +COMMENT ON COLUMN device_in_out_manage.create_time IS '记录创建的时间戳,表示此次出入库操作的时间'; +COMMENT ON COLUMN device_in_out_manage.update_time IS '记录最后一次更新的时间戳,通常与 create_time 相同,除非后续有修改'; +COMMENT ON COLUMN device_in_out_manage.create_by IS '创建该记录的用户,记录是谁执行了此次出入库操作'; + +CREATE INDEX idx_device_in_out_manage_opera_type ON device_in_out_manage (opera_type); +CREATE INDEX idx_device_in_out_manage_spare_parts_id ON device_in_out_manage (spare_parts_id); +CREATE INDEX idx_device_in_out_manage_create_time_desc ON device_in_out_manage (create_time DESC); + +-- 6、创建网关管理 gateway_manage 表 +CREATE TABLE gateway_manage ( + id varchar(36) NOT NULL, -- 自增主键 + gw_name VARCHAR(100) NULL, -- 网关名称 + gw_ip VARCHAR(20) NULL, -- 网关IP地址 + gw_addr VARCHAR(100) NULL, -- 网关对应的编号地址 + port INT NULL, -- 网关端口 + collection_loop INT NULL, -- 采集周期 + create_time TIMESTAMP NULL, -- 创建时间 + update_time TIMESTAMP NULL, -- 更新时间 + connect_time TIMESTAMP NULL, -- 连接时间 + internet_card VARCHAR(50) NULL, -- 卡号 + operator_type INT NULL, -- 运营商类型(0: 中国移动, 1: 中国联通, 2: 中国电信) + remark VARCHAR(100) NULL, -- 备注 + communication_type INT NULL, -- 通信类型(字典表) + grade INT NULL, -- 预留字段 + PRIMARY KEY (id) +); + +-- 为表添加备注 +COMMENT ON TABLE gateway_manage IS '网关管理表,用于记录网关的基本信息、配置及状态'; + +-- 为各列添加备注 +COMMENT ON COLUMN gateway_manage.id IS '编号'; +COMMENT ON COLUMN gateway_manage.gw_name IS '网关名称'; +COMMENT ON COLUMN gateway_manage.gw_ip IS '网关IP地址'; +COMMENT ON COLUMN gateway_manage.gw_addr IS '网关对应的编号地址'; +COMMENT ON COLUMN gateway_manage.port IS '网关端口'; +COMMENT ON COLUMN gateway_manage.collection_loop IS '采集周期'; +COMMENT ON COLUMN gateway_manage.create_time IS '创建时间'; +COMMENT ON COLUMN gateway_manage.update_time IS '更新时间'; +COMMENT ON COLUMN gateway_manage.connect_time IS '连接时间'; +COMMENT ON COLUMN gateway_manage.internet_card IS '卡号'; +COMMENT ON COLUMN gateway_manage.operator_type IS '运营商类型(0: 中国移动, 1: 中国联通, 2: 中国电信)'; +COMMENT ON COLUMN gateway_manage.remark IS '备注'; +COMMENT ON COLUMN gateway_manage.communication_type IS '通信类型(字典表)'; +COMMENT ON COLUMN gateway_manage.grade IS '预留字段'; + +CREATE INDEX idx_gateway_manage_gw_name ON gateway_manage (gw_name); +CREATE INDEX idx_gateway_manage_status ON gateway_manage (status); +CREATE INDEX idx_gateway_manage_create_time_desc ON gateway_manage (create_time DESC); +ALTER TABLE public.gateway_manage ADD create_by varchar(100) NULL; +COMMENT ON COLUMN public.gateway_manage.create_by IS '创建者'; +ALTER TABLE public.gateway_manage ADD update_by varchar(100) NULL; +COMMENT ON COLUMN public.gateway_manage.update_by IS '更新者'; +ALTER TABLE public.gateway_manage ADD status int NULL; +COMMENT ON COLUMN public.gateway_manage.status IS '状态(0:在线,1:离线)'; + + + +-- 7、通讯采集参数创建 device_params 表 +CREATE TABLE communication_params ( + id varchar(36) NOT NULL, -- 自增主键 + mt_type INT NOT NULL, -- 仪表类型(从字典中获取) + baud_rate INT NOT NULL, -- 波特率 + data_bit INT NOT NULL, -- 数据位 + stop_bit INT NOT NULL, -- 停止位 + parity VARCHAR(10) NOT NULL, -- 校验位 + remark VARCHAR(100) NULL, -- 备注 + PRIMARY KEY (id) +); + +-- 为表添加备注 +COMMENT ON TABLE communication_params IS '设备采集参数表,用于记录设备的通信参数'; + +-- 为各列添加备注 +COMMENT ON COLUMN communication_params.id IS '编号'; +COMMENT ON COLUMN communication_params.mt_type IS '仪表类型(从字典中获取)'; +COMMENT ON COLUMN communication_params.baud_rate IS '波特率'; +COMMENT ON COLUMN communication_params.data_bit IS '数据位'; +COMMENT ON COLUMN communication_params.stop_bit IS '停止位'; +COMMENT ON COLUMN communication_params.parity IS '校验位'; +COMMENT ON COLUMN communication_params.remark IS '备注'; + +ALTER TABLE public.communication_params ADD create_by varchar(100) NULL; +COMMENT ON COLUMN public.communication_params.create_by IS '创建者'; +ALTER TABLE public.communication_params ADD update_by varchar(100) NULL; +COMMENT ON COLUMN public.communication_params.update_by IS '更新者'; + +-- 8、维保管理 +CREATE TABLE maintain_info +( + id varchar(36) NOT NULL, + device_id varchar(36) , -- 设备表id + device_type VARCHAR(32) NULL, + maintain_type VARCHAR(50) NULL, + maintain_people VARCHAR(50) NULL, + cost NUMERIC(24, 2) NULL, + contents VARCHAR(100) NULL, + evaluate VARCHAR(10) NULL, + exec_time timestamp NULL, -- 维修时间 + spend_times int NULL, -- 花费时间 + create_time TIMESTAMP NULL, -- 创建时间 + update_time TIMESTAMP NULL, -- 更新时间 + create_by varchar(100) NULL, + update_by varchar(100) NULL, + PRIMARY KEY (id) +); +CREATE INDEX idx_maintain_info_create_time_desc ON maintain_info (create_time DESC); +CREATE INDEX idx_maintain_info_maintain_people_desc ON maintain_info (maintain_people); +COMMENT ON TABLE maintain_info IS '维保管理:登记维护信息'; +-- Extended properties +COMMENT +ON COLUMN maintain_info.id IS '序号'; +COMMENT +ON COLUMN maintain_info.device_id IS '设备id'; +COMMENT +ON COLUMN maintain_info.device_type IS '设备类型'; +COMMENT +ON COLUMN maintain_info.maintain_type IS '维护类型'; +COMMENT +ON COLUMN maintain_info.maintain_people IS '维护人员'; +COMMENT +ON COLUMN maintain_info.cost IS '材料费用'; +COMMENT +ON COLUMN maintain_info.contents IS '维保内容'; +COMMENT +ON COLUMN maintain_info.evaluate IS '评价内容'; +COMMENT +ON COLUMN maintain_info.create_time IS '创建时间'; +COMMENT +ON COLUMN maintain_info.update_time IS '更新时间'; +COMMENT +ON COLUMN maintain_info.create_by IS '创建者'; +COMMENT +ON COLUMN maintain_info.update_by IS '更新者'; +COMMENT +ON COLUMN maintain_info.exec_time IS '执行维修时间'; +COMMENT +ON COLUMN maintain_info.spend_times IS '维修花费时间';