using System;
|
using System.Text;
|
using System.Data;
|
using System.Data.Common;
|
using CSFramework.DB;
|
using CSFrameworkV5.Models;
|
using CSFrameworkV5.Common;
|
using CSFrameworkV5.Core;
|
using CSFrameworkV5.DataAccess;
|
using CSFrameworkV5.Core.CodeGenerator;
|
using CSFrameworkV5.Interfaces;
|
|
/*===================================================================
|
* 程序说明: MES_LINE的数据访问层源码
|
* 作者资料: 孙中吕
|
* 创建日期: 2024/05/30 04:02:30
|
* 最后修改: 2024/05/30 04:02:30
|
*
|
* 注: 本文件由代码生成器(Code Generator)自动生成。
|
* (此源码文件请放置在 YourProject.DataAccess 模块)
|
* 版权所有 Copyright 2006~2024, C/S框架网(www.cscode.net)
|
*===================================================================*/
|
|
namespace CSFrameworkV5.DataAccess
|
{
|
/// <summary>
|
/// DAL数据层:dalMES_LINE
|
/// </summary>
|
public class dalMES_LINE : dalBaseBusiness
|
{
|
/// <summary>
|
/// 构造器
|
/// </summary>
|
/// <param name="loginer">当前登录用户</param>
|
public dalMES_LINE(Loginer loginer) : base(loginer)
|
{
|
_SummaryKeyName = MES_LINE.__KeyName; //主表的主键字段
|
_SummaryTableName = MES_LINE.__TableName; //主表表名
|
_UpdateSummaryKeyMode = UpdateKeyMode.None;
|
_ReplaceString = false;
|
}
|
|
/// <summary>
|
/// 根据表名获取该表的SQL命令生成器
|
/// </summary>
|
/// <param name="tableName">表名</param>
|
/// <returns></returns>
|
protected override IGenerateSqlCommand CreateSqlGenerator(
|
DataTable table)
|
{
|
Type ORM = null;
|
if (table.TableName == MES_LINE.__TableName)
|
ORM = typeof(MES_LINE); //主表ORM对应关系
|
|
|
if (ORM == null)
|
throw new Exception(table.TableName + "表没有ORM模型,请生成此表的Model类!");
|
return new GenerateSqlCmdByTableFields(ORM, table,
|
GeneratorFactory);
|
}
|
|
|
/// <summary>
|
/// 查询功能,获取主表数据。此方法的参数仅供参考
|
/// </summary>
|
public DataTable Query(QueryMES_LINE P)
|
{
|
var sp = _Database.CreateSqlProc("usp_MES_LINE_Query");
|
sp.AddParam("LINE_NO", DbType.String, P.LINE_NO);
|
sp.AddParam("LINE_NAME", DbType.String, P.LINE_NAME);
|
return _Database.GetTable(sp.Command, MES_LINE.__TableName);
|
}
|
|
/// <summary>
|
/// 获取报表数据
|
/// </summary>
|
/// <returns></returns>
|
public DataSet QueryReportData(QueryMES_LINE P)
|
{
|
throw new NotImplementedException("QueryReportData");
|
}
|
|
//实现接口提供的基础查询方法
|
public DataTable Query(QueryBusinessBase P)
|
{
|
return Query(P as QueryMES_LINE);
|
}
|
|
//实现接口提供的基础查询方法
|
public DataSet QueryReportData(QueryBusinessBase P)
|
{
|
return QueryReportData(P as QueryMES_LINE);
|
}
|
|
/// <summary>
|
/// 获取一张业务单据的数据,包括一条主表记录及(多张)明细表
|
/// </summary>
|
/// <param name="docNo">单据号码</param>
|
/// <returns></returns>
|
public DataSet GetDataByKey(string docNo)
|
{
|
var cmd =
|
_Database.CreateSqlProc("usp_MES_LINE_GetDataByKey");
|
cmd.AddParam("DocNo", DbType.String, docNo.Trim());
|
var ds = _Database.GetDataSet(cmd.Command);
|
ds.Tables[0].TableName = MES_LINE.__TableName;
|
//明细表
|
|
return ds;
|
}
|
|
/// <summary>
|
///删除一张单据,包括删除主表及明细表
|
/// </summary>
|
public bool Delete(string docNo)
|
{
|
var cmd = _Database.CreateSqlProc("usp_MES_LINE_Delete");
|
cmd.AddParam("DocNo", DbType.String, docNo.Trim());
|
var i = _Database.ExecuteCommand(cmd.Command);
|
return i != 0;
|
}
|
|
/// <summary>
|
//保存数据
|
/// </summary>
|
public override SaveResult Update(DataSet data)
|
{
|
//
|
//在这里,可以在保存数据前针对参数data做处理,比如:设置默认值。
|
//在这里,可以手工启动事务关联更新其它表的数据,参考:dalPO.Update方法。
|
//
|
//调用基类的方法保存数据
|
return base.Update(data);
|
}
|
|
/// <summary>
|
//获取单据流水号码
|
/// </summary>
|
protected override string GetNumber(DbTransaction tran)
|
{
|
//1.格式:字头+年年月月+当月4位序号,如:PO15010001, 与GetDocNo方法相同
|
//string docNo = DocNoTool.GetNumber(_Database,tran, "");//注意修改流水号字头!
|
|
//2.格式:字头+年年月月+当月4位序号,如:PO15010001
|
var docNo = DocNoTool.GetDocNo(_Database, ""); //注意修改流水号字头!
|
|
//3.格式:XX0000001~N
|
//string docNo = DocNoTool.GetDataSN(_Database,tran, "", true, 6);
|
|
return docNo; //业务单据号码,默认格式2
|
}
|
} //public class
|
} //namespace
|