Files
nxxmdata/backend/models/IotCattle.js
2025-09-22 19:09:45 +08:00

334 lines
7.2 KiB
JavaScript

const { DataTypes } = require('sequelize');
const { sequelize } = require('../config/database-simple');
const IotCattle = sequelize.define('IotCattle', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
field: 'id'
},
orgId: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'org_id',
comment: '组织ID'
},
earNumber: {
type: DataTypes.BIGINT,
allowNull: false,
field: 'ear_number',
comment: '耳标号'
},
sex: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'sex',
comment: '性别'
},
strain: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'strain',
comment: '品系'
},
varieties: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'varieties',
comment: '品种'
},
cate: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'cate',
comment: '类别'
},
birthWeight: {
type: DataTypes.DECIMAL(10, 2),
allowNull: false,
field: 'birth_weight',
comment: '出生体重'
},
birthday: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'birthday',
comment: '出生日期'
},
penId: {
type: DataTypes.INTEGER,
allowNull: true,
field: 'pen_id',
comment: '栏舍ID'
},
intoTime: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'into_time',
comment: '入栏时间'
},
parity: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'parity',
comment: '胎次'
},
source: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'source',
comment: '来源'
},
sourceDay: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'source_day',
comment: '来源天数'
},
sourceWeight: {
type: DataTypes.DECIMAL(10, 2),
allowNull: false,
field: 'source_weight',
comment: '来源体重'
},
weight: {
type: DataTypes.DOUBLE(11, 2),
allowNull: false,
field: 'weight',
comment: '当前体重'
},
event: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'event',
comment: '事件'
},
eventTime: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'event_time',
comment: '事件时间'
},
lactationDay: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'lactation_day',
comment: '泌乳天数'
},
semenNum: {
type: DataTypes.STRING(30),
allowNull: false,
field: 'semen_num',
comment: '精液编号'
},
isWear: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'is_wear',
comment: '是否佩戴设备'
},
batchId: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'batch_id',
comment: '批次ID'
},
imgs: {
type: DataTypes.STRING(800),
allowNull: false,
field: 'imgs',
comment: '图片'
},
isEleAuth: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'is_ele_auth',
comment: '是否电子认证'
},
isQuaAuth: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'is_qua_auth',
comment: '是否质量认证'
},
isDelete: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'is_delete',
comment: '是否删除'
},
isOut: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'is_out',
comment: '是否出栏'
},
createUid: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'create_uid',
comment: '创建人ID'
},
createTime: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'create_time',
comment: '创建时间'
},
algebra: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'algebra',
comment: '代数'
},
colour: {
type: DataTypes.TEXT,
allowNull: false,
field: 'colour',
comment: '毛色'
},
infoWeight: {
type: DataTypes.DECIMAL(10, 2),
allowNull: false,
field: 'info_weight',
comment: '信息体重'
},
descent: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'descent',
comment: '血统'
},
isVaccin: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'is_vaccin',
comment: '是否接种疫苗'
},
isInsemination: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'is_insemination',
comment: '是否人工授精'
},
isInsure: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'is_insure',
comment: '是否投保'
},
isMortgage: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'is_mortgage',
comment: '是否抵押'
},
updateTime: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'update_time',
comment: '更新时间'
},
breedBullTime: {
type: DataTypes.INTEGER,
allowNull: false,
field: 'breed_bull_time',
comment: '配种时间'
},
level: {
type: DataTypes.TINYINT,
allowNull: false,
field: 'level',
comment: '等级'
},
sixWeight: {
type: DataTypes.DECIMAL(10, 2),
allowNull: false,
field: 'six_weight',
comment: '6月龄体重'
},
eighteenWeight: {
type: DataTypes.DECIMAL(10, 2),
allowNull: false,
field: 'eighteen_weight',
comment: '18月龄体重'
},
twelveDayWeight: {
type: DataTypes.DECIMAL(10, 2),
allowNull: false,
field: 'twelve_day_weight',
comment: '12日龄体重'
},
eighteenDayWeight: {
type: DataTypes.DECIMAL(10, 2),
allowNull: false,
field: 'eighteen_day_weight',
comment: '18日龄体重'
},
xxivDayWeight: {
type: DataTypes.DECIMAL(10, 2),
allowNull: false,
field: 'xxiv_day_weight',
comment: '24日龄体重'
},
semenBreedImgs: {
type: DataTypes.STRING(800),
allowNull: false,
field: 'semen_breed_imgs',
comment: '精液配种图片'
},
sellStatus: {
type: DataTypes.SMALLINT,
allowNull: false,
field: 'sell_status',
comment: '销售状态'
},
weightCalculateTime: {
type: DataTypes.DATE,
allowNull: true,
field: 'weight_calculate_time',
comment: '体重计算时间'
},
dayOfBirthday: {
type: DataTypes.INTEGER,
allowNull: true,
field: 'day_of_birthday',
comment: '出生天数'
}
}, {
tableName: 'iot_cattle',
timestamps: false, // iot_cattle表没有created_at和updated_at字段
comment: '物联网牛只表'
});
// 关联关系已在 models/index.js 中定义
// IotCattle.associate = (models) => {
// // 关联到农场
// IotCattle.belongsTo(models.Farm, {
// foreignKey: 'orgId',
// as: 'farm'
// });
// // 关联到批次
// IotCattle.belongsTo(models.CattleBatch, {
// foreignKey: 'batchId',
// as: 'batch'
// });
// // 关联到栏舍
// IotCattle.belongsTo(models.CattlePen, {
// foreignKey: 'penId',
// as: 'pen'
// });
// // 关联到围栏
// IotCattle.belongsTo(models.ElectronicFence, {
// foreignKey: 'fenceId',
// as: 'fence'
// });
// };
module.exports = IotCattle;