private void DeleteTask(OD_Task tsk) { if (tsk.HADFINISH == "N" && tsk.RELEASESTATUS == "Y") { using (ASRS_ServiceSoapClient srv = new ASRS_ServiceSoapClient()) { string containerID = tsk.CONTAINERNO; if (srv.Od_Task_deleteOne(tsk.TASKID)) //删除当前任务 { srv.Place_Vs_Container_DeleteOne(containerID); srv.Container_Vs_Items_DeleteOneByContainerID(containerID); bool bl = srv.OPC_WritePoint("S7:[300]DB540,B1", 2); //删除堆垛机任务 if (bl) { MessageBox.Show("删除成功!"); } } } } if (tsk.HADFINISH == "N" && tsk.RELEASESTATUS == "N") { if (tsk.TASKTYPEDESCRIPTION.Contains("出库")) //如果出库的话 { using (ASRS_ServiceSoapClient srv = new ASRS_ServiceSoapClient()) { string placeId = tsk.SOURCEPLACE; string containerID = tsk.CONTAINERNO; if (srv.Od_Task_deleteOne(tsk.TASKID)) { List <IV_place_vs_container> lstPVC = srv.Place_Vs_Container_GetRelationshipByContainer(containerID).ToList(); IV_place_vs_container pvc = new IV_place_vs_container(); if (lstPVC.Count > 0) { pvc = lstPVC[0]; pvc.PLACEID = placeId; srv.Place_Vs_Container_UpdateOne(pvc); } } } } else if (tsk.TASKTYPEDESCRIPTION.Contains("入库")) //否则入库 { using (ASRS_ServiceSoapClient srv = new ASRS_ServiceSoapClient()) { string containerID = tsk.CONTAINERNO; if (srv.Od_Task_deleteOne(tsk.TASKID)) { srv.Place_Vs_Container_DeleteOne(containerID); srv.Container_Vs_Items_DeleteOneByContainerID(containerID); } } } } }
/// <summary> /// 处理出库任务 /// </summary> /// <param name="currentTask"></param> /// <returns></returns> private bool DealFor_Srm_Retrieve_Out(OD_Task currentTask) { IV_place_vs_container placeContnr = new IV_place_vs_container(); placeContnr = srv.Place_Vs_Container_GetRelationshipByContainer(currentTask.CONTAINERNO)[0]; srv.Place_Vs_Container_DeleteOne(placeContnr.CONTAINERID); //清除库存 currentTask.TASKSTATUS = "Out_Finished"; srv.Od_Task_SetLastTaskVoidByDeviceID(currentTask.DODEVICEID); // 废除上一次任务的有效性,当完成一个任务时,会先将以前的上一次任务(LastTask)作废,将刚刚完成的任务设置为最新上一次任务 bool b = srv.Od_Task_UpdateOne(currentTask); return(b); }
private void btnClear_Click(object sender, EventArgs e) { AlreadyScan.Text = ""; label4.Visible = false; AlreadyScan.Visible = false; AlreadyScan.Height = 32; using (ASRS_ServiceSoapClient srv = new ASRS_ServiceSoapClient()) { if (MessageBox.Show("此操作会导致该小车的库存数据被清除,是否继续操作?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { var container = srv.IM_Container_GetOneByContainerId(tBContainer.Text.Trim()); if (container == null || string.IsNullOrEmpty(container.CONTAINERID)) { MessageBox.Show("无此托盘信息!"); return; } if (isStoredContainer(container.CONTAINERID) == 2) { MessageBox.Show("托盘已经在货架上,若要解除绑定,请进行出库作业!"); tBContainer.Enabled = true; tBContainer.SelectAll(); tBContainer.Focus(); return; } if (tBContainer.Enabled == true) { MessageBox.Show("托盘号尚未绑定可直接修改单元格,无需清除数据"); return; } try { srv.Place_Vs_Container_DeleteOne(tBContainer.Text.Trim()); var itemsIncontainer = srv.Container_Vs_Items_GetItemsByContainerID(tBContainer.Text.Trim()).ToList(); foreach (var p in itemsIncontainer) { srv.Container_Vs_Items_DeleteOneByContainerID(p.CONTAINERID); } tBContainer.Text = ""; tBSku.Text = ""; tBContainer.Enabled = true; changeImg(1); tBContainer.Focus(); } catch (Exception) { } } } }