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_Order的数据访问层源码
|
* 作者资料: 孙中吕
|
* 创建日期: 2024/05/21 03:13:43
|
* 最后修改: 2024/05/21 03:13:43
|
*
|
* 注: 本文件由代码生成器(Code Generator)自动生成。
|
* (此源码文件请放置在 YourProject.DataAccess 模块)
|
* 版权所有 Copyright 2006~2024, C/S框架网(www.cscode.net)
|
*===================================================================*/
|
|
namespace CSFrameworkV5.DataAccess
|
{
|
/// <summary>
|
/// DAL数据层:dalWorkOrder
|
/// </summary>
|
public class dalWorkOrder : dalBaseBusiness
|
{
|
/// <summary>
|
/// 构造器
|
/// </summary>
|
/// <param name="loginer">当前登录用户</param>
|
public dalWorkOrder(Loginer loginer) : base(loginer)
|
{
|
_SummaryKeyName = MES_Order.__KeyName; //主表的主键字段
|
_SummaryTableName = MES_Order.__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_Order.__TableName)
|
ORM = typeof(MES_Order); //主表ORM对应关系
|
if (table.TableName == DA01IMAGE.__TableName)
|
ORM = typeof(DA01IMAGE); //明细表ORM对应关系
|
|
if (ORM == null)
|
throw new Exception(table.TableName + "表没有ORM模型,请生成此表的Model类!");
|
return new GenerateSqlCmdByTableFields(ORM, table,
|
GeneratorFactory);
|
}
|
|
|
/// <summary>
|
/// 查询功能,获取主表数据。此方法的参数仅供参考
|
/// </summary>
|
public DataTable Query(QueryMES_Order P)
|
{
|
var sp = _Database.CreateSqlProc("usp_MES_Order_Query");
|
sp.AddParam("daa001", DbType.String, P.daa001);
|
sp.AddParam("create_by", DbType.String, P.create_by);
|
return _Database.GetTable(sp.Command, MES_Order.__TableName);
|
}
|
|
/// <summary>
|
/// 获取报表数据
|
/// </summary>
|
/// <returns></returns>
|
public DataSet QueryReportData(QueryMES_Order P)
|
{
|
throw new NotImplementedException("QueryReportData");
|
}
|
|
//实现接口提供的基础查询方法
|
public DataTable Query(QueryBusinessBase P)
|
{
|
return Query(P as QueryMES_Order);
|
}
|
|
//实现接口提供的基础查询方法
|
public DataSet QueryReportData(QueryBusinessBase P)
|
{
|
return QueryReportData(P as QueryMES_Order);
|
}
|
|
/// <summary>
|
/// 获取一张业务单据的数据,包括一条主表记录及(多张)明细表
|
/// </summary>
|
/// <param name="docNo">单据号码</param>
|
/// <returns></returns>
|
public DataSet GetDataByKey(string docNo)
|
{
|
var cmd = _Database.CreateSqlProc("usp_MES_Order_GetDataByKey");
|
cmd.AddParam("DocNo", DbType.String, docNo.Trim());
|
var ds = _Database.GetDataSet(cmd.Command);
|
ds.Tables[0].TableName = MES_Order.__TableName;
|
//明细表
|
ds.Tables[1].TableName = DA01IMAGE.__TableName;
|
return ds;
|
}
|
|
/// <summary>
|
///删除一张单据,包括删除主表及明细表
|
/// </summary>
|
public bool Delete(string docNo)
|
{
|
var cmd = _Database.CreateSqlProc("usp_MES_Order_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
|