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
{
///
/// DAL数据层:dalWorkOrder
///
public class dalWorkOrder : dalBaseBusiness
{
///
/// 构造器
///
/// 当前登录用户
public dalWorkOrder(Loginer loginer) : base(loginer)
{
_SummaryKeyName = MES_Order.__KeyName; //主表的主键字段
_SummaryTableName = MES_Order.__TableName; //主表表名
_UpdateSummaryKeyMode = UpdateKeyMode.None;
_ReplaceString = false;
}
///
/// 根据表名获取该表的SQL命令生成器
///
/// 表名
///
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);
}
///
/// 查询功能,获取主表数据。此方法的参数仅供参考
///
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);
}
///
/// 获取报表数据
///
///
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);
}
///
/// 获取一张业务单据的数据,包括一条主表记录及(多张)明细表
///
/// 单据号码
///
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;
}
///
///删除一张单据,包括删除主表及明细表
///
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;
}
///
//保存数据
///
public override SaveResult Update(DataSet data)
{
//
//在这里,可以在保存数据前针对参数data做处理,比如:设置默认值。
//在这里,可以手工启动事务关联更新其它表的数据,参考:dalPO.Update方法。
//
//调用基类的方法保存数据
return base.Update(data);
}
///
//获取单据流水号码
///
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