王 垚
2021-09-02 7af4d9d0181f2442bc60b218ec65bfaf831d0422
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
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Contracts.Report;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Orm.DataEntity;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Newtonsoft.Json;
using ZD.Cloud.Logger;
 
namespace Demo.Report
{
    /// <summary>
    /// 齐套率报表
    /// </summary>
    [Description("齐套率报表")]
    [HotUpdate]
    public class prd_ExtractionPlanDetail : SysReportBaseService
    {
 
        public override void Initialize()
        {
            //base.Initialize();
            //this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
            //this.ReportProperty.ReportName = new LocaleValue("供应商送料计划列表订单", base.Context.UserLocale.LCID);
            //this.ReportProperty.IsUIDesignerColumns = true;
            //this.ReportProperty.IsGroupSummary = true;
            //this.ReportProperty.SimpleAllCols = false;
 
            base.Initialize();
            // 简单账表类型:普通、树形、分页
            this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
            this.IsCreateTempTableByPlugin = true;
            //取代码中配置的列
            this.ReportProperty.IsUIDesignerColumns = false;
            //是否分组汇总
            this.ReportProperty.IsGroupSummary = true;
 
 
 
        }
 
        public override ReportHeader GetReportHeaders(IRptParams filter)
        {
            ReportHeader header = new ReportHeader();
 
            header.AddChild("FIDENTITYID", new LocaleValue("序号"), SqlStorageType.SqlInt).ColIndex = 1;
            header.AddChild("FHDATE", new LocaleValue("提料计划日期", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 1;
            header.AddChild("FHSOURCEBILLNO", new LocaleValue("生产订单编号", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 2;
            header.AddChild("FSOURCENAME", new LocaleValue("生产线"), SqlStorageType.Sqlvarchar).ColIndex = 3;
            header.AddChild("FSUPPLIERNUMBER", new LocaleValue("供应商编码", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 4;
            header.AddChild("FSUPPLIERNAME", new LocaleValue("供应商名称", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 5;
            header.AddChild("FMATERIALNUMBER2", new LocaleValue("产品编码"), SqlStorageType.Sqlvarchar).ColIndex = 6;
            header.AddChild("FMATERIALNAME2", new LocaleValue("产品名称"), SqlStorageType.Sqlvarchar).ColIndex = 7;
            header.AddChild("FSPECIFICATION2", new LocaleValue("产品规格"), SqlStorageType.Sqlvarchar).ColIndex = 8;
            header.AddChild("FRJHQTY", new LocaleValue("工单数量"), SqlStorageType.SqlDecimal).ColIndex = 8;
            header.AddChild("FQTQTY", new LocaleValue("工单齐套数量"), SqlStorageType.SqlDecimal).ColIndex = 8;
            header.AddChild("FGDQTL", new LocaleValue("工单齐套率"), SqlStorageType.SqlDecimal).ColIndex = 8;
            header.AddChild("FMATERIALNUMBER", new LocaleValue("原材料编码", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 9;
            header.AddChild("FMATERIALNAME", new LocaleValue("原材料名称", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 10;
            header.AddChild("FSPECIFICATION", new LocaleValue("原材料规格", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 11;
            header.AddChild("FHQTY", new LocaleValue("需求物料数量", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 11;
            header.AddChild("FREALQTY", new LocaleValue("入库数量", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 11;
            header.AddChild("FISQT", new LocaleValue("是否齐套", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 12;
            header.AddChild("FTYPE", new LocaleValue("类型", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 12;
            header.AddChild("FJSRATE", new LocaleValue("齐套率", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 12;
 
            return header;
        }
 
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            base.BuilderReportSqlAndTempTable(filter, tableName);
            DynamicObject customFil = filter.FilterParameter.CustomFilter;
            string FBeginDATE = ""; //提料日期
            string FEndDATE = ""; //提料日期
            string FProductLine = ""; //生产线
            string FMoBillNo = ""; //生产订单号
            string FSupplyID = ""; //供应商
 
            FBeginDATE = customFil["FBeginDATE"]?.ToString();
            FEndDATE = customFil["FEndDATE"]?.ToString();
            FMoBillNo = customFil["FMoBillNo"]?.ToString();
            
            if (((DynamicObject)customFil["FProductLine"]) != null)
            {
                FProductLine = ((DynamicObject)customFil["FProductLine"])["Id"].ToString();
            }
            if (((DynamicObject)customFil["FSupplyID"]) != null)
            {
                FSupplyID = ((DynamicObject)customFil["FSupplyID"])["Id"].ToString();
            }
            string sql = string.Format($"/*dialect*/ EXEC pr_CompleteSetRateReport '{tableName}','{FBeginDATE}','{FEndDATE}','{FMoBillNo}','{FProductLine}','{FSupplyID}'");
            LogHelper.Info(sql);
            DBUtils.Execute(this.Context, sql);
        }
        public override void CloseReport()
        {
 
        }
    }
}