1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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