2025-11-04 16:17:31 +08:00

162 lines
6.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RIZO.Model.Business;
using MySql.Data.MySqlClient;
namespace RIZO.Repository.Business
{
public class MaterialDao
{
private readonly string _connectionString;
public MaterialDao(string connectionString)
{
_connectionString = connectionString;
}
// 查询列表
public List<MaterialInfo> GetMaterials(bool includeDeleted = false)
{
var list = new List<MaterialInfo>();
using var conn = new MySqlConnection(_connectionString);
conn.Open();
//等价于SELECT * FROM material_info它本身没有任何过滤作用只是为了后续方便动态拼接条件。
string sql = "SELECT * FROM material_info WHERE 1=1";
if (!includeDeleted)//includeDeleted默认falseif条件默认为真需要拼接条件AND del_flag=0只查询未删除的数据。
{
sql += " AND del_flag=0";
}
using var cmd = new MySqlCommand(sql, conn);
using var reader = cmd.ExecuteReader();
while (reader.Read())
{
list.Add(new MaterialInfo
{
Id = Convert.ToInt32(reader["id"]),
MaterialCode = reader["material_code"].ToString(),
MaterialName = reader["material_name"].ToString(),
MaterialModel = reader["material_model"].ToString(),
MaterialType = reader["material_type"].ToString(),
ProcessCode = reader["process_code"].ToString(),
DelFlag = Convert.ToInt32(reader["del_flag"]),
CreateBy = reader["create_by"].ToString(),
CreateTime = Convert.ToDateTime(reader["create_time"]),
UpdateBy = reader["update_by"].ToString(),
UpdateTime = reader["update_time"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(reader["update_time"])
});
}
return list;
}
// 根据物料编码查询物料清单
public MaterialInfo GetMaterialByMaterialCode(string material_code)
{
using var conn = new MySqlConnection(_connectionString);
conn.Open();
string sql = "SELECT * FROM material_info WHERE material_code=@material_code AND del_flag=0";
using var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@material_code", material_code);
using var reader = cmd.ExecuteReader();
if (reader.Read())
{
return new MaterialInfo
{
Id = Convert.ToInt32(reader["id"]),
MaterialCode = reader["material_code"].ToString(),
MaterialName = reader["material_name"].ToString(),
MaterialModel = reader["material_model"].ToString(),
MaterialType = reader["material_type"].ToString(),
ProcessCode = reader["process_code"].ToString(),
DelFlag = Convert.ToInt32(reader["del_flag"]),
CreateBy = reader["create_by"].ToString(),
CreateTime = Convert.ToDateTime(reader["create_time"]),
UpdateBy = reader["update_by"].ToString(),
UpdateTime = reader["update_time"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(reader["update_time"])
};
}
return null;
}
//新增物料清单数据
public void AddMaterial(MaterialInfo material)
{
using var conn = new MySqlConnection(_connectionString);
conn.Open();
string sql = @"INSERT INTO material_info
(material_code, material_name, material_model, material_type, process_code, create_by, create_time,update_by,update_time)
VALUES (@code, @name, @model, @type, @process, @createBy, @createTime,@updateBy,@updateTime)";
using var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@code", material.MaterialCode);
cmd.Parameters.AddWithValue("@name", material.MaterialName);
cmd.Parameters.AddWithValue("@model", material.MaterialModel);
cmd.Parameters.AddWithValue("@type", material.MaterialType);
cmd.Parameters.AddWithValue("@process", material.ProcessCode);
cmd.Parameters.AddWithValue("@createBy", material.CreateBy);
cmd.Parameters.AddWithValue("@createTime", material.CreateTime);
cmd.Parameters.AddWithValue("@updateBy", material.UpdateBy);
cmd.Parameters.AddWithValue("@updateTime", material.UpdateTime);
cmd.ExecuteNonQuery();
}
//批量新增物料清单数据
public void AddMaterials(List<MaterialInfo> materials)
{
foreach (var m in materials)
{
AddMaterial(m);
}
}
//修改物料清单数据
public void UpdateMaterial(MaterialInfo material)
{
using var conn = new MySqlConnection(_connectionString);
conn.Open();
string sql = @"UPDATE material_info SET
material_code=@code, material_name=@name, material_model=@model,
material_type=@type, process_code=@process, update_by=@updateBy,
update_time=@updateTime
WHERE id=@id";
using var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@code", material.MaterialCode);
cmd.Parameters.AddWithValue("@name", material.MaterialName);
cmd.Parameters.AddWithValue("@model", material.MaterialModel);
cmd.Parameters.AddWithValue("@type", material.MaterialType);
cmd.Parameters.AddWithValue("@process", material.ProcessCode);
cmd.Parameters.AddWithValue("@updateBy", material.UpdateBy);
cmd.Parameters.AddWithValue("@updateTime", material.UpdateTime);
cmd.Parameters.AddWithValue("@id", material.Id);
cmd.ExecuteNonQuery();
}
// 逻辑删除
public void DeleteMaterial(int id, MaterialInfo material)
{
using var conn = new MySqlConnection(_connectionString);
conn.Open();
string sql = "UPDATE material_info SET del_flag=1, update_by=@updateBy, update_time=@updateTime WHERE id=@id";
using var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@updateBy", material.UpdateBy);
cmd.Parameters.AddWithValue("@updateTime", DateTime.Now);
cmd.ExecuteNonQuery();
}
}
}