123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403 |
- using CCWin;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using WCS_Client.Models;
- using WCS_Client.UC;
- using WCS_Client.Utility;
- namespace WCS_Client.From
- {
- public partial class Form_Task : CCSkinMain
- {
- DataTable _dt;
- DataRow _currentDr;
- public Form_Task()
- {
- InitializeComponent();
- Bind();
- SelectedRow(true);
- if (_currentDr != null)
- {
- BindingDataDtl(_currentDr["TASK_ID"].ToString());
- }
- }
- private static Form_Task childFromInstanc;
- public static Form_Task ChildFromInstanc
- {
- get
- {
- if (childFromInstanc == null || childFromInstanc.IsDisposed)
- {
- childFromInstanc = new Form_Task();
- }
- return childFromInstanc;
- }
- }
- //绑定数据
- private void Bind()
- {
- string sqlstr = string.Format(@"select t.*,m.MEP_MAPPINGCHNAME task_comtypech,me.MEP_MAPPINGCHNAME task_wkstatusch from dbo.WCS_TASK t
- left join WCS_MAPPINGENTRY m on t.task_comtype = m.MEP_MAPPINGNO and m.MEP_MAPPINGTYPE = 'COMTYPE'
- left join WCS_MAPPINGENTRY me on t.task_wkstatus = me.MEP_MAPPINGNO and me.MEP_MAPPINGTYPE = 'WkStatus' ");
- PageData pd = QueryPageDataMethods(1, 10000,sqlstr);
- if (pd != null)
- {
- _dt = pd.Dt;
- dgvTask.DataSource = _dt;
- }
- else
- {
- if (_dt != null) _dt.Clear();
- }
- }
- //获取数据集
- private PageData QueryPageDataMethods(int PageIndex, int PageSize,string sqlstr)
- {
- string _Orderby = " task_no asc";
- PageData pd = BaseWorkflow.QueryPageData(sqlstr, _Orderby, new List<string>(), PageIndex, PageSize);
- return pd;
- }
- private void BtnRefresh_Click(object sender, EventArgs e)
- {
- Bind();
- }
- private void dgvTask_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
- {
- SelectedRow(true);
- BindingDataDtl(_currentDr["TASK_ID"].ToString());
- }
- protected virtual bool SelectedRow(bool isFrist)
- {
- _currentDr = GetDgvRow("TASK_ID");
- if (_currentDr == null)
- {
- if (isFrist == false)
- {
- MessageUtil.ShowWarning("请选中行!!!");
- }
- return false;
- }
- return true;
- }
- public DataRow GetDgvRow(string cellName)
- {
- try
- {
- if (dgvTask.CurrentCell == null) return null;
- if (dgvTask.CurrentCell.RowIndex >= 0)
- {
- string no = Convert.ToString(dgvTask.Rows[dgvTask.CurrentCell.RowIndex].Cells[cellName].Value);
- return _dt.Select(cellName + "='" + no + "'")[0];
- }
- return null;
- }
- catch (Exception ex)
- {
- return null;
- }
- }
- DataTable _dtdtl = null;
- private void BindingDataDtl(string task_Id)
- {
- string _SQLText = @"SELECT id,parentid,taskno,posidcur,posidnext,description,notes,to_char(executedate,'yyyy-MM-dd hh24:mi:ss') executedate FROM wcs_task_dtl where parentid='" + task_Id+"'";
- string _Orderby = " executedate asc";
- PageData pd = BaseWorkflow.QueryPageData(_SQLText, _Orderby, new List<string>(), 1, 10000);
- if (pd == null)
- {
- if (_dtdtl != null) _dtdtl.Clear();
- }
- else
- {
- _dtdtl = pd.Dt;
- dgvTaskdtl.DataSource = pd.Dt;
- }
- }
- private void sknBinResetSrm_Click(object sender, EventArgs e)
- {
- if (_currentDr == null)
- {
- MessageBox.Show("请选择手动处理的任务。");
- }
- else
- {
- int taskid = Convert.ToInt32(_currentDr["TASK_NO"].ToString());
- string taskno = _currentDr["TASK_NO"].ToString();
- DialogResult dr = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要执行[重下堆垛机]吗(谨慎操作)?", taskno));
- if (dr != DialogResult.Yes) return;
- string result= BaseWorkflow.UpdateTask(taskid, TaskStatusType.重下堆垛机);
- MessageBox.Show(result);
- Bind();
- }
- }
- private void sknBtnOnMaterResetAGV_Click(object sender, EventArgs e)
- {
- if (_currentDr == null)
- {
- MessageBox.Show("请选择手动处理的任务。");
- }
- else
- {
- int taskid = Convert.ToInt32(_currentDr["TASK_NO"].ToString());
- string taskno = _currentDr["TASK_NO"].ToString();
- DialogResult dr = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要执行[重下RGV上料]吗(谨慎操作)?", taskno));
- if (dr != DialogResult.Yes) return;
- string result = BaseWorkflow.UpdateTask(taskid, TaskStatusType.重下RGV上料);
- MessageBox.Show(result);
- Bind();
- }
- }
- private void sknBinUpMaterResetAGV_Click(object sender, EventArgs e)
- {
- if (_currentDr == null)
- {
- MessageBox.Show("请选择手动处理的任务。");
- }
- else
- {
- int taskid = Convert.ToInt32(_currentDr["TASK_NO"].ToString());
- string taskno = _currentDr["TASK_NO"].ToString();
- DialogResult dr = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要执行[重下RGV下料]吗(谨慎操作)?", taskno));
- if (dr != DialogResult.Yes) return;
- string result = BaseWorkflow.UpdateTask(taskid, TaskStatusType.重下RGV下料);
- MessageBox.Show(result);
- Bind();
- }
- }
- private void sknBinTaskFinish_Click(object sender, EventArgs e)
- {
- if (_currentDr == null)
- {
- MessageBox.Show("请选择手动完成的任务。");
- }
- else
- {
- int taskno = Convert.ToInt32(_currentDr["TASK_NO"]);
- int tasktype = Convert.ToInt32(_currentDr["TASK_COMTYPE"]);
- DialogResult dr = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要执行[手动完成]吗(谨慎操作)?", taskno));
- if (dr != DialogResult.Yes) return;
- int temptype = 0;
- if (tasktype == 1)
- {
- temptype = 1;//入库完成
- }
- else if (tasktype == 2)
- {
- string errormsg = TryCachHelper.TryExecute((db)=>{
- var task = db.Queryable<Models.WCS_TASK>().First(v => v.TASK_NO == taskno);
- if (task != null && task.TASK_WKSTATUS == 5)//堆垛机出库完成
- {
- temptype = 2;
- string completeMsg = string.Empty;
- bool abc = BaseWorkflow.BZ_TASKCOMPLETE(taskno, temptype, out completeMsg);
- if (abc == false)
- {
- throw new Exception(completeMsg);
- }
- }
- temptype = 4;//出库完成
- });
- if (!string.IsNullOrWhiteSpace(errormsg))
- {
- MessageBox.Show(errormsg);
- return;
- }
- }
- else if (tasktype == 4)
- {
- temptype = 4;//出库完成
- }
- else if (tasktype == 2 || tasktype == 4)
- {
- temptype = 4;//出库完成
- }
- else if (tasktype == 3)
- {
- temptype = 3;//移库完成
- }
- else if (tasktype == 5)
- {
- temptype = 5;//堆垛机码盘完成
- }
- string msg = string.Empty;
- bool result = BaseWorkflow.BZ_TASKCOMPLETE(taskno, temptype, out msg);
- MessageBox.Show(msg);
- Bind();
- }
- }
- private void sknBtnResertTask_Click(object sender, EventArgs e)
- {
- if (_currentDr == null)
- {
- MessageBox.Show("请选择手动处理的任务。");
- }
- else
- {
- string taskid = _currentDr["TASK_ID"].ToString();
- string taskno = _currentDr["TASK_NO"].ToString();
- DialogResult dr = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要执行[重下任务]吗(谨慎操作)?", taskno));
- if (dr != DialogResult.Yes) return;
- string result = BaseWorkflow.UpdateTask(Convert.ToInt32(taskno), TaskStatusType.重下任务);
- MessageBox.Show(result);
- Bind();
- }
- }
- private void sknBtnCancel_Click(object sender, EventArgs e)
- {
- if (_currentDr == null)
- {
- MessageBox.Show("请选择手动处理的任务。");
- }
- else
- {
- string taskno = _currentDr["TASK_NO"].ToString();
- DialogResult dr = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要执行[取消任务]吗(谨慎操作)?", taskno));
- if (dr != DialogResult.Yes) return;
- string msg = string.Empty;
- BaseWorkflow.TaskCancel(Convert.ToInt32(taskno), out msg);
- MessageBox.Show(msg);
- Bind();
- }
- }
- private void btnQuery_Click(object sender, EventArgs e)
- {
- string sqlstr = string.Format(@"SELECT task_id,task_no,task_systype,TASK_COMTYPE,task_posidfrom,task_posidcur,task_posidnext,task_posidto,task_posidmove,task_priority,
- task_whid, task_adduserno, task_adddatetime, task_edituserno, task_editdatetime, task_notes, task_srmno, task_boxbarcode,
- m.MEP_MAPPINGCHNAME task_comtypech, me.MEP_MAPPINGCHNAME task_wkstatusch,i.F_MATNO,i.F_MATNAME,i.qty
- FROM wcs_task t
- left join WCS_MAPPINGENTRY m on t.task_comtype = m.MEP_MAPPINGNO and m.MEP_MAPPINGTYPE = 'COMTYPE'
- left join WCS_MAPPINGENTRY me on t.task_wkstatus = me.MEP_MAPPINGNO and me.MEP_MAPPINGTYPE = 'WkStatus'
- left join
- (
- select i.F_MATNO,i.F_MATNAME,i.F_CONTRGRPNO,sum(i.f_qty) qty from wcs_task t
- left join BILL_INVCONTR i on t.TASK_ITEM5=i.F_CONTRGRPNO
- where i.F_WAREHOUSENO='WTP' or i.F_WAREHOUSENO='WZZ'
- group by i.F_MATNO,F_MATNAME,i.F_CONTRGRPNO
- ) i on t.TASK_ITEM5=i.F_CONTRGRPNO
- where task_srmno like '%{0}%' and task_posidto like '%{1}%' and task_boxbarcode like '%{2}%' and task_no like '%{3}%' and (nvl(i.F_MATNO,0) like '%{4}%' or nvl(i.F_MATNAME,0) like '%{5}%')",
- txtSrmNo.Text.Trim(), txtEnd.Text.Trim(), txtBarCode.Text.Trim(), txtTaskNo.Text.Trim(), txtMatNo.Text.Trim(), txtMatNo.Text.Trim());
- var pd = QueryPageDataMethods(1,1000,sqlstr);
- if (pd != null)
- {
- _dt = pd.Dt;
- dgvTask.DataSource = _dt;
- }
- else
- {
- if (_dt != null) _dt.Clear();
- }
- }
- private void skBtnCancelNoTask_Click(object sender, EventArgs e)
- {
-
- //string task_id = _currentDr["TASK_NO"].ToString();
- //string msg = string.Empty;
- //TaskWorkflow.Text_out(out msg);
- // LogHelper.Sys_Log.WriteLog("开始调用函数分配货位");
- //string posIdTo = TaskWorkflow.WareCell_Assign2(task_id, out msg);
- //var srmlist = TaskWorkflow.QuerySrmList(Convert.ToInt32(task_id),out msg);
- //LogHelper.Sys_Log.WriteLog(string.Format("分配货位调用函数结束,任务[{0}]", task_id));
- //MessageBox.Show(msg);
- //int success = 0;
- //int failure = 0;
- //string error = string.Empty;
- //TryCachHelper.TryExecute((db) =>
- //{
- // var tasks = db.Queryable<WCS_TASK>().Where(v => v.TASK_COMTYPE == 2 && v.TASK_WKSTATUS <= 0 && v.TASK_WHID.Trim().ToUpper() == ClassHelper.WearHosNoLX).ToList();
- // foreach (var task in tasks)
- // {
- // string msg = string.Empty;
- // bool result = TaskWorkflow.TaskCancel(task.TASK_NO, out msg);
- // if (result)
- // {
- // success++;
- // }
- // else
- // {
- // failure--;
- // error = error + msg + "/n";
- // }
- // }
- //});
- //MessageBox.Show(string.Format("取消任务成功[{0}]条,失败[{1}]条.失败原因:[{2}]", success, failure, error));
- //string result = TryCachHelper.TryTranExecute((db) =>
- //{
- // var task = db.Queryable<WCS_TASK>().First(v => v.TASK_NO == 25080);
- // db.Updateable<WCS_TASK>()
- // .UpdateColumns(it => new WCS_TASK()
- // {
- // TASK_WKSTATUS = (int)WkStatus.堆垛机执行,
- // TASK_POSIDNEXT = "1020",
- // TASK_EDITUSERNO = "WCS",
- // TASK_EDITDATETIME = DateTime.Now
- // })
- // .Where(it => it.TASK_NO == task.TASK_NO).ExecuteCommand();
- // //string msg = string.Format("任务已下发给输送机[{0}]执行,起点地址[{1}]目标地址[{2}]", converywrite.ConveyorNo, converywrite.Goodsstart, converywrite.Goodsend);
- // //CommonData.AddWCS_TASK_DTL(db, task.TASK_ID, task.TASK_NO, task.TASK_POSIDCUR, converywrite.Goodsend.ToString(), msg);
- // string msg = string.Format("任务已下发给输送机[0]执行,起点地址[1]目标地址[2]");
- // var task_dtl = new WCS_TASK_DTL();
- // task_dtl.ID = Guid.NewGuid().ToString();
- // task_dtl.PARENTID = "25080";
- // task_dtl.TASKNO = "25080";
- // task_dtl.POSIDCUR = "1020";
- // task_dtl.POSIDNEXT = "1020";
- // task_dtl.DESCRIPTION = msg;
- // task_dtl.EXECUTEDATE = DateTime.Now;
- // db.Insertable(task_dtl).ExecuteCommand();
- //});
- }
- private void btnClear_Click(object sender, EventArgs e)
- {
- txtBarCode.Text = string.Empty;
- txtEnd.Text = string.Empty;
- txtSrmNo.Text = string.Empty;
- txtTaskNo.Text = string.Empty;
- txtMatNo.Text = string.Empty;
- }
- private void sknBtnPRIORITY_Click(object sender, EventArgs e)
- {
- if (_currentDr == null)
- {
- MessageBox.Show("请选择要调整优先级的任务。");
- }
- else
- {
- string taskno = _currentDr["TASK_NO"].ToString();
- int priority = Convert.ToInt32(_currentDr["TASK_PRIORITY"].ToString());
- var form_Priority = new Form_PRIORITY(taskno, priority);
- form_Priority.ShowDialog();
- Bind();
- }
- }
- }
- }
|