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; using WMS.Frm.Base; using WMS.Model.SystemManage; using WMS.Common; using WMS.Base.WebService; using WMS.Ctrl; using WMS.Model.Base; using DevExpress.XtraGrid.Columns; using DevExpress.XtraEditors.Repository; using WMS.Frm; using WMS.FrmBase; namespace WMS.FrmSystems { public partial class FrmScheduling : FormBase { /// /// 排班MODEL /// SchedulingModel schedulingModel = new SchedulingModel(); /// /// 排班集合 /// List schedulingList = new List(); /// /// 增加集合 /// List addList = new List(); /// /// 删除集合 /// List delList = new List(); /// /// 修改集合 /// List upList = new List(); /// /// 业务类型 /// int workflag = 3;//0 增加 1 修改 2 删除 ; public FrmScheduling() { InitializeComponent(); } private void FrmScheduling_Load(object sender, EventArgs e) { LEPKind.LoadData(); LEPStoID.LoadData(); LEPStoSel.LoadData(); LEPWorkType.LoadData(); BindLep(); BSTab.DataSource = new SchedulingModel() { S_DATE_STAR = DateTime.Now.AddMonths(-1), S_DATE_END = DateTime.Now }; BindGrid(BSTab.DataSource as SchedulingModel); PageWork.PageEnabled = false; } private void BindLep() { try { string err = ""; string strResult = WebLockConfig.Instance.Common.GetCustomCtrlData("t_sys_dictionary_tab", "VC_CHAR_VALUE", "VC_DICTIONARY_NAME", " VC_DICTIONARY_TYPE = 'work_system' and c_flag = '1'", ""); DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject(strResult); repositoryItemLookUpEditKindSel.DataSource = dt; repositoryItemLookUpEditKindWork.DataSource = dt; repositoryItemLookUpEditKindSel.ValueMember = "VC_DICTIONARY_ID"; repositoryItemLookUpEditKindSel.DisplayMember = "VC_CHAR_VALUE"; repositoryItemLookUpEditKindWork.ValueMember = "VC_DICTIONARY_ID"; repositoryItemLookUpEditKindWork.DisplayMember = "VC_CHAR_VALUE"; string userList = WebLockConfig.Instance.WebSysUsers.GetUserInfo(ref err); List userModelList = Newtonsoft.Json.JsonConvert.DeserializeObject>(userList); repositoryItemLookUpEdit3.DataSource = userModelList; repositoryItemLookUpEdit3.DisplayMember = "NAME"; repositoryItemLookUpEdit3.ValueMember = "USER_ID"; } catch (Exception e) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"+e.Message); } } private void BindGrid(SchedulingModel model) { string strScheduling = Newtonsoft.Json.JsonConvert.SerializeObject(model); string Source = WebLockConfig.Instance.WebScheduling.execSchedulingGetList(strScheduling); schedulingList = Newtonsoft.Json.JsonConvert.DeserializeObject>(Source); GCScheduling.DataSource = schedulingList; GVScheduling.RefreshData(); } private void GVScheduling_DoubleClick(object sender, EventArgs e) { if (GVScheduling.FocusedRowHandle < 0) { return; } schedulingModel = GVScheduling.GetFocusedRow() as SchedulingModel; BSWork.DataSource = schedulingModel; PageWork.PageEnabled = true; xtraTabControl1.SelectedTabPage = PageWork; } private void GVSchedulingWork_Click(object sender, EventArgs e) { if (GVSchedulingWork.FocusedRowHandle < 0) { return; } schedulingModel = GVSchedulingWork.GetFocusedRow() as SchedulingModel; BSWork.DataSource = schedulingModel; if (workflag == 1 && upList.Contains(schedulingModel)) { upList.Add(schedulingModel); } } #region 以下是继承的按钮事件 /// /// 新增按钮 /// public void Add() { DicSchedulingMan.SelectType = DataSlectType.MultiSelect; frmButtonItem["Save"].Enabled = true; PageWork.PageEnabled = true; xtraTabControl1.SelectedTabPage = PageWork; workflag = 0; schedulingModel = new SchedulingModel() { S_DATE = DateTime.Now, S_STORAGE = userData.STORAGE_ID, S_STORAGE_NAME = userData.STORAGE_NAME }; BSWork.DataSource = schedulingModel; BSWork.ResetBindings(true); } /// /// 保存按钮 /// public void Save() { FrmOperator(workflag); } /// /// 作废按钮 /// public void Del() { workflag = 2; if (xtraTabControl1.SelectedTabPage == PageSel) { if (GVScheduling.FocusedRowHandle > -1) { if (SystemCommon.ShowMessageBoxResult("确定作废此排班计划?") == System.Windows.Forms.DialogResult.Yes) { schedulingModel = GVScheduling.GetFocusedRow() as SchedulingModel; Save(); } } } else { if (GVSchedulingWork.FocusedRowHandle > -1) { if (SystemCommon.ShowMessageBoxResult("确定作废此排班计划?") == System.Windows.Forms.DialogResult.Yes) { schedulingModel = GVSchedulingWork.GetFocusedRow() as SchedulingModel; Save(); } } } } /// /// 修改按钮 /// public void Edit() { if (GVScheduling.FocusedRowHandle < 0) { return; } DicSchedulingMan.SelectType = DataSlectType.RadioSelect; frmButtonItem["Save"].Enabled = true; workflag = 1; PageWork.PageEnabled = true; xtraTabControl1.SelectedTabPage = PageWork; schedulingModel = GVScheduling.GetFocusedRow() as SchedulingModel; BSWork.DataSource = schedulingModel; BSWork.ResetBindings(true); } /// /// 刷新按钮 /// public void Refresh() { xtraTabControl1.SelectedTabPage = PageSel; PageWork.PageEnabled = false; } /// /// 添加排班 /// public void Confirm() { //if (workflag == 3) //{ // return; //} //DicSchedulingMan.t_dictonary_ButtonClick(null, null); } /// /// 删除排班 /// public void Clear() { } /// /// 查询按钮 /// public void Search() { if (xtraTabControl1.SelectedTabPage == PageSel) { BSTab.EndEdit(); schedulingModel = BSTab.DataSource as SchedulingModel; if (!string.IsNullOrEmpty(DicManSel.TextBoxFlag)) { schedulingModel.S_USER = DicManSel.TextBoxFlag; } BindGrid(schedulingModel); } else { xtraTabControl1.SelectedTabPage = PageSel; } } /// /// 导出按钮 /// public void Export() { } /// /// 备注 /// public void Remark() { //FrmSelectRemark frmSelectRemark = new FrmSelectRemark(); //frmSelectRemark.remarkType = "班组管理"; //frmSelectRemark.ShowDialog(); //if (frmSelectRemark.remarkType != "selected") { return; } //teamModel.REMARK = frmSelectRemark.baseRemarkDictionaryModel.CONTENT; //txtRemark.Text = frmSelectRemark.baseRemarkDictionaryModel.CONTENT; //txtRemark.ForeColor = System.Drawing.ColorTranslator.FromHtml(frmSelectRemark.baseRemarkDictionaryModel.COLOR_ID); } #endregion #region 操作(增、改、删) /// /// 操作(增、改、删) /// /// 0 新增 1修改 2删除 3停用 4启用/param> private void FrmOperator(int flag) { BSWork.EndEdit(); string errtxt = string.Empty; try { schedulingModel = BSWork.DataSource as SchedulingModel; schedulingModel.STATUS = "1"; if (schedulingModel.S_DATE == null || schedulingModel.S_DATE == DateTime.MinValue) { SystemCommon.ShowErrorMessageBox("请选择排班日期!"); return; } if (Convert.ToDateTime(timeStar.EditValue) > Convert.ToDateTime(timeEnd.EditValue)) { SystemCommon.ShowErrorMessageBox("起始时间大于终止时间!"); return; } if (flag == 0) { if (schedulingList == null || schedulingList.Count == 0) { return; } addList.Clear(); foreach (SchedulingModel pmodel in schedulingList) { schedulingModel.S_USER = pmodel.S_USER; schedulingModel.ID = WebLockConfig.Instance.WebScheduling.execGetSerialNum(); addList.Add(schedulingModel); } string strScheduling = Newtonsoft.Json.JsonConvert.SerializeObject(addList); errtxt = WebLockConfig.Instance.WebScheduling.execSchedulingAddList(strScheduling); } else if (flag == 1) { string strScheduling = Newtonsoft.Json.JsonConvert.SerializeObject(upList); errtxt = WebLockConfig.Instance.WebScheduling.execSchedulingUpdateList(strScheduling); } else if (flag == 2) { schedulingModel.STATUS = "0"; string strscheduling = Newtonsoft.Json.JsonConvert.SerializeObject(schedulingModel); errtxt = WebLockConfig.Instance.WebScheduling.execSchedulingUpdate(strscheduling); } if (!string.IsNullOrEmpty(errtxt)) { SystemCommon.ShowErrorMessageBox(errtxt); } else { SystemCommon.ShowInfoMessageBox("操作成功!"); addList.Clear(); upList.Clear(); frmButtonItem["Save"].Enabled = false; workflag = 3; xtraTabControl1.SelectedTabPage = PageSel; PageWork.PageEnabled = false; } } catch (Exception e) { SystemCommon.ShowInfoMessageBox("您的操作失败!" + Environment.NewLine + e.Message); } } #endregion private void DicSchedulingMan_Button_Click(object sender, EventArgs e) { if (DicSchedulingMan.SelectTable.Rows.Count > 0) { schedulingList.Clear(); BSWork.EndEdit(); schedulingModel = BSWork.DataSource as SchedulingModel; foreach (DataRow row in DicSchedulingMan.SelectTable.Rows) { SchedulingModel model = new SchedulingModel(); model.S_DATE = schedulingModel.S_DATE; model.S_ENDTIME = schedulingModel.S_ENDTIME; model.S_KIND = schedulingModel.S_KIND; model.S_STARTIME = schedulingModel.S_STARTIME; model.S_STORAGE = schedulingModel.S_STORAGE; model.S_STORAGE_NAME = schedulingModel.S_STORAGE_NAME; model.S_TYPE = schedulingModel.S_TYPE; model.S_TYPE_NAME = schedulingModel.S_TYPE_NAME; model.S_USER = row["user_id"].ToString(); model.S_USER_NAME = row["name"].ToString(); schedulingList.Add(model); } GCSchedulingWork.DataSource = schedulingList; GVSchedulingWork.RefreshData(); } } } }