wangsheng
2022-03-22 ee15dec5d91adbd1bdf15b26915b79751c17e481
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
 
using Common;
using Oracle.DataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Text;
 
namespace Dao
{
  public class GwStatisDao : IDisposable
  {
    private string CreateCondition(string key, string[] sArray)
    {
      StringBuilder stringBuilder = new StringBuilder();
      stringBuilder.Append("(1=0");
      foreach (string s in sArray)
      {
        int result = 0;
        if (int.TryParse(s, out result))
          stringBuilder.Append(" OR " + (object) key + "='" +  (object) result + "'");
      }
      stringBuilder.Append(")");
      return stringBuilder.ToString();
    }
 
    public List<GwStatisItem> Query(DateTime startTime, DateTime endTime, string clientID, string spID, string apID, string[] opIDArray, string timeExpression, StatisOption so)
    {
      List<GwStatisItem> list = new List<GwStatisItem>();
      using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("SELECT TO_CHAR(STATIS_TIME,'{0}') AS TITLE {1}{2}{3}{4},SUM(CNT_TOTAL) CNT_TOTAL,SUM(CNT_REJECTED) CNT_REJECTED,SUM(CNT_DELIVRD) CNT_DELIVRD,SUM(CNT_SUBMITED) CNT_SUBMITED,SUM(CNT_DEDUCTED) CNT_DEDUCTED,SUM(CNT_APFAILED) CNT_APFAILED,SUM(CNT_OPFAILED) CNT_OPFAILED,SUM(CNT_UNKNOWN) CNT_UNKNOWN FROM GW_SM_STATIS WHERE (SP_ID=:SP_ID OR :SP_ID IS NULL) AND (CLIENT_ID=:CLIENT_ID OR :CLIENT_ID IS NULL) AND (AP_ID=:AP_ID OR :AP_ID IS NULL) AND {5}  AND STATIS_TIME BETWEEN :START_TIME AND :END_TIME GROUP BY TO_CHAR(STATIS_TIME,'{0}') {1}{2}{3}{4} ORDER BY 1 ASC", (object) timeExpression, (so & StatisOption.APID) == StatisOption.APID ? (object) ",AP_ID" : (object) "", (so & StatisOption.OPID) == StatisOption.OPID ? (object) ",OP_ID" : (object) "", (so & StatisOption.ClientID) == StatisOption.ClientID ? (object) ",CLIENT_ID" : (object) "", (so & StatisOption.SpID) == StatisOption.SpID ? (object) ",SP_ID" : (object) "", (object) this.CreateCondition("OP_ID", opIDArray)), OracleHelper.Connection, new OracleParameter(":START_TIME", (object) startTime), new OracleParameter(":END_TIME", (object) endTime), new OracleParameter(":SP_ID", (object) spID), new OracleParameter(":CLIENT_ID", (object) clientID), new OracleParameter(":AP_ID", (object) apID)))
      {
        GwStatisItem gwStatisItem1 = new GwStatisItem();
        gwStatisItem1.Title = "合计";
        while (reader != null && ((DbDataReader) reader).Read())
        {
          OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
          GwStatisItem gwStatisItem2 = new GwStatisItem();
          gwStatisItem2.Title = oracleReaderWrapper.GetString("TITLE", "");
          gwStatisItem2.APID = oracleReaderWrapper.GetInt("AP_ID", 0);
          gwStatisItem2.OPID = oracleReaderWrapper.GetInt("OP_ID", 0);
          gwStatisItem2.SpID = oracleReaderWrapper.GetString("SP_ID", "");
          gwStatisItem2.ClientID = oracleReaderWrapper.GetString("CLIENT_ID", "");
          gwStatisItem2.CntDEDUCTED = oracleReaderWrapper.GetInt("CNT_DEDUCTED", 0);
          gwStatisItem2.CntDELIVRD = oracleReaderWrapper.GetInt("CNT_DELIVRD", 0);
          gwStatisItem2.CntAPFAILED = oracleReaderWrapper.GetInt("CNT_APFAILED", 0);
          gwStatisItem2.CntOPFAILED = oracleReaderWrapper.GetInt("CNT_OPFAILED", 0);
          gwStatisItem2.CntSUBMITED = oracleReaderWrapper.GetInt("CNT_SUBMITED", 0);
          gwStatisItem2.CntREJECTED = oracleReaderWrapper.GetInt("CNT_REJECTED", 0);
          gwStatisItem2.CntTOTAL = oracleReaderWrapper.GetInt("CNT_TOTAL", 0);
          gwStatisItem2.CntUnknown = oracleReaderWrapper.GetInt("CNT_UNKNOWN", 0);
          list.Add(gwStatisItem2);
          gwStatisItem1.CntDEDUCTED += gwStatisItem2.CntDEDUCTED;
          gwStatisItem1.CntDELIVRD += gwStatisItem2.CntDELIVRD;
          gwStatisItem1.CntAPFAILED += gwStatisItem2.CntAPFAILED;
          gwStatisItem1.CntOPFAILED += gwStatisItem2.CntOPFAILED;
          gwStatisItem1.CntSUBMITED += gwStatisItem2.CntSUBMITED;
          gwStatisItem1.CntUnknown += gwStatisItem2.CntUnknown;
          gwStatisItem1.CntTOTAL += gwStatisItem2.CntTOTAL;
          gwStatisItem1.CntREJECTED += gwStatisItem2.CntREJECTED;
        }
        list.Add(gwStatisItem1);
      }
      return list;
    }
 
    public void Dispose()
    {
    }
 
    public List<GwStatisItem> Query(DateTime begindate, DateTime enddate, string clientid, string spid)
    {
      List<GwStatisItem> list = new List<GwStatisItem>();
      string str = "YYYY-MM-DD";
      StatisOption statisOption = StatisOption.SpID;
      using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("SELECT TO_CHAR(STATIS_TIME,'{0}') AS TITLE {1}{2}{3}{4},SUM(CNT_TOTAL) CNT_TOTAL,SUM(CNT_REJECTED) CNT_REJECTED,SUM(CNT_DELIVRD) CNT_DELIVRD,SUM(CNT_SUBMITED) CNT_SUBMITED,SUM(CNT_DEDUCTED) CNT_DEDUCTED,SUM(CNT_APFAILED) CNT_APFAILED,SUM(CNT_OPFAILED) CNT_OPFAILED,SUM(CNT_UNKNOWN) CNT_UNKNOWN FROM GW_SM_STATIS WHERE CLIENT_ID=:CLIENT_ID AND (SP_ID=:SP_ID OR :SP_ID IS NULL)  AND STATIS_TIME BETWEEN :START_TIME AND :END_TIME GROUP BY TO_CHAR(STATIS_TIME,'{0}') {1}{2}{3}{4} ORDER BY 1 ASC", (object) str, (statisOption & StatisOption.APID) == StatisOption.APID ? (object) ",AP_ID" : (object) "", (statisOption & StatisOption.OPID) == StatisOption.OPID ? (object) ",OP_ID" : (object) "", (statisOption & StatisOption.ClientID) == StatisOption.ClientID ? (object) ",CLIENT_ID" : (object) "", (statisOption & StatisOption.SpID) == StatisOption.SpID ? (object) ",SP_ID" : (object) ""), OracleHelper.Connection, new OracleParameter(":START_TIME", (object) begindate), new OracleParameter(":END_TIME", (object) enddate), new OracleParameter(":SP_ID", (object) spid), new OracleParameter(":CLIENT_ID", (object) clientid)))
      {
        GwStatisItem gwStatisItem1 = new GwStatisItem();
        gwStatisItem1.Title = "合计";
        gwStatisItem1.SpID = "";
        gwStatisItem1.ClientID = "";
        while (reader != null && ((DbDataReader) reader).Read())
        {
          OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
          GwStatisItem gwStatisItem2 = new GwStatisItem();
          gwStatisItem2.Title = oracleReaderWrapper.GetString("TITLE", "");
          gwStatisItem2.APID = oracleReaderWrapper.GetInt("AP_ID", 0);
          gwStatisItem2.OPID = oracleReaderWrapper.GetInt("OP_ID", 0);
          gwStatisItem2.SpID = oracleReaderWrapper.GetString("SP_ID", "");
          gwStatisItem2.ClientID = oracleReaderWrapper.GetString("CLIENT_ID", "");
          gwStatisItem2.CntDEDUCTED = oracleReaderWrapper.GetInt("CNT_DEDUCTED", 0);
          gwStatisItem2.CntDELIVRD = oracleReaderWrapper.GetInt("CNT_DELIVRD", 0);
          gwStatisItem2.CntAPFAILED = oracleReaderWrapper.GetInt("CNT_APFAILED", 0);
          gwStatisItem2.CntOPFAILED = oracleReaderWrapper.GetInt("CNT_OPFAILED", 0);
          gwStatisItem2.CntSUBMITED = oracleReaderWrapper.GetInt("CNT_SUBMITED", 0);
          gwStatisItem2.CntREJECTED = oracleReaderWrapper.GetInt("CNT_REJECTED", 0);
          gwStatisItem2.CntTOTAL = oracleReaderWrapper.GetInt("CNT_TOTAL", 0);
          gwStatisItem2.CntUnknown = oracleReaderWrapper.GetInt("CNT_UNKNOWN", 0);
          list.Add(gwStatisItem2);
          gwStatisItem1.CntDEDUCTED += gwStatisItem2.CntDEDUCTED;
          gwStatisItem1.CntDELIVRD += gwStatisItem2.CntDELIVRD;
          gwStatisItem1.CntAPFAILED += gwStatisItem2.CntAPFAILED;
          gwStatisItem1.CntOPFAILED += gwStatisItem2.CntOPFAILED;
          gwStatisItem1.CntSUBMITED += gwStatisItem2.CntSUBMITED;
          gwStatisItem1.CntUnknown += gwStatisItem2.CntUnknown;
          gwStatisItem1.CntTOTAL += gwStatisItem2.CntTOTAL;
          gwStatisItem1.CntREJECTED += gwStatisItem2.CntREJECTED;
        }
        list.Add(gwStatisItem1);
      }
      return list;
    }
  }
}