添加银行端后端接口
This commit is contained in:
93
government-backend/models/Material.js
Normal file
93
government-backend/models/Material.js
Normal file
@@ -0,0 +1,93 @@
|
||||
const { DataTypes } = require('sequelize');
|
||||
const sequelize = require('../config/database');
|
||||
|
||||
const Material = sequelize.define('Material', {
|
||||
id: {
|
||||
type: DataTypes.UUID,
|
||||
defaultValue: DataTypes.UUIDV4,
|
||||
primaryKey: true,
|
||||
},
|
||||
code: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
unique: true,
|
||||
comment: '物资编号'
|
||||
},
|
||||
name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
comment: '物资名称'
|
||||
},
|
||||
category: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
comment: '物资类别',
|
||||
validate: {
|
||||
isIn: [['feed', 'medicine', 'equipment', 'other']]
|
||||
}
|
||||
},
|
||||
unit: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
comment: '单位'
|
||||
},
|
||||
stockQuantity: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
defaultValue: 0,
|
||||
comment: '库存数量'
|
||||
},
|
||||
warningQuantity: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false,
|
||||
defaultValue: 0,
|
||||
comment: '预警数量'
|
||||
},
|
||||
status: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
defaultValue: 'normal',
|
||||
comment: '状态',
|
||||
validate: {
|
||||
isIn: [['normal', 'low', 'out']]
|
||||
}
|
||||
},
|
||||
supplier: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: true,
|
||||
comment: '供应商'
|
||||
},
|
||||
remark: {
|
||||
type: DataTypes.TEXT,
|
||||
allowNull: true,
|
||||
comment: '备注'
|
||||
},
|
||||
updateTime: {
|
||||
type: DataTypes.DATE,
|
||||
allowNull: false,
|
||||
defaultValue: DataTypes.NOW,
|
||||
comment: '更新时间'
|
||||
}
|
||||
}, {
|
||||
tableName: 'materials',
|
||||
timestamps: true,
|
||||
paranoid: true,
|
||||
underscored: true,
|
||||
freezeTableName: true
|
||||
});
|
||||
|
||||
// 钩子函数,在保存前更新状态和更新时间
|
||||
Material.beforeSave((material) => {
|
||||
material.updateTime = new Date();
|
||||
|
||||
// 根据库存数量和预警数量更新状态
|
||||
if (material.stockQuantity <= 0) {
|
||||
material.status = 'out';
|
||||
} else if (material.stockQuantity <= material.warningQuantity) {
|
||||
material.status = 'low';
|
||||
} else {
|
||||
material.status = 'normal';
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = Material;
|
||||
Reference in New Issue
Block a user