using DevComponents.DotNetBar; using POS.Language.Language; using POSV.Component; using POSV.StoreBusiness; using POSV.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace POSV.Report { public partial class OperationLogForm : BusinessForm { public OperationLogForm() { InitializeComponent(); this.controlBox1.Text = LangProxy.ToLang("操作监控"); this.controlBox1.ShowApplicationVersion = false; } /// /// 操作记录 /// List logList = new List(); /// /// 操作汇总 /// List summaryLogList = new List(); public string workerNo = ""; public int PrintType = 1;//1操作记录,2操作汇总 protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (this.DesignMode) return; DefaultGridStyle.setDefaultGridStyle(this.logListTable); DefaultGridStyle.setDefaultGridStyle(this.summaryListTable); this.startPicker.Value = DateTime.Parse(Global.Instance.BusinessPlan.StartTimeSimple); this.endPicker.Value = DateTime.Parse(Global.Instance.BusinessPlan.EndTimeSimple); QueyTicket(); } private void BtnTimeClick(object sender, EventArgs e) { var obj = sender as ButtonX; var typeStr = obj.Tag as string; var type = (ReportQuickDate)Enum.Parse(typeof(ReportQuickDate), typeStr); var res = DateTimeUtils.CalculateBusinessPlanDate(type, this.startPicker.Value, this.endPicker.Value); this.startPicker.Value = res.Item1; this.endPicker.Value = res.Item2; QueyTicket(); } private void TabOnClick(object sender, EventArgs e) { try { var obj = sender as SuperTabItem; var name = obj.Tag as string; switch (name) { case "superTabItem1"://单品汇总 PrintType = 1; break; case "superTabItem2"://类别汇总 PrintType = 2; break; } QueyTicket(); } catch (Exception ex) { LOGGER.Error(ex); } } private void BtnExitClick(object sender, EventArgs e) { OnCloseTouchClick(sender, e); } private void BtnQueryClick(object sender, EventArgs e) { QueyTicket(); } public void QueyTicket() { workerNo = StringUtils.GetString(txtWorkNo.Text); if (!"".Equals(workerNo) && workerNo.Length < 5) { int length = 5 - workerNo.Length; for (int i = 0; i < length; i++) { workerNo = "0" + workerNo; } } switch (PrintType) { case 1: logList = getOperationLogList(workerNo, this.startPicker.Value.ToString("yyyy-MM-dd HH:mm:ss"), this.endPicker.Value.ToString("yyyy-MM-dd HH:mm:ss")); logListTable.PrimaryGrid.DataSource = logList; break; case 2: summaryLogList = getSummaryOperationLogList(workerNo, this.startPicker.Value.ToString("yyyy-MM-dd HH:mm:ss"), this.endPicker.Value.ToString("yyyy-MM-dd HH:mm:ss")); summaryListTable.PrimaryGrid.DataSource = summaryLogList; break; } } public List getOperationLogList(string workerNo, string startTime, string endTime) { List newList = new List(); ; try { using (var db = Global.Instance.OpenDataBase) { StringBuilder sqlBuld = new StringBuilder(); sqlBuld.Append(" select workerNo,shiftNo,shiftName,operationTime,type,typeTxt,memo "); sqlBuld.Append(" from pos_store_operation_log "); sqlBuld.Append(" where createDate >= '{0}' and createDate <= '{1}' "); if (!"".Equals(workerNo)) { sqlBuld.Append(" and workerNo = '" + workerNo + "' "); } sqlBuld.Append(" order by createDate desc"); string sql = string.Format(sqlBuld.ToString(), startTime, endTime); newList = db.Query(sql).ToList(); if (newList == null) { newList = new List(); } } } catch (Exception ex) { LOGGER.Error(ex); } return newList; } public List getSummaryOperationLogList(string workerNo, string startTime, string endTime) { List newList = new List(); ; try { using (var db = Global.Instance.OpenDataBase) { StringBuilder sqlBuld = new StringBuilder(); sqlBuld.Append(" select workerNo,typeTxt,count(id) as ext1 "); sqlBuld.Append(" from pos_store_operation_log "); sqlBuld.Append(" where createDate >= '{0}' and createDate <= '{1}' "); if (!"".Equals(workerNo)) { sqlBuld.Append(" and workerNo = '" + workerNo + "' "); } sqlBuld.Append(" group by workerNo,type "); string sql = string.Format(sqlBuld.ToString(), startTime, endTime); newList = db.Query(sql).ToList(); if (newList == null) { newList = new List(); } } } catch (Exception ex) { LOGGER.Error(ex); } return newList; } private void OnControlBoxCloseClick(object sender, EventArgs e) { OnCloseTouchClick(sender, e); } private void OnCloseTouchClick(object sender, EventArgs e) { //先关闭父窗体 if (this.Owner != null) { this.Owner.Close(); } //再关闭当前窗体 this.Close(); } private void OnControlBoxMinClick(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } } }