Newer
Older
PagedTableDemo / dao / EquipmentDao.h
tanyue 29 days ago 4 KB 20250716 初始提交
#ifndef EQUIPMENTDAO_H
#define EQUIPMENTDAO_H

#include "BaseDao.h"

// 标准设备 设备信息
class BizEquipmentInfoDto {
public:
    QString id;
    QString labCode; // 实验室代码
    QString groupCode; // 组别代码
    QString equipmentNo; // 设备编号
    QString equipmentName; // 设备名称
    QString model; // 规格型号
    QString manufactureNo; // 出厂编号
    QDate measureValidDate; // 检定有效期
    QString productCountry; // 生产国家
    QString manufacturer; // 生产厂家
    QString produceDate; // 生产日期
    QString purchaseDate; // 购进日期
    QString unitPrice; // 设备单价
    QString usageStatus; // 使用状态
    QString qualityStatus; // 质量状况
    QString deptName; // 所属部门
    QString directorName; // 负责人
    QString supplierName; // 设备供方
    QString location; // 位置信息
    QString testRange; // 测量范围
    QString type; // 设备类型
    QString standardType; // 标准类型
    QString category; // 设备分类
    QString level; // 重要等级
    QString measureCycle; // 检定周期
    QString unpackRecordName; // 对应开箱记录
    QString remark; // 备注
    QString standardName; // 所属标准装置名称
    QStringList belongStandardIdList; // 所属标准装置ID
    QStringList belongStandardNameList; // 所属标准装置ID
};

/**
 * @brief The BizEquipmentRequest class
 * 标准设备查询条件
 */
class BizEquipmentRequest {
public:
    QString equipmentName; // 设备名称
    QString model; // 规格型号
    QString manufactureNo; // 出厂编号
    QString groupCode; // 专业代码(电学、脉冲、信号源、时间频率等)
    QString labCode; // 实验室组织代码(北京实验室)
    QString validDateStart; // 有效期开始日期
    QString validDateEnd; // 有效期结束日期
};

/**
 * @brief The BizEquipmentUncertaintyDto class
 * 标准设备不确定度zd_standard_equipment_uncertainty表
 */
class BizEquipmentUncertaintyDto {
public:
    QString id;
    QString equId; //标准设备ID
    QString standardValue; //标准值
    QString standardUnit; //标准值单位
    QString uncertainty; //不确定度值
    QString uncertaintyUnit; //不确定度单位
    QString uncertaintyType; //不确定度类型
    QString uncertaintyTypeName;
    QString kValue; //k_value
};

class EquipmentDao : public BaseDao
{
public:
    EquipmentDao();

    QStringList getEquipmentModelByIds(QStringList deviceIds);

    BizEquipmentInfoDto getBizEqptInfoById(QString bizEqptId);

    // 【查询符合条件的设备记录总数】
    quint32 getBizEqptInfoCount(const BizEquipmentRequest request);
    // 【分页查询符合条件的设备记录】
    QList<BizEquipmentInfoDto> getBizEqptInfoListPage(const BizEquipmentRequest request, PageUtil & page);
    // 【查询所有有效期范围内的标准设备】
    QList<BizEquipmentInfoDto> getValidBizEqptInfoList(const BizEquipmentRequest request);
    // 【查询标准设备查询所属的标准装置ID】
    QStringList getBelongStandardIdByStdEquipmentId(const QString stdEqptId);
    // 【根据设备id删除设备】
    bool deleteBizEquipment(const QString bizEqptId);

    // 【新增标准设备】
    QString createBizStandardEquipment(const BizEquipmentInfoDto newBizEqpt, const QStringList stdIdList, const QList<BizEquipmentUncertaintyDto> beuDataList);
    // 【编辑标准设备】
    bool editBizStandardEquipment(const BizEquipmentInfoDto bizEqpt, const QStringList relRemoveList, const QStringList relAddList, const QList<BizEquipmentUncertaintyDto> beuDataList);
    // 【编辑标准设备所属标准装置信息】
    bool updateBelongStandardRelation(const QString bizEqptId, const QStringList stdIdList);

    //【查询】查询标准设备不确定度By标准设备ID
    QList<BizEquipmentUncertaintyDto> getBizEquipmentUncertaintyByEqpt(QString bizEquId);
    //【新增】标准设备不确定度新增
    bool insertBizEquipmentUncertainty(BizEquipmentUncertaintyDto beuData);
    //【删除】标准设备不确定度删除
    bool deleteBizEquipmentUncertainty(QString bizEquId);

    // 【查询所有的标准装置 ID和装置名】
    QList<QStringList> getBizEqptStandardList();

private:
    QString generateBizEqptInfoListPageWhereClause(BizEquipmentRequest request);
    void bindValueBizEqptInfoListPage(QSqlQuery query, BizEquipmentRequest request);
};

#endif // EQUIPMENTDAO_H