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.

522 lines
24 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL.CardBill;
using BLL.Sys;
using CPCBILLSYS.Common;
using Ext.Net;
using Model;
using Newtonsoft.Json.Linq;
namespace CPCBILLSYS
{
public partial class CPCBalanceMg : System.Web.UI.Page
{
LogClass log = new LogClass();
/// <summary>
/// 基础
/// </summary>
DictionaryBLL dicbll = new DictionaryBLL(CommonHelper._dbType, CommonHelper.DbConStr);
/// <summary>
/// cpc
/// </summary>
CPCCardBLL cpcbll = new CPCCardBLL(CommonHelper._dbType, CommonHelper.DbConStr);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (CommonHelper._userType == "3")
{
if (string.IsNullOrEmpty(Request.QueryString["userId"]) || string.IsNullOrEmpty(Request.QueryString["userName"]))
{
Response.Write("<script>alert('错误的访问!');window.location.href='http://10.15.0.36:9996'</script>");
return;
}
try
{
hdUserId.Value = Request.QueryString["userId"].ToString();
hdMan.Value = HttpUtility.UrlDecode(Request.QueryString["userName"].ToString());
}
catch
{
Response.Write("<script>alert('数据库访问异常!');window.location.href='http://10.15.0.36:9996'</script>");
return;
}
//hdUserId.Value = "1";
//hdMan.Value = "武俊涛";
}
else
{
if (Session["UserID"] == null || Session["SysID"] == null || Session["MAN"] == null)
{
Response.Write("<script>alert('错误的访问!');window.location.href='../Default.aspx'</script>");
return;
}
hdUserId.Value = Session["UserID"].ToString();
hdMan.Value = Session["MAN"].ToString();
}
s_txtStartDt.Value = DateTime.Now.AddDays(-1);
s_txtStartDt.MaxDate = DateTime.Now.AddDays(-1);
s_txtStDt.Value = DateTime.Now.AddDays(-1);
s_txtStDt.MaxDate = DateTime.Now.AddDays(-1);
s_txtEndDt.Value = DateTime.Now.AddDays(1);
s_txtEndDt.MaxDate = DateTime.Now.AddDays(1);
StCardInfo.AutoLoadParams.Add(new Ext.Net.Parameter("Start", "0"));
StCardInfo.AutoLoadParams.Add(new Ext.Net.Parameter("Limit", Paging.PageSize.ToString()));
BindSub();
BindClassNo();
if (CommonHelper._userType != "1")
{
s_txtStartDt.Hide();
btnBalance.Hide();
Button1.Hide();
btnFzBalance.Hide();
}
}
}
/// <summary>
/// 绑定站
/// </summary>
public void BindSub()
{
if (CommonHelper._userType == "1")
{
//s_cmbSubcom.Disabled = true;
//s_cmbSta.Disabled = true;
s_cmbSubcom.Hidden = true;
s_cmbSta.Hidden = true;
}
else
{
storeSubCompany.DataSource = dicbll.GetSubCompany("");
}
storeSubCompany.DataBind();
}
public void BindClassNo()
{
stClassNo.DataSource = dicbll.GetClass("");
stClassNo.DataBind();
}
protected void s_cmbSubcom_Select(object sender, Ext.Net.DirectEventArgs e)
{
stSta.DataSource = dicbll.GetStaAllInfo(" and SUBCOMNO='" + s_cmbSubcom.SelectedItem.Value + "'");
stSta.DataBind();
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, Ext.Net.DirectEventArgs e)
{
string sqlwhere = string.Empty;
try
{
if (s_txtStartDt.Value != null || !string.IsNullOrEmpty(s_txtStartDt.Value.ToString()))
{
if (CommonHelper._dbType == "1")
{
sqlwhere += "and classdate>='" + Convert.ToDateTime(s_txtStDt.Value).ToString("yyyy-MM-dd") + "' and classdate<='" + Convert.ToDateTime(s_txtEndDt.Value).ToString("yyyy-MM-dd") + "'";
}
else if (CommonHelper._dbType == "4")
{
sqlwhere += " and classdate>=DATE_FORMAT('" + Convert.ToDateTime(s_txtStDt.Value).ToString("yyyy-MM-dd") + "','%Y-%m-%d') and classdate<=DATE_FORMAT('" + Convert.ToDateTime(s_txtEndDt.Value).ToString("yyyy-MM-dd") + "','%Y-%m-%d')";
}
else
{
sqlwhere += "and classdate>=to_date('" + Convert.ToDateTime(s_txtStDt.Value).ToString("yyyy-MM-dd") + "','yyyy-MM-dd') and classdate<=to_date('" + Convert.ToDateTime(s_txtEndDt.Value).ToString("yyyy-MM-dd") + "','yyyy-MM-dd')";
}
}
if (CommonHelper._userType == "1")
{
sqlwhere += " and stano='" + CommonHelper._userStaNo + "'";
DataTable dt = cpcbll.GetCPCBalanceSum(sqlwhere);
string lyct = dt.Rows[0]["LYCT"].ToString();
string sjct = dt.Rows[0]["SJCT"].ToString();
string badct = dt.Rows[0]["DJBADCT"].ToString();
string lostct = dt.Rows[0]["DJLOSTCT"].ToString();
string morect = dt.Rows[0]["DJMORECT"].ToString();
lbShow.Text = "【CPC领用总量】" + lyct + "【CPC上缴总量】" + sjct + "【盈亏数量】:" + ((int.Parse(sjct) + int.Parse(morect)) - (int.Parse(lyct) + int.Parse(badct) + int.Parse(lostct))) + "";
}
}
catch
{
lbShow.Text = "【CPC领用总量】0【CPC上缴总量】0【盈亏数量】0";
}
wdSearch.Hide();
Paging.SetPageIndex(1);
StCardInfo.DataBind();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void StCardInfo_RefreshData(object sender, Ext.Net.StoreRefreshDataEventArgs e)
{
int start; int limit;
if (!string.IsNullOrEmpty(e.Parameters["Start"]) && !string.IsNullOrEmpty(e.Parameters["Limit"]))
{
start = int.Parse(e.Parameters["Start"]);
limit = int.Parse(e.Parameters["Limit"]);
}
else
{
start = e.Start;
limit = e.Limit;
}
if (s_txtStDt.Value == null || string.IsNullOrEmpty(s_txtEndDt.Value.ToString()))
{
CommonHelper.MsgShowInfo("请选择查询日期!");
return;
}
else
{
if (Convert.ToDateTime(s_txtStDt.Value.ToString()) > Convert.ToDateTime(s_txtEndDt.Value.ToString()))
{
CommonHelper.MsgShowInfo("起始日期不大于结束日期!");
return;
}
}
string sqlwhere = string.Empty;
if (CommonHelper._dbType == "1")
{
sqlwhere += "and classdate>='" + Convert.ToDateTime(s_txtStDt.Value).ToString("yyyy-MM-dd") + "' and classdate<='" + Convert.ToDateTime(s_txtEndDt.Value).ToString("yyyy-MM-dd") + "'";
}
else if (CommonHelper._dbType == "4")
{
sqlwhere += " and classdate>=DATE_FORMAT('" + Convert.ToDateTime(s_txtStDt.Value).ToString("yyyy-MM-dd") + "','%Y-%m-%d') and classdate<=DATE_FORMAT('" + Convert.ToDateTime(s_txtEndDt.Value).ToString("yyyy-MM-dd") + "','%Y-%m-%d')";
}
else
{
sqlwhere += "and classdate>=to_date('" + Convert.ToDateTime(s_txtStDt.Value).ToString("yyyy-MM-dd") + "','yyyy-MM-dd') and classdate<=to_date('" + Convert.ToDateTime(s_txtEndDt.Value).ToString("yyyy-MM-dd") + "','yyyy-MM-dd')";
}
if (s_cmbClassNo.SelectedItem.Value != null && !string.IsNullOrEmpty(s_cmbClassNo.SelectedItem.Value))
{
sqlwhere += " and CLASSNO='" + s_cmbClassNo.SelectedItem.Value + "'";
}
if (s_cmbSubcom.SelectedItem.Value != null && !string.IsNullOrEmpty(s_cmbSubcom.SelectedItem.Value))
{
sqlwhere += " and SUBCOMNO='" + s_cmbSubcom.SelectedItem.Value + "'";
}
if (s_cmbSta.SelectedItem.Value != null && !string.IsNullOrEmpty(s_cmbSta.SelectedItem.Value))
{
sqlwhere += " and STANO='" + s_cmbSta.SelectedItem.Value + "'";
}
int ct = 0;
DataTable dt = cpcbll.GetBalanceLst(sqlwhere, start + 1, start + limit, out ct);
if (dt.Rows.Count > 0)
{
e.Total = ct;
List<CPCBalanceModel> lst = cpcbll.GetBlanceLstByFlag(dt);
StCardInfo.DataSource = lst;
}
else
{
if (CommonHelper._userType == "1")
{
CommonHelper.MsgShowInfo("请先生成平衡数据!");
}
}
StCardInfo.DataBind();
}
/// <summary>
/// 生成平衡单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBalance_Click(object sender, Ext.Net.DirectEventArgs e)
{
string sqlwhere = string.Empty;
if (hdUserId.Value == null || hdMan.Value == null)
{
CommonHelper.MsgShowInfo("页面过期,请重新登录!");
return;
}
if (string.IsNullOrEmpty(hdUserId.Value.ToString()) || hdUserId.Value.ToString().ToLower() == "admin")
{
CommonHelper.MsgShowInfo("该用户无生成平衡单权限,请用该站监控或者票管账户登录");
return;
}
if (!string.IsNullOrEmpty(s_txtStartDt.Value.ToString()))
{
if (CommonHelper._dbType == "1")
{
sqlwhere += " and classdate='" + s_txtStartDt.Value + "'";
}
else if (CommonHelper._dbType == "4")
{
//DATE_FORMAT
sqlwhere += " and classdate=date_format('" + Convert.ToDateTime(s_txtStartDt.Value).ToString("yyyy-MM-dd") + "','%Y-%m-%d')";
}
else
{
sqlwhere += " and classdate=to_date('" + s_txtStartDt.Value + "','yyyy-MM-dd HH24:mi:ss')";
}
}
else
{
CommonHelper.MsgShowInfo("请选择统计日");
return;
}
if (s_cmbClassNo.SelectedItem.Value != null && string.IsNullOrEmpty(s_cmbClassNo.SelectedItem.Value))
{
sqlwhere += " and CLASSNO='" + s_cmbClassNo.SelectedItem.Value + "'";
}
if (CommonHelper._userType == "1")
{
sqlwhere += " and stano=" + CommonHelper._userStaNo + "";
}
else
{
if (s_cmbSta.SelectedItem.Value != null && !string.IsNullOrEmpty(s_cmbSta.SelectedItem.Value.ToString()))
{
sqlwhere += " and stano='" + s_cmbSta.SelectedItem.Value + "'";
}
}
try
{
bool f = cpcbll.CreatePreBlance(sqlwhere, hdUserId.Value.ToString(), hdMan.Value.ToString(), CommonHelper._userType);
if (f)
{
CommonHelper.MsgShowInfo("生成预交易平衡信息生成成功");
log.Info("btnBalance_Click", "生成预交易平衡信息生成成功");
}
else
{
CommonHelper.MsgShowInfo("生成预交易平衡信息生成失败,请重新点击生成");
log.Info("btnBalance_Click", "生成预交易平衡信息生成失败,请重新点击生成");
}
}
catch (Exception ex)
{
CommonHelper.MsgShowInfo("生成预交易平衡信息异常:<font color='red'>" + ex.Message + "</font>");
log.Info("btnBalance_Click", ex.Message);
}
StCardInfo.DataBind();
}
/// <summary>
/// 生成平衡单-封站
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnFzBalance_Click(object sender, Ext.Net.DirectEventArgs e)
{
string sqlwhere = string.Empty;
if (hdUserId.Value == null || hdMan.Value == null)
{
CommonHelper.MsgShowInfo("页面过期,请重新登录!");
return;
}
if (string.IsNullOrEmpty(hdUserId.Value.ToString()) || hdUserId.Value.ToString().ToLower() == "admin")
{
CommonHelper.MsgShowInfo("该用户无生成平衡单权限,请用该站监控或者票管账户登录");
return;
}
if (!string.IsNullOrEmpty(s_txtStartDt.Value.ToString()))
{
sqlwhere += " and classdate='" + s_txtStartDt.Value + "'";
}
else
{
CommonHelper.MsgShowInfo("请选择统计日");
return;
}
try
{
bool f = cpcbll.CreatePreBlanceByFz(CommonHelper._userStaNo, s_txtStartDt.Value.ToString(), hdUserId.Value.ToString(), hdMan.Value.ToString(), CommonHelper._userType);
if (f)
{
CommonHelper.MsgShowInfo("生成预交易平衡信息生成成功");
log.Info("btnBalance_Click", "生成预交易平衡信息生成成功");
}
else
{
CommonHelper.MsgShowInfo("生成预交易平衡信息生成失败,请重新点击生成");
log.Info("btnBalance_Click", "生成预交易平衡信息生成失败,请重新点击生成");
}
}
catch (Exception ex)
{
CommonHelper.MsgShowInfo("生成预交易平衡信息生成异常,联系软件维护人员");
log.Info("btnBalance_Click", ex.Message);
}
StCardInfo.DataBind();
}
/// <summary>
/// 手工登记
/// 本人只能更改本人的
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[DirectMethod]
public void DJEidtFor(string str)
{
if (hdUserId.Value == null || hdMan.Value == null)
{
CommonHelper.MsgShowInfo("页面过期,请重新登录!");
return;
}
if (string.IsNullOrEmpty(str))
{
CommonHelper.MsgShowInfo("请选择操作的行");
return;
}
if (hdMKDt.Value == null || hdMKDt.Value.ToString() == "" || hdoldDt.Value == null || hdoldManNo.Value == null)
{
CommonHelper.MsgShowInfo("数据已过期,请重新选择修改数据...");
return;
}
try
{
JObject obj = JObject.Parse(str.Trim());
string subcomno = obj["SUBCOMNO"].ToString();
string roadno = obj["ROADNO"].ToString();
string stano = obj["STANO"].ToString();
string classdate = Convert.ToDateTime(obj["CLASSDATE"].ToString()).ToString("yyyy-MM-dd");
string porttype = obj["PORTTYPE"].ToString();
string classno = obj["CLASSNO"].ToString();
string manno = obj["MANNO"].ToString();
if (obj["ADMANNO"] != null && !string.IsNullOrEmpty(obj["ADMANNO"].ToString()) && obj["USERTYPE"] != null)
{
if (!obj["ADMANNO"].ToString().Equals(hdUserId.Value.ToString()) || !obj["USERTYPE"].ToString().Equals(CommonHelper._userType))
{
CommonHelper.MsgShowInfo("非本人/非本单位录入数据,不允许更改...");
return;
}
}
else
{
CommonHelper.MsgShowInfo("票据平衡数据数据不完整,联系维护人员...");
return;
}
DataTable dt;
//启用修改指令
//if (CommonHelper._updateflag == CommonHelper._UpdateOrder_Flag.ToString())
//{
// string djDt = hdMKDt.Value.ToString();
// TimeSpan ts = DateTime.Now - Convert.ToDateTime(djDt);
// if ((ts.TotalMinutes > 60 && ts.Days == 0) || ts.Days >= 1)
// {
// if (!CommonHelper.CheckUpdate(out dt, Convert.ToDateTime(hdMKDt.Value).Date))
// {
// CommonHelper.MsgShowInfo("未收到-修改指令,不允许更改数据,请提交修改申请...");
// return;
// }
// }
//}
//else
//{
// string djDt = hdMKDt.Value.ToString();
// TimeSpan ts = DateTime.Now - Convert.ToDateTime(djDt);
// if ((ts.Hours > 1 && ts.Days == 0) || ts.Days >= 1)
// {
// CommonHelper.MsgShowInfo("数据已超过1小时不允许修改...");
// return;
// }
//}
CB_CARDBALANCE_TABLE mdl = new CB_CARDBALANCE_TABLE();
mdl.STANO = int.Parse(stano);
mdl.PORTTYPE = int.Parse(porttype);
mdl.MANNO = int.Parse(manno);
mdl.CLASSNO = int.Parse(classno);
mdl.CLASSDATE = Convert.ToDateTime(classdate);
//mdl.MKDT = Convert.ToDateTime(hdMKDt.Value.ToString());
mdl.DJCPCCT = string.IsNullOrEmpty(txtDjCPCCt.Text.Trim()) ? 0 : int.Parse(txtDjCPCCt.Text.Trim());
mdl.DJETCCT = string.IsNullOrEmpty(txtDjETCCt.Text.Trim()) ? 0 : int.Parse(txtDjETCCt.Text.Trim());
mdl.DJALLCT = string.IsNullOrEmpty(txtDjAllCt.Text.Trim()) ? 0 : int.Parse(txtDjAllCt.Text.Trim());
mdl.DJBADCT = string.IsNullOrEmpty(txtDjBadCt.Text.Trim()) ? 0 : int.Parse(txtDjBadCt.Text.Trim());
mdl.DJLOSTCT = string.IsNullOrEmpty(txtDjLostCt.Text.Trim()) ? 0 : int.Parse(txtDjLostCt.Text.Trim());
mdl.DJLYCT = string.IsNullOrEmpty(txtDjLyCt.Text.Trim()) ? 0 : int.Parse(txtDjLyCt.Text.Trim());
mdl.DJMORECT = string.IsNullOrEmpty(txtDjMoreCt.Text.Trim()) ? 0 : int.Parse(txtDjMoreCt.Text.Trim());
mdl.DJOTHERCT = string.IsNullOrEmpty(txtDjOhterCt.Text.Trim()) ? 0 : int.Parse(txtDjOhterCt.Text.Trim());
mdl.DJPARPERCT = string.IsNullOrEmpty(txtDjParperCt.Text.Trim()) ? 0 : int.Parse(txtDjParperCt.Text.Trim());
mdl.DJSJCT = string.IsNullOrEmpty(txtDjSjCt.Text.Trim()) ? 0 : int.Parse(txtDjSjCt.Text.Trim());
mdl.DATEMARK = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
mdl.ADMANNO = int.Parse(hdUserId.Value.ToString());
mdl.ADMAN = hdMan.Value.ToString();
mdl.DJLESSCT = string.IsNullOrEmpty(txtDjLessCt.Text.Trim()) ? 0 : int.Parse(txtDjLessCt.Text.Trim());
mdl.DJBRKCARCT = string.IsNullOrEmpty(txtDjBrkCt.Text.Trim()) ? 0 : int.Parse(txtDjBrkCt.Text.Trim());
//mdl.USERTYPE = int.Parse(CommonHelper._userType);
if (cpcbll.UpdateDjBalance(mdl, CreateLog(subcomno, classdate, stano, porttype, manno, classno)))
{
CommonHelper.MsgShowInfo("CPC平衡人工登记成功");
}
else
{
CommonHelper.MsgShowInfo("CPC平衡人工登记失败请重新操作");
}
}
catch (Exception ex)
{
CommonHelper.MsgShowInfo("CPC平衡人工登记异常:" + ex.Message);
}
StCardInfo.DataBind();
}
/// <summary>
/// 构建日志(参数:主键值)
/// </summary>
/// <param name="verid"></param>
/// <param name="classdate"></param>
/// <param name="stano"></param>
/// <param name="porttype"></param>
/// <param name="manno"></param>
/// <param name="classno"></param>
/// <returns></returns>
public CB_OP_LOG CreateLog(string subcomno, string classdate, string stano, string porttype, string manno, string classno)
{
//CLASSDATE=@CLASSDATE and VERID=@VERID and STANO=@STANO and PORTTYPE=@PORTTYPE and MANNO=@MANNO and CLASSNO=@CLASSNO
bool f = false;
CB_OP_LOG mdl = new CB_OP_LOG();
try
{
string n_classdt = "00000000" + Convert.ToDateTime(classdate).ToString("yyyyMMdd");
string n_stano = "0000" + stano;
string n_potytype = "00" + porttype;
string n_manno = "0000000000000000" + manno;
string n_classno = "00" + classno;
string n_subcomno = "0000" + subcomno;
string keyNo = n_classdt.Substring(n_classdt.Length - 8) + n_stano.Substring(n_stano.Length - 4) + n_potytype.Substring(n_potytype.Length - 2) + n_manno.Substring(n_manno.Length - 16) + n_classno.Substring(n_classno.Length - 2);
mdl.KEYLISTNO = keyNo;//主键集合
mdl.ID = CommonHelper._Prmis_Cpc_balance + n_subcomno.Substring(n_subcomno.Length - 4) + n_stano.Substring(n_stano.Length - 4) + DateTime.Now.ToString("yyyyMMddHHmmss");
mdl.TBNAME = CommonHelper.GetTbNameByPrmisid(CommonHelper._Prmis_Cpc_balance);//对应的表名称
mdl.TYPE = CommonHelper._OpLog_Jx;//1-根据字典表解析KEYLISTNO 2-不需要解析
mdl.PRMISID = CommonHelper._Prmis_Cpc_balance;//模块号
mdl.SUBCOMNO = int.Parse(subcomno);
mdl.STANO = int.Parse(CommonHelper._userStaNo);
mdl.OPTYPE = 1;//产生日志类型 1-修改
mdl.OLDT = Convert.ToDateTime(hdoldDt.Value.ToString());
mdl.OLMANNO = int.Parse(hdoldManNo.Value.ToString());
mdl.OLMAN = hdoldMan.Value.ToString();
mdl.OLUSERTYPE = int.Parse(hdoldUType.Value.ToString());
mdl.DATETIME = DateTime.Now;
mdl.UPMANNO = int.Parse(hdUserId.Value.ToString());
mdl.UPMAN = hdMan.Value.ToString();
mdl.UPUSERTYPE = int.Parse(CommonHelper._userType);
mdl.BAK1 = 0;
mdl.BAK2 = 0;
mdl.BAK3 = 0;
mdl.BAK4 = string.Empty;
mdl.BAK5 = string.Empty;
mdl.BAK6 = string.Empty;
}
catch (Exception ex)
{
mdl = null;
}
return mdl;
}
}
}