You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

472 lines
28 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using System.Configuration;
using System.Data;
namespace BLL
{
public class DataCommon
{
DalCommon dalCommon;
public DataCommon(string partType)
{
dalCommon = new DalCommon(partType);
}
public string dbType = ConfigurationManager.ConnectionStrings["DBType"].ConnectionString;
public int GetMaxSEQNO(string strDt)
{
string strSql = " SELECT MAX(SEQNO) SEQNO FROM STATIONSQUADSUM WHERE CLASSDATE='" + strDt + "'";
object o = dalCommon.GetSingle(strSql);
if (o == null)
{
return 1;
}
else
{
return Convert.ToInt32(o) + 1;
}
}
public DataTable GetStanSquanSumInfo(string dt)
{
string strSql = "SELECT case when ut.porttype=8 then '门架' else (SELECT TEXT FROM PORTTYPE_TEXT WHERE VALUE=ut.porttype) end PORTTEXT, (select AREANAME from AREA where AREANO=ut.AREANO) AREANAME,(select ROADNAME from ROAD_TABLE where ROADNO=ut.ROADNO) ROADNAME,(select STANAME from NAME_TABLE where STANO=ut.STANO) STANAME,* FROM STATIONSQUADSUM ut where 1=1 " + (dt == "" ? "" : " and CLASSDATE='" + dt + "'") + " order by SEQNO,CLASSDATE,DT desc";
DataTable dtData;
dtData = dalCommon.Query(strSql).Tables[0];
return dtData;
}
/// <summary>
/// SUM( CASE WHEN op.paytype NOT IN(22,23) and multiProvince=0 THEN 1 ELSE 0 END) SPRECCOUNT,
/// SUM(CASE WHEN op.paytype NOT IN(22,23) and multiProvince = 0 THEN op.INCASH+op.PAYCASH ELSE 0 END) SPINCASH,
/// SUM(CASE WHEN op.paytype NOT IN(22,23) and multiProvince = 0 THEN op.CASH ELSE 0 END) SPCASH
/// </summary>
/// <param name="dt"></param>
/// <param name="porttype"></param>
/// <returns></returns>
public DataTable GetInsertStanSquanSumInfo(string dt, string porttype)
{
int m = Convert.ToDateTime(dt).Month;//
string strSql = string.Format(@"select t1.AREANO,t1.ROADNO,t1.STANO,'{0}' classdate,case when t1.PORTTYPE=3 then 1 when t1.PORTTYPE=4 then 2 else t1.PORTTYPE end PORTTYPE,SUM(a.PAYRECCOUNT)PAYRECCOUNT,SUM(a.CASHRECCOUNT)CASHRECCOUNT,SUM(a.PAYCASH)PAYCASH,SUM(a.PAYINCASH)PAYINCASH,SUM(a.INCASH)INCASH,SUM(a.CASH)CASH,SUM(a.MPAYRECCOUNT) MPAYRECCOUNT,SUM(a.MPAYCASH) MPAYCASH,SUM(a.MPAYINCASH) MPAYINCASH,SUM(a.SPCOUNT) SPCOUNT,SUM(a.SPCASH) SPCASH,SUM(a.SPINCASH) SPINCASH FROM
(select AREANO,ROADNO,STANO,case when PORTTYPE=1 then 3 when PORTTYPE=2 then 4 else PORTTYPE end PORTTYPE from SETUP_TABLE {2} group by AREANO,ROADNO,STANO,case when PORTTYPE=1 then 3 when PORTTYPE=2 then 4 else PORTTYPE end) t1
left join (SELECT op.AREANO, op.ROADNO, op.STANO,op.PORTTYPE ,
SUM(CASE WHEN op.paytype IN(22,23) THEN 1 ELSE 0 END) PAYRECCOUNT,
SUM(CASE WHEN op.paytype=20 THEN 1 ELSE 0 END) MPAYRECCOUNT,
SUM(CASE WHEN op.paytype NOT IN(20,22,23) THEN 1 ELSE 0 END) CASHRECCOUNT,
SUM(CASE WHEN op.paytype NOT IN(20,22,23) THEN op.INCASH ELSE 0 END) INCASH,
SUM(CASE WHEN op.paytype NOT IN(20,22,23) THEN op.CASH ELSE 0 END) CASH,
SUM(CASE WHEN op.paytype IN(22,23) THEN op.CASH ELSE 0 END) PAYCASH,
SUM(CASE WHEN op.paytype IN(22,23) THEN op.PAYCASH ELSE 0 END) PAYINCASH,
SUM(CASE WHEN op.paytype=20 THEN op.CASH ELSE 0 END) MPAYCASH,
SUM(CASE WHEN op.paytype=20 THEN op.PAYCASH ELSE 0 END) MPAYINCASH,
SUM(CASE WHEN op.paytype NOT IN(22,23) and multiProvince=0 THEN 1 ELSE 0 END) SPCOUNT,
SUM(CASE WHEN op.paytype NOT IN(22,23) and multiProvince = 0 THEN op.INCASH+op.PAYCASH ELSE 0 END) SPINCASH,
SUM(CASE WHEN op.paytype NOT IN(22,23) and multiProvince = 0 THEN op.CASH ELSE 0 END) SPCASH
FROM OUT_PORT_{1} op WHERE op.CLASSDATE='{0}' GROUP BY op.AREANO,op.ROADNO,op.STANO,op.PORTTYPE
UNION SELECT op.AREANO, op.ROADNO, op.STANO,op.PORTTYPE ,
SUM( CASE WHEN op.CARDTP IN(22,23) THEN 1 ELSE 0 END) PAYRECCOUNT,0 MPAYRECCOUNT,
SUM( CASE WHEN op.CARDTP NOT IN(22,23) THEN 1 ELSE 0 END) CASHRECCOUNT ,
0 CASH,0 INCASH,0 PAYCASH,0 PAYINCASH,0 MPAYCASH,0 MPAYINCASH FROM IN_PORT op
WHERE op.CLASSDATE='{0}' GROUP BY op.AREANO,op.ROADNO,op.STANO,op.PORTTYPE
) a on a.AREANO=t1.AREANO and t1.PORTTYPE=a.PORTTYPE and t1.ROADNO=a.ROADNO and a.STANO=t1.STANO GROUP BY t1.AREANO,t1.ROADNO,t1.STANO,case when t1.PORTTYPE=3 then 1 when t1.PORTTYPE=4 then 2 else t1.PORTTYPE end", dt, m, porttype != "3" ? " where porttype in(" + (porttype == "1" ? "1,3" : "2,4") + ")" : "");
DataTable dtData;
dtData = dalCommon.Query(strSql).Tables[0];
return dtData;
}
public bool CheckStanSquanSumExists(int area, int road, int stano, string classDt, int portType, int recctCash, int recctPay, int incash, int cash, int paycash, int payincash, int rectMpay, int mpayCash, int mpayInCash)
{
string strSql = string.Format("SELECT AREANO FROM STATIONSQUADSUM where AREANO={0} and ROADNO={1} and STANO={2} and CLASSDATE='{3}' and PORTTYPE={4} and CASHRECCOUNT={5} AND PAYRECCOUNT={6} and INCASH={7} and CASH={8} and PAYCASH={9} AND PAYINCASH={10} and MPAYRECCOUNT={11} and MPAYCASH={12} and MPAYINCASH={13}", area, road, stano, classDt, portType, recctCash, recctPay, incash, cash, paycash, payincash, rectMpay, mpayCash, mpayInCash);
object o = dalCommon.GetSingle(strSql);
if (o == null)
{
return false;
}
else
{
return true;
}
}
/// <summary>
///
/// </summary>
/// <param name="seqno">序列号</param>
/// <param name="area">区域</param>
/// <param name="road">路段</param>
/// <param name="stano">站</param>
/// <param name="classDt">统计日</param>
/// <param name="portType">车道类型</param>
/// <param name="rectCash">MTC车流</param>
/// <param name="rectPay">ETC车流</param>
/// <param name="incash">MTC实收</param>
/// <param name="cash">MTC应收</param>
/// <param name="paycash">ETC应收</param>
/// <param name="payincash">ETC实收</param>
/// <returns></returns>
public bool AddStanSquanSum(int seqno, int area, int road, int stano, string classDt, int portType, int rectCash, int rectPay, int incash, int cash, int paycash, int payincash, int rectMpay, int mpayCash, int mpayInCash, int rectSP, int spCash, int spInCash)
{
string strSql = string.Format("insert into STATIONSQUADSUM(SEQNO,AREANO,ROADNO,STANO,CLASSDATE,PORTTYPE,CASHRECCOUNT,PAYRECCOUNT,INCASH,CASH,PAYCASH,PAYINCASH,DT,MPAYRECCOUNT,MPAYCASH,MPAYINCASH,SPCOUNT,SPCASH,SPINCASH) values({0},{1},{2},{3},'{4}',{5},{6},{7},{8},{9},{10},{11},CONVERT(VARCHAR(19),GETDATE(),120),{12},{13},{14},{15},{16},{17})", seqno, area, road, stano, classDt, portType, rectCash, rectPay, incash, cash, paycash, payincash, rectMpay, mpayCash, mpayInCash, rectSP, spCash, spInCash);
int i = dalCommon.ExecuteSql(strSql);
if (i == 0)
{
return false;
}
else
{
return true;
}
}
/// <summary>
/// 获取4个表的信息-原始
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public DataTable GetAllInfo(string dt)
{
int m = Convert.ToDateTime(dt).Month;
//正常情况{2}
string normalWhere = " VERID>0 and VERID<9000 ";
//手工票{3}
string sgpWhere = " VERID>=9990 ";
//冲减{4}
string cjWhere = " VERID<0 ";
// ETC未付{5}
string noPayWhere = " VERID between 9000 and 9989 ";
string strSql = string.Format(@"SELECT pt.TEXT PORTTEXT, st.UNUSE9,
n.ROADNAME,
n.STANAME ,
st.AREANO, st.ROADNO, st.STANO, st.PORTNO, st.PORTTYPE,l.RECCOUNT CS_LS,l.INCASH SS_LS,
l.CASH YS_LS,l.PAYCASH FXJ_LS,d.RECCOUNT CS_DT,d.INCASH SS_DT,d.CASH YS_DT,d.PAYCASH FXJ_DT,
d.CJ CJ_DT,D.SGP SGP_DT, op.RECCOUNT_FXJ CSFXJ_OP,op.RECCOUNT_XJ CSXJ_OP
,op.INCASH SS_OP,op.CASH YS_OP,op.PAYINCASH FXJSS_OP ,op.PAYCASH FXJYS_OP
,op.SGP SGP_OP,OP.CJ CJ_OP ,ip.RECCOUNT_FXJ CSFXJ_IP,IP.RECCOUNT_XJ CSXJ_IP,d.ETCNOPAY ETCNOPAY_DS,op.ETCNOPAY ETCNOPAY_OP FROM SETUP_TABLE st left join NAME_TABLE n on n.STANO=st.STANO and n.ROADNO=st.ROADNO left join PORTTYPE_TEXT pt on pt.value=st.porttype
LEFT JOIN
( SELECT dt.ROADNO,dt.STANO,dt.PORTNO,dt.PORTTYPE,
SUM(CASE WHEN {2} THEN dt.RECCOUNT ELSE 0 END) RECCOUNT,
SUM( CASE WHEN {2} THEN dt.CASH ELSE 0 END) CASH,
SUM( CASE WHEN {2} THEN dt.INCASH ELSE 0 END) INCASH ,
SUM( CASE when {2} then PRECASH else 0 end) PAYCASH,
SUM( CASE WHEN {3} THEN dt.incash ELSE 0 END) SGP,
SUM(case when {5} then dt.PRECASH else 0 end )ETCNOPAY ,
SUM( CASE WHEN {4} THEN dt.INCASH ELSE 0 END) CJ
FROM DUTY_TABLE dt WHERE CLASSDATE='{0}'
and manid<>9 GROUP BY dt.ROADNO,dt.STANO,dt.PORTNO,dt.PORTTYPE ) d ON st.ROADNO=d.roadno AND st.STANO=d.stano AND st.PORTNO=d.portno AND st.PORTTYPE=d.porttype
LEFT JOIN (select * from LANESQUADSUM where CLASSDATE='{0}') l ON
st.ROADNO=l.roadno AND st.STANO=l.stano AND st.PORTNO=l.portno AND st.PORTTYPE=l.porttype
LEFT JOIN (SELECT op.AREANO, op.ROADNO, op.STANO, op.PORTNO,op.PORTTYPE ,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN 1 ELSE 0 END) RECCOUNT_FXJ,
SUM( CASE WHEN op.paytype NOT IN(22,23) AND {2} THEN 1 ELSE 0 END) RECCOUNT_XJ,
SUM( CASE WHEN op.paytype NOT IN(22,23) AND {2} THEN op.CASH ELSE 0 END) CASH,
SUM( CASE WHEN {2} THEN op.INCASH ELSE 0 END) INCASH,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN op.CASH ELSE 0 END) PAYCASH,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN op.PAYCASH ELSE 0 END) PAYINCASH,
SUM( CASE WHEN {3} THEN op.INCASH ELSE 0 END) SGP,
SUM( CASE WHEN {5} THEN op.PAYCASH ELSE 0 END) ETCNOPAY,
SUM( CASE WHEN {4} THEN op.INCASH ELSE 0 END) CJ FROM out_port_{1} op WHERE op.CLASSDATE='{0}' GROUP BY op.AREANO,op.ROADNO,op.STANO,op.PORTNO,op.PORTTYPE) op ON st.AREANO=op.AREANO AND st.ROADNO=op.roadno AND st.STANO=op.stano AND st.PORTNO=op.portno AND st.PORTTYPE=op.porttype
LEFT JOIN ( SELECT op.AREANO, op.ROADNO, op.STANO, op.PORTNO,OP.PORTTYPE ,
SUM( CASE WHEN op.kind between 22 and 23 THEN 1 ELSE 0 END) RECCOUNT_FXJ,
SUM( CASE WHEN op.kind NOT IN(22,23) THEN 1 ELSE 0 END) RECCOUNT_XJ FROM
in_port_{1} op WHERE op.CLASSDATE='{0}'
GROUP BY op.AREANO,op.ROADNO,op.STANO,op.PORTNO,op.PORTTYPE) ip
ON st.AREANO=ip.AREANO AND st.ROADNO=ip.roadno AND st.STANO=ip.stano
AND st.PORTNO=ip.portno AND st.PORTTYPE=ip.porttype", dt, m, normalWhere, sgpWhere, cjWhere, noPayWhere);
DataTable dtData;
dtData = dalCommon.Query(strSql).Tables[0];
//foreach (DataRow dr in dtData.Rows) {
// //入口
// if (dr["PORTTYPE"].ToString() == "1" || dr["PORTTYPE"].ToString() == "3") {
// dr["CS_OP"] = dr["CS_IP"];
// }
//}
return dtData;
}
/// <summary>
/// 获取4个表的信息-包含移动支付
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public DataTable GetAllInfoInEpay(string dt)
{
int m = Convert.ToDateTime(dt).Month;
//正常情况{2}
string normalWhere = " VERID>0 and VERID<9000 ";
//手工票{3}
string sgpWhere = " VERID>=9990 ";
//冲减{4}
string cjWhere = " VERID<0 ";
// ETC未付{5}
string noPayWhere = " VERID between 9000 and 9989 ";
//(select * from SETUP_TABLE where stano=202)
string strSql = string.Format(@"SELECT pt.TEXT PORTTEXT, st.UNUSE9,
n.ROADNAME,
n.STANAME ,
st.AREANO, st.ROADNO, st.STANO, st.PORTNO, st.PORTTYPE,l.RECCOUNT CS_LS,l.INCASH SS_LS,
l.CASH YS_LS,l.PAYCASH FXJ_LS,d.RECCOUNT CS_DT,d.INCASH SS_DT,d.CASH YS_DT,d.PAYCASH FXJ_DT,
d.CJ CJ_DT,D.SGP SGP_DT, op.RECCOUNT_FXJ CSFXJ_OP,op.RECCOUNT_XJ CSXJ_OP
,op.INCASH SS_OP,op.CASH YS_OP,op.PAYINCASH FXJSS_OP ,op.PAYCASH FXJYS_OP,op.RECCOUNT_EPAY CSEPAY_OP,op.EPAYINCASH EPAYSS_OP ,op.EPAYCASH EPAYYS_OP
,op.SGP SGP_OP,OP.CJ CJ_OP ,ip.RECCOUNT_FXJ CSFXJ_IP,IP.RECCOUNT_XJ CSXJ_IP,d.ETCNOPAY ETCNOPAY_DS,op.ETCNOPAY ETCNOPAY_OP FROM (select * from SETUP_TABLE) st left join NAME_TABLE n on n.STANO=st.STANO and n.ROADNO=st.ROADNO left join PORTTYPE_TEXT pt on pt.value=st.porttype
LEFT JOIN
( SELECT dt.ROADNO,dt.STANO,dt.PORTNO,
SUM(CASE WHEN {2} THEN dt.RECCOUNT ELSE 0 END) RECCOUNT,
SUM( CASE WHEN {2} THEN dt.CASH ELSE 0 END) CASH,
SUM( CASE WHEN {2} THEN dt.INCASH ELSE 0 END) INCASH ,
SUM( CASE when {2} then PRECASH else 0 end) PAYCASH,
SUM( CASE WHEN {3} THEN dt.incash ELSE 0 END) SGP,
SUM(case when {5} then dt.PRECASH else 0 end )ETCNOPAY ,
SUM( CASE WHEN {4} THEN dt.INCASH ELSE 0 END) CJ
FROM DUTY_TABLE dt WHERE CLASSDATE='{0}'
and manid<>9 GROUP BY dt.ROADNO,dt.STANO,dt.PORTNO,case when dt.PORTTYPE=3 then 1 when dt.PORTTYPE=4 then 2 else dt.PORTTYPE end) d ON st.ROADNO=d.roadno AND st.STANO=d.stano AND st.PORTNO=d.portno
LEFT JOIN (select * from LANESQUADSUM where CLASSDATE='{0}') l ON
st.ROADNO=l.roadno AND st.STANO=l.stano AND st.PORTNO=l.portno
LEFT JOIN (SELECT op.AREANO, op.ROADNO, op.STANO, op.PORTNO,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN 1 ELSE 0 END) RECCOUNT_FXJ,
SUM( CASE WHEN op.paytype=20 and {2} THEN 1 ELSE 0 END) RECCOUNT_EPAY,
SUM( CASE WHEN op.paytype NOT IN(20,22,23) AND {2} THEN 1 ELSE 0 END) RECCOUNT_XJ,
SUM( CASE WHEN op.paytype NOT IN(20,22,23) AND {2} THEN op.CASH ELSE 0 END) CASH,
SUM( CASE WHEN {2} THEN op.INCASH ELSE 0 END) INCASH,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN op.CASH ELSE 0 END) PAYCASH,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN op.PAYCASH ELSE 0 END) PAYINCASH,
SUM( CASE WHEN op.paytype=20 and {2} THEN op.CASH ELSE 0 END) EPAYCASH,
SUM( CASE WHEN op.paytype=20 and {2} THEN op.PAYCASH ELSE 0 END) EPAYINCASH,
SUM( CASE WHEN {3} THEN op.INCASH ELSE 0 END) SGP,
SUM( CASE WHEN {5} THEN op.PAYCASH ELSE 0 END) ETCNOPAY,
SUM( CASE WHEN {4} THEN op.INCASH ELSE 0 END) CJ FROM out_port_{1} op WHERE op.CLASSDATE='{0}' GROUP BY op.AREANO,op.ROADNO,op.STANO,op.PORTNO,case when op.PORTTYPE=3 then 1 when op.PORTTYPE=4 then 2 else op.PORTTYPE end) op ON st.AREANO=op.AREANO AND st.ROADNO=op.roadno AND st.STANO=op.stano AND st.PORTNO=op.portno
LEFT JOIN ( SELECT op.AREANO, op.ROADNO, op.STANO, op.PORTNO ,
SUM( CASE WHEN op.CARDTP between 22 and 23 THEN 1 ELSE 0 END) RECCOUNT_FXJ,
SUM( CASE WHEN op.CARDTP NOT IN(22,23) THEN 1 ELSE 0 END) RECCOUNT_XJ FROM
in_port_{1} op WHERE op.CLASSDATE='{0}'
GROUP BY op.AREANO,op.ROADNO,op.STANO,op.PORTNO,case when op.PORTTYPE=3 then 1 when op.PORTTYPE=4 then 2 else op.PORTTYPE end) ip
ON st.AREANO=ip.AREANO AND st.ROADNO=ip.roadno AND st.STANO=ip.stano
AND st.PORTNO=ip.portno", dt, m, normalWhere, sgpWhere, cjWhere, noPayWhere);
DataTable dtData;
dtData = dalCommon.Query(strSql).Tables[0];
//foreach (DataRow dr in dtData.Rows) {
// //入口
// if (dr["PORTTYPE"].ToString() == "1" || dr["PORTTYPE"].ToString() == "3") {
// dr["CS_OP"] = dr["CS_IP"];
// }
//}
return dtData;
}
/// <summary>
/// 获取4个表的信息-包含移动支付
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public DataTable GetAllInfoInEpaybak(string dt)
{
int m = Convert.ToDateTime(dt).Month;
//正常情况{2}
string normalWhere = " VERID>0 and VERID<9000 ";
//手工票{3}
string sgpWhere = " VERID>=9990 ";
//冲减{4}
string cjWhere = " VERID<0 ";
// ETC未付{5}
string noPayWhere = " VERID between 9000 and 9989 ";
//(select * from SETUP_TABLE where stano=202)
string strSql = string.Format(@"SELECT pt.TEXT PORTTEXT, st.UNUSE9,
n.ROADNAME,
n.STANAME ,
st.AREANO, st.ROADNO, st.STANO, st.PORTNO, st.PORTTYPE,l.RECCOUNT CS_LS,l.INCASH SS_LS,
l.CASH YS_LS,l.PAYCASH FXJ_LS,d.RECCOUNT CS_DT,d.INCASH SS_DT,d.CASH YS_DT,d.PAYCASH FXJ_DT,
d.CJ CJ_DT,D.SGP SGP_DT, op.RECCOUNT_FXJ CSFXJ_OP,op.RECCOUNT_XJ CSXJ_OP
,op.INCASH SS_OP,op.CASH YS_OP,op.PAYINCASH FXJSS_OP ,op.PAYCASH FXJYS_OP,op.RECCOUNT_EPAY CSEPAY_OP,op.EPAYINCASH EPAYSS_OP ,op.EPAYCASH EPAYYS_OP
,op.SGP SGP_OP,OP.CJ CJ_OP ,ip.RECCOUNT_FXJ CSFXJ_IP,IP.RECCOUNT_XJ CSXJ_IP,d.ETCNOPAY ETCNOPAY_DS,op.ETCNOPAY ETCNOPAY_OP FROM (select * from SETUP_TABLE) st left join NAME_TABLE n on n.STANO=st.STANO and n.ROADNO=st.ROADNO left join PORTTYPE_TEXT pt on pt.value=st.porttype
LEFT JOIN
( SELECT dt.ROADNO,dt.STANO,dt.PORTNO,dt.PORTTYPE,
SUM(CASE WHEN {2} THEN dt.RECCOUNT ELSE 0 END) RECCOUNT,
SUM( CASE WHEN {2} THEN dt.CASH ELSE 0 END) CASH,
SUM( CASE WHEN {2} THEN dt.INCASH ELSE 0 END) INCASH ,
SUM( CASE when {2} then PRECASH else 0 end) PAYCASH,
SUM( CASE WHEN {3} THEN dt.incash ELSE 0 END) SGP,
SUM(case when {5} then dt.PRECASH else 0 end )ETCNOPAY ,
SUM( CASE WHEN {4} THEN dt.INCASH ELSE 0 END) CJ
FROM DUTY_TABLE dt WHERE CLASSDATE='{0}'
and manid<>9 GROUP BY dt.ROADNO,dt.STANO,dt.PORTNO,dt.PORTTYPE ) d ON st.ROADNO=d.roadno AND st.STANO=d.stano AND st.PORTNO=d.portno AND st.PORTTYPE=d.porttype
LEFT JOIN (select * from LANESQUADSUM where CLASSDATE='{0}') l ON
st.ROADNO=l.roadno AND st.STANO=l.stano AND st.PORTNO=l.portno AND st.PORTTYPE=l.porttype
LEFT JOIN (SELECT op.AREANO, op.ROADNO, op.STANO, op.PORTNO,op.PORTTYPE ,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN 1 ELSE 0 END) RECCOUNT_FXJ,
SUM( CASE WHEN op.paytype=20 and {2} THEN 1 ELSE 0 END) RECCOUNT_EPAY,
SUM( CASE WHEN op.paytype NOT IN(20,22,23) AND {2} THEN 1 ELSE 0 END) RECCOUNT_XJ,
SUM( CASE WHEN op.paytype NOT IN(20,22,23) AND {2} THEN op.CASH ELSE 0 END) CASH,
SUM( CASE WHEN {2} THEN op.INCASH ELSE 0 END) INCASH,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN op.CASH ELSE 0 END) PAYCASH,
SUM( CASE WHEN op.paytype between 22 and 23 and {2} THEN op.PAYCASH ELSE 0 END) PAYINCASH,
SUM( CASE WHEN op.paytype=20 and {2} THEN op.CASH ELSE 0 END) EPAYCASH,
SUM( CASE WHEN op.paytype=20 and {2} THEN op.PAYCASH ELSE 0 END) EPAYINCASH,
SUM( CASE WHEN {3} THEN op.INCASH ELSE 0 END) SGP,
SUM( CASE WHEN {5} THEN op.PAYCASH ELSE 0 END) ETCNOPAY,
SUM( CASE WHEN {4} THEN op.INCASH ELSE 0 END) CJ FROM out_port_{1} op WHERE op.CLASSDATE='{0}' GROUP BY op.AREANO,op.ROADNO,op.STANO,op.PORTNO,op.PORTTYPE) op ON st.AREANO=op.AREANO AND st.ROADNO=op.roadno AND st.STANO=op.stano AND st.PORTNO=op.portno AND st.PORTTYPE=op.porttype
LEFT JOIN ( SELECT op.AREANO, op.ROADNO, op.STANO, op.PORTNO,OP.PORTTYPE ,
SUM( CASE WHEN op.CARDTP between 22 and 23 THEN 1 ELSE 0 END) RECCOUNT_FXJ,
SUM( CASE WHEN op.CARDTP NOT IN(22,23) THEN 1 ELSE 0 END) RECCOUNT_XJ FROM
in_port_{1} op WHERE op.CLASSDATE='{0}'
GROUP BY op.AREANO,op.ROADNO,op.STANO,op.PORTNO,op.PORTTYPE) ip
ON st.AREANO=ip.AREANO AND st.ROADNO=ip.roadno AND st.STANO=ip.stano
AND st.PORTNO=ip.portno AND st.PORTTYPE=ip.porttype", dt, m, normalWhere, sgpWhere, cjWhere, noPayWhere);
DataTable dtData;
dtData = dalCommon.Query(strSql).Tables[0];
//foreach (DataRow dr in dtData.Rows) {
// //入口
// if (dr["PORTTYPE"].ToString() == "1" || dr["PORTTYPE"].ToString() == "3") {
// dr["CS_OP"] = dr["CS_IP"];
// }
//}
return dtData;
}
public DataTable GetPreByManNo(string userid, string sysid)
{
string str = string.Empty;
if (!string.IsNullOrEmpty(userid))
{
str = "select * from cms_prmis_table p where SYSID=" + sysid + " and PrmisFlag=2 and p.PrmisID in ( select up.PrmisID from cms_userprmis_table up where up.ManNO=" + userid + ")";
}
else
{
str = "select * from cms_prmis_table p where SYSID=" + sysid + " and PrmisFlag=2";
}
return this.dalCommon.Query(str).Tables[0];
}
public DataRow GetLoginUserDetail(string userID)
{
try
{
string str = "select ut.MANNO,ut.MAN,(SELECT TEXT from MANID_text WHERE VALUE=ut.MANID) MANTEXT from USER_TABLE ut where manno=" + userID;
DataTable table = this.dalCommon.Query(str).Tables[0];
if (table.Rows.Count > 0)
{
return table.Rows[0];
}
else
{
return null;
}
}
catch (Exception)
{
return null;
}
}
/// <summary>
/// 获取哪天没做站合计数
/// </summary>
/// <returns></returns>
public DataTable GetCheckMsg()
{
string sql = string.Format("select CLASSDATE from STATIONSQUADSUM where CLASSDATE between '{0}' and '{1}' group by CLASSDATE ", DateTime.Now.AddDays(-10).ToString("yyyy-MM-dd"), DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"));
return dalCommon.Query(sql).Tables[0];
}
/// <summary>
/// 获取不同的站合计数
/// </summary>
/// <returns></returns>
public DataTable GetDiffStaSum11()
{
string sql = string.Format(@"select t.cash-s.cash cash,t.incash-s.INCASH incash,t.cc-s.CASHRECCOUNT cc,t.payincash-s.payincash pch,t.pcc-s.PAYRECCOUNT pcc,t.CLASSDATE from
(select stano, SUM(case when PAYTYPE not in(22,23) then cash else 0 end) cash,SUM(case when PAYTYPE not in(22,23) then incash else 0 end) incash,sum(case when PAYTYPE in(22,23) then 0 else 1 end) cc,
SUM(paycash) payincash,sum(case when PAYTYPE in(22,23) then 1 else 0 end) pcc,
CLASSDATE from out_port where CLASSDATE between '{0}' and '{1}' group by CLASSDATE,stano) t left join
(select stano,CASH,INCASH,CASHRECCOUNT,CLASSDATE,PAYINCASH,PAYRECCOUNT from STATIONSQUADSUM ct where CLASSDATE
between '{0}' and '{1}' and PORTTYPE in(2,4) and
seqno=(select MAX(seqno) from STATIONSQUADSUM where ct.CLASSDATE=CLASSDATE )) s
on s.CLASSDATE=t.CLASSDATE and s.STANO=t.STANO", DateTime.Now.AddDays(-10).ToString("yyyy-MM-dd"), DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"));
return dalCommon.Query(sql).Tables[0];
}
/// <summary>
/// 获取不同的站合计数
/// </summary>
/// <returns></returns>
public DataTable GetDiffStaSum()
{
string sql = string.Format(@"select t.cash-s.cash cash,t.incash-s.INCASH incash,t.cc-s.CASHRECCOUNT cc,t.payincash-s.payincash pch,t.pcc-s.PAYRECCOUNT pcc,t.CLASSDATE from
(select stano, SUM(case when PAYTYPE not in(20,22,23) then cash else 0 end) cash,SUM(case when PAYTYPE not in(20,22,23) then incash else 0 end) incash,sum(case when PAYTYPE in(20,22,23) then 0 else 1 end) cc,
SUM(paycash) payincash,sum(case when PAYTYPE in(20,22,23) then 1 else 0 end) pcc,
CLASSDATE from out_port where CLASSDATE between '{0}' and '{1}' group by CLASSDATE,stano) t left join
(select stano,CASH,INCASH,CASHRECCOUNT,CLASSDATE,PAYINCASH+MPAYINCASH as PAYINCASH,PAYRECCOUNT+MPAYRECCOUNT as PAYRECCOUNT from STATIONSQUADSUM ct where CLASSDATE
between '{0}' and '{1}' and PORTTYPE in(2,4) and
seqno=(select MAX(seqno) from STATIONSQUADSUM where ct.CLASSDATE=CLASSDATE )) s
on s.CLASSDATE=t.CLASSDATE and s.STANO=t.STANO", DateTime.Now.AddDays(-10).ToString("yyyy-MM-dd"), DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"));
return dalCommon.Query(sql).Tables[0];
}
//public DataTable Get
internal DataTable getimg(string sql)
{
return dalCommon.Query(sql).Tables[0];
}
internal int GetBXJDutyCC(string classdate, int portno)
{
string sql = string.Format(@"select count(*) from DUTY_TABLE d left join DUTY_TABLE_pre dd
on d.VERID=dd.verid and d.AREANO=dd.areano and d.ROADNO=dd.roadno
and d.STANO=dd.stano and d.PORTNO=dd.portno and d.MANNO=dd.manno
and d.CLASSNO=dd.classno and d.CLASSDATE=dd.classdate where d.CLASSDATE='{0}' and d.PORTNO={1} and dd.verid is null", classdate, portno);
return Convert.ToInt32(dalCommon.GetSingle(sql));
}
internal bool GetWFList(string dtStr)
{
string sql = string.Format(@"select count(*) reccount FROM (select ROADNO,STANO,PORTNO,DT,PAYCARDNO,ILISTNO,paytac,idt
from OUT_PORT WHERE CLASSDATE='{0}' AND (FLAG & 4 <> 0) ) A LEFT JOIN
(select LISTNO,dt,paycardno from OUT_PORT WHERE CLASSDATE between '{1}' and '{0}') B
ON A.Idt=B.dt and a.paycardno=b.paycardno
WHERE B.LISTNO IS NULL", dtStr, Convert.ToDateTime(dtStr).AddDays(-1).ToString("yyyy-MM-dd"));
return Convert.ToInt32(dalCommon.GetSingle(sql)) > 0;
}
internal bool GetGantrySum(string dtStr)
{
string sql = string.Format(@"select count(1) from STATIONSQUADSUM where porttype=8 and CLASSDATE='{0}'", dtStr);
return Convert.ToInt32(dalCommon.GetSingle(sql)) > 0;
}
internal bool IsExistGantry(string strwhere)
{
string sql = string.Format(@"select count(1) from GANTRY_TABLE where STANO='{0}' and VIRTUALTYPE=0", strwhere);
return Convert.ToInt32(dalCommon.GetSingle(sql)) > 0;
}
public DataTable GetNameTable(string strwhere)
{
string sql = string.Format(@"select AREANO,ROADNO,STANO,ROADNAME,STANAME from name_table where STANO='{0}' and STATYPE=1", strwhere);
return dalCommon.Query(sql).Tables[0];
}
}
}