BaoKai_202508_Wms_Jingwang_.../WMS.FrmTR/FrmScheduling.cs

384 lines
14 KiB
C#
Raw Permalink Normal View History

2025-08-24 21:52:42 +08:00
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
{
/// <summary>
/// 排班MODEL
/// </summary>
SchedulingModel schedulingModel = new SchedulingModel();
/// <summary>
/// 排班集合
/// </summary>
List<SchedulingModel> schedulingList = new List<SchedulingModel>();
/// <summary>
/// 增加集合
/// </summary>
List<SchedulingModel> addList = new List<SchedulingModel>();
/// <summary>
/// 删除集合
/// </summary>
List<SchedulingModel> delList = new List<SchedulingModel>();
/// <summary>
/// 修改集合
/// </summary>
List<SchedulingModel> upList = new List<SchedulingModel>();
/// <summary>
/// 业务类型
/// </summary>
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<DataTable>(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<UserDataModel> userModelList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserDataModel>>(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<List<SchedulingModel>>(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
/// <summary>
/// 新增按钮
/// </summary>
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);
}
/// <summary>
/// 保存按钮
/// </summary>
public void Save()
{
FrmOperator(workflag);
}
/// <summary>
/// 作废按钮
/// </summary>
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();
}
}
}
}
/// <summary>
/// 修改按钮
/// </summary>
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);
}
/// <summary>
/// 刷新按钮
/// </summary>
public void Refresh()
{
xtraTabControl1.SelectedTabPage = PageSel;
PageWork.PageEnabled = false;
}
/// <summary>
/// 添加排班
/// </summary>
public void Confirm()
{
//if (workflag == 3)
//{
// return;
//}
//DicSchedulingMan.t_dictonary_ButtonClick(null, null);
}
/// <summary>
/// 删除排班
/// </summary>
public void Clear()
{
}
/// <summary>
/// 查询按钮
/// </summary>
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;
}
}
/// <summary>
/// 导出按钮
/// </summary>
public void Export()
{
}
/// <summary>
/// 备注
/// </summary>
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
/// <summary>
/// 操作(增、改、删)
/// </summary>
/// <param name="flag">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();
}
}
}
}