using iWareCommon.Common.Globle; using iWareCommon.Utils; using iWareModel; using iWareSql.DataAccess; 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 XiGang.Core.Model; namespace iWareCC.Forms { public partial class SrmStockForm : Form { delegate void Delegate_SetPostResult2(string content); public SrmStockForm() { InitializeComponent(); this.tb_SalverCount.Text = "1"; } /// /// 新建入库任务 /// /// /// private void button1_Click(object sender, EventArgs e) { string tb_SrmNo = this.tb_PlaceNo.Text.Trim(); try { ListItem selProFlag = null; var itemType = ComboBoxHelper.GetComboxSelectValue(this.cmbItemType, ref selProFlag); if (string.IsNullOrEmpty(tb_SrmNo)) { ShowResult("库位号不能为空"); return; } var remark = ""; int qty = 1; if (selProFlag.Text == "托盘") { qty = Convert.ToInt32(tb_SalverCount.Text); remark = "人工手动增加托盘库存"; } //Base_Station toPlace = null; //using (DbModel context = new DbModel()) //{ // toPlace = context.Base_Station.Where(x => x.SrmStationCode == tb_SrmNo).FirstOrDefault(); // if (toPlace == null) // { // ShowResult(tb_SrmNo + "库位不存在"); // return; // } // //看看有没有库存 // var abc = context.V_AllStore.Where(x => x.SrmStationCode == toPlace.SrmStationCode).FirstOrDefault(); // if (abc != null) // { // ShowResult(tb_SrmNo + "已经有库存了"); // return; // } // if (selProFlag.Text == "托盘") // { // Base_Material newMaterial = null; // Base_Salver salver = null; // StoreHandler.AddStoreForEmptySalverTransfer(context, remark, toPlace, qty, "人工手动", ref salver, ref newMaterial); // SaveLog(MaterialTypeEnum.托盘, newMaterial, context, tb_SrmNo, remark, qty, salver, toPlace, "", ""); // context.SaveChanges();//提交数据 // } // else // { // var SerialNumber = this.tb_SerialNumber.Text; // var OrderNo = this.tb_OrderNo.Text; // var SalverCode = this.tb_SalverCode.Text; // if (string.IsNullOrEmpty(SerialNumber)) // { // ShowResult(tb_SrmNo + "序列号不能为空"); // return; // } // if (string.IsNullOrEmpty(OrderNo)) // { // ShowResult(tb_SrmNo + "订货号不能为空"); // return; // } // if (string.IsNullOrEmpty(SalverCode)) // { // ShowResult(tb_SrmNo + "托盘号不能为空"); // return; // } // abc = context.V_AllStore.Where(x => x.SerialNumber == SerialNumber).FirstOrDefault(); // if (abc != null) // { // ShowResult("序列号" + SerialNumber + "已经有库存了"); // return; // } // abc = context.V_AllStore.Where(x => x.SalverCode == SalverCode).FirstOrDefault(); // if (abc != null) // { // ShowResult("托盘号" + SalverCode + "已经有库存了"); // return; // } // //绑定托盘和站点的关系 // //新建物料 // Base_Material newMaterial = MaterialHandler.CreateCargoMaterial(context, "入库时,新建物料", SerialNumber, OrderNo); // //判断托盘是否存在,如果存在,就不需要重建,如果不存在,就新建托盘 // var errMsg = ""; // Base_Salver salver = SalverHandler.GetSalveByCodeForInTask(context, SalverCode, out errMsg); // if (!string.IsNullOrEmpty(errMsg)) // { // ShowResult(tb_SrmNo + "errMsg"); // return; // } // //绑定托盘和物料的关系 // Salver_Material_Handler.CreateCvIRelation(context, "人工手动", salver, newMaterial, remark); // //绑定托盘和站点的关系 // Salver_Station_Handler.CreateCvPRelation(context, "人工手动", salver, toPlace, Salver_V_Station_StateEnum.入库绑定, remark); // SaveLog(MaterialTypeEnum.一般物料, newMaterial, context, tb_SrmNo, remark, qty, salver, toPlace, SerialNumber, OrderNo); // context.SaveChanges();//提交数据 // } // ShowResult(tb_SrmNo + "保存成功"); //} } catch (Exception ex) { ShowResult(tb_SrmNo + "保存失败," + ex.Message); } } //private void SaveLog(MaterialTypeEnum _MaterialTypeEnum, Base_Material newMaterial, DbModel context, string tb_SrmNo, string remark, int qty, // Base_Salver salver, Base_Station toPlace, string serialNumber, string orderNo) //{ // //增加Main表和Part表数据 // Task_Main mainTask = new Task_Main(); // mainTask.IsVirtual = false;//非虚拟入库 // MainTaskTypeEnum _taskType = default(MainTaskTypeEnum); // DeviceTaskTypeEnum _DeviceTaskTypeEnum = default(DeviceTaskTypeEnum); // string handlerType = ""; // MaterialTypeEnum _MaterialType = default(MaterialTypeEnum); // switch (_MaterialTypeEnum) // { // case MaterialTypeEnum.托盘: // handlerType = "手动添加托盘库存"; // _DeviceTaskTypeEnum = DeviceTaskTypeEnum.空托转运到立体库; // mainTask.TaskNo = TaskNoHelper.GenerateTaskNo("IN__SD_TP"); // mainTask.TaskName = "手动添加托盘库存"; // mainTask.InOutFlag = (int)MainInOutFlagEnum.入库; // mainTask.InOutFlagName = MainInOutFlagEnum.入库.ToString(); // _taskType = MainTaskTypeEnum.手动入库; // mainTask.TaskType = Convert.ToInt32(_taskType); // mainTask.TaskTypeName = _taskType.ToString(); // _MaterialType = MaterialTypeEnum.托盘; // break; // case MaterialTypeEnum.一般物料: // handlerType = "手动添加发动机库存"; // _DeviceTaskTypeEnum = DeviceTaskTypeEnum.组盘入库; // mainTask.TaskNo = TaskNoHelper.GenerateTaskNo("IN_SD"); // mainTask.TaskName = "手动入库"; // mainTask.InOutFlag = (int)MainInOutFlagEnum.入库; // mainTask.InOutFlagName = MainInOutFlagEnum.入库.ToString(); // _taskType = MainTaskTypeEnum.手动入库; // mainTask.TaskType = Convert.ToInt32(_taskType); // mainTask.TaskTypeName = _taskType.ToString(); // mainTask.SerialNumber = serialNumber; // mainTask.OrderNo = orderNo; // _MaterialType = MaterialTypeEnum.一般物料; // break; // } // mainTask.MaterialType = (int)_MaterialType; // mainTask.MaterialTypeName = _MaterialType.ToString(); // var _taskState = MainTaskStatusEnum.已完成; // mainTask.TaskState = Convert.ToInt32(_taskState); // mainTask.TaskStateName = _taskState.ToString(); // mainTask.IsAllowSimulateExecute = true; // mainTask.OperationRemark = handlerType; // mainTask.Qty = qty; // mainTask.CreateTime = mainTask.ModifyTime = mainTask.StartTime = DateTime.Now; // mainTask.CreateBy = mainTask.ModifyBy = SysGloble.WCSSystem; // mainTask.MaterialId = newMaterial.Id; // mainTask.FinishTime = DateTime.Now; // mainTask.ToPlace = toPlace.Id; // mainTask.RealToPlace = toPlace.SrmStationCode; // //记录区域 [EditBy shaocx,2022-05-02] // EDevice device = BusinessHelper.GetSrmDeviceByPlaceNo(toPlace.SrmStationCode); // mainTask.Area = ((int)device).ToString(); // context.Task_Main.Add(mainTask); // EDeviceType deviceType = EDeviceType.堆垛机; // var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask(); // //中间点 // var midPlace = StationHandler.GetRgvPlaceBySrmPlaceForInStore(context, toPlace); // if (midPlace == null) // { // throw new Exception("没有找到RGV入库位置"); // } // Task_Part partTask = new Task_Part() // { // Id = Guid.NewGuid().ToString(), // InOutFlag = mainTask.InOutFlag, // InOutFlagName = mainTask.InOutFlagName, // DeviceType = (int)deviceType, // DeviceTypeName = deviceType.ToString(), // DeviceId = Convert.ToInt16(device), // DeviceName = Convert.ToString(device), // IsAllowSimulateExecute = true, // TaskSequence = 1, // MainTaskSequence = mainTask.TaskSequence,//增加主任务优先级 // TaskDescribe = handlerType, // OperationRemark = handlerType, // MainTaskId = mainTask.Id, // MainTaskNo = mainTask.TaskNo, // MaterialId = mainTask.MaterialId, // Qty = mainTask.Qty,//增加数量 【EditBy shaocx,2022-05-01】 // //增加 订货号和序列号的赋值 [Editby shaocx,2022-04-21] // SerialNumber = mainTask.SerialNumber, // OrderNo = mainTask.OrderNo, // //ToNumber = toNumber, // //TaskGuid = taskGuid, // //MatID = MatID, // //MatName = MatName, // //Remark = "手动入库创建设备任务" + description, // //Creator = "手动入库创建设备任务" + "," + Dns.GetHostName(), // //UpdateUser = "手动入库创建设备任务" + "," + Dns.GetHostName(), // CreateTime = DateTime.Now, // ModifyTime = DateTime.Now, // PlcTaskId = plcTaskNo, // //ContainerId = ctn.ContainerId, // SalverId = salver.Id, // SalverCode = salver.SalverCode, // SourcePlace = midPlace.Id, // ToPlace = toPlace.Id, // RealSourcePlace = midPlace.SrmStationCode, // RealToPlace = toPlace.SrmStationCode, // TaskName = string.Format("(来源:id-{0} no-{1},目标:id-{2} no-{3})", midPlace.Id, midPlace.SrmStationCode, // toPlace.Id, toPlace.SrmStationCode), // IsReleased = true, // // IsCurrentTask = 0, // IsFinished = true, // //IsLastTask = 0, // //Void = 0, // TaskState = (int)SubTaskStateEnum.已完成, // TaskStateName = SubTaskStateEnum.已完成.ToString(), // TaskType = (int)_DeviceTaskTypeEnum, // TaskTypeName = _DeviceTaskTypeEnum.ToString(), // MaterialType = (int)_MaterialType, // MaterialTypeName = _MaterialType.ToString(), // IssueTime = DateTime.Now, // FinishTime = DateTime.Now // }; // context.Task_Part.Add(partTask); // //保存人工处理日志 [EditBy shaocx,2022-05-01] // Base_PersonHandlerRecord record = new Base_PersonHandlerRecord() // { // MainTaskNo = mainTask.TaskNo, // HandlerType = handlerType, // PartTaskId = partTask.Id, // PlcTaskId = partTask.PlcTaskId, // RealSourcePlace = tb_SrmNo, // RealToPlace = tb_SrmNo, // SalverCode = salver.SalverCode, // SerialNumber = serialNumber, // OrderNo = orderNo, // TaskTypeName = partTask.TaskTypeName, // Qty = qty, // ManualHandlerRemark = remark, // OperationRemark = remark // }; // PersonHandlerRecordHandler.SavePersonHandlerRecord(context, record); //} private void button2_Click(object sender, EventArgs e) { ClearPlace(); } private void ClearPlace() { var msg = "清除"; try { string tb_SrmNo = this.tb_PlaceNo.Text.Trim(); if (string.IsNullOrEmpty(tb_SrmNo)) { ShowResult("库位号不能为空"); return; } //Base_Station place = null; //using (DbModel edm = new DbModel()) //{ // place = edm.Base_Station.Where(x => x.SrmStationCode == tb_SrmNo || x.RgvStationCode == tb_SrmNo).FirstOrDefault(); // //获取库存的信息 // var store = edm.V_AllStore.Where(x => x.StationId == place.Id).FirstOrDefault(); // if (store == null) // { // ShowResult("该库位上没有库存!"); // return; // } // StoreHandler.ClearStockByPlaceId(edm, place, "人工手动清除"); // if (store.IsSrmStation) // {//如果是立体库库存,则在增加mian表 // #region 增加Main表 // //增加Main表和Part表数据 // Task_Main mainTask = new Task_Main(); // mainTask.IsVirtual = false;//非虚拟入库 // MainTaskTypeEnum _taskType = default(MainTaskTypeEnum); // DeviceTaskTypeEnum _DeviceTaskTypeEnum = default(DeviceTaskTypeEnum); // string handlerType = ""; // MaterialTypeEnum _MaterialType = (MaterialTypeEnum)Enum.Parse(typeof(MaterialTypeEnum), store.MaterialType.ToString()); // switch (_MaterialType) // { // case MaterialTypeEnum.托盘: // handlerType = "手动清除托盘库存"; // _DeviceTaskTypeEnum = DeviceTaskTypeEnum.出库; // mainTask.TaskNo = TaskNoHelper.GenerateTaskNo("OUT_SD_TP"); // mainTask.TaskName = "手动清除托盘库存"; // mainTask.InOutFlag = (int)MainInOutFlagEnum.出库; // mainTask.InOutFlagName = MainInOutFlagEnum.出库.ToString(); // _taskType = MainTaskTypeEnum.手动出库; // mainTask.TaskType = Convert.ToInt32(_taskType); // mainTask.TaskTypeName = _taskType.ToString(); // break; // case MaterialTypeEnum.一般物料: // handlerType = "手动清除发动机库存"; // _DeviceTaskTypeEnum = DeviceTaskTypeEnum.出库; // mainTask.TaskNo = TaskNoHelper.GenerateTaskNo("OUT_SD"); // mainTask.TaskName = "手动清除发动机库存"; // mainTask.InOutFlag = (int)MainInOutFlagEnum.出库; // mainTask.InOutFlagName = MainInOutFlagEnum.出库.ToString(); // _taskType = MainTaskTypeEnum.手动出库; // mainTask.TaskType = Convert.ToInt32(_taskType); // mainTask.TaskTypeName = _taskType.ToString(); // mainTask.SerialNumber = store.SerialNumber; // mainTask.OrderNo = store.OrderNo; // break; // } // mainTask.MaterialType = (int)_MaterialType; // mainTask.MaterialTypeName = _MaterialType.ToString(); // var _taskState = MainTaskStatusEnum.已完成; // mainTask.TaskState = Convert.ToInt32(_taskState); // mainTask.TaskStateName = _taskState.ToString(); // mainTask.IsAllowSimulateExecute = true; // mainTask.OperationRemark = handlerType; // mainTask.Qty = store.Qty; // mainTask.CreateTime = mainTask.ModifyTime = mainTask.StartTime = DateTime.Now; // mainTask.CreateBy = mainTask.ModifyBy = SysGloble.WCSSystem; // mainTask.MaterialId = store.MaterialId; // mainTask.FinishTime = DateTime.Now; // mainTask.SourcePlace = store.StationId; // mainTask.RealSourcePlace = store.SrmStationCode; // mainTask.ToPlace = 0; // mainTask.RealToPlace = ""; // //记录区域 [EditBy shaocx,2022-05-02] // EDevice device = BusinessHelper.GetSrmDeviceByPlaceNo(store.SrmStationCode); // mainTask.Area = ((int)device).ToString(); // edm.Task_Main.Add(mainTask); // #endregion // #region 增加Part表 // EDeviceType deviceType = EDeviceType.堆垛机; // var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask(); // Task_Part partTask = new Task_Part() // { // Id = Guid.NewGuid().ToString(), // InOutFlag = mainTask.InOutFlag, // InOutFlagName = mainTask.InOutFlagName, // DeviceType = (int)deviceType, // DeviceTypeName = deviceType.ToString(), // DeviceId = Convert.ToInt16(device), // DeviceName = Convert.ToString(device), // IsAllowSimulateExecute = true, // TaskSequence = 1, // MainTaskSequence = mainTask.TaskSequence,//增加主任务优先级 // TaskDescribe = handlerType, // OperationRemark = handlerType, // MainTaskId = mainTask.Id, // MainTaskNo = mainTask.TaskNo, // MaterialId = mainTask.MaterialId, // Qty = mainTask.Qty,//增加数量 【EditBy shaocx,2022-05-01】 // //增加 订货号和序列号的赋值 [Editby shaocx,2022-04-21] // SerialNumber = mainTask.SerialNumber, // OrderNo = mainTask.OrderNo, // //ToNumber = toNumber, // //TaskGuid = taskGuid, // //MatID = MatID, // //MatName = MatName, // //Remark = "手动入库创建设备任务" + description, // //Creator = "手动入库创建设备任务" + "," + Dns.GetHostName(), // //UpdateUser = "手动入库创建设备任务" + "," + Dns.GetHostName(), // CreateTime = DateTime.Now, // ModifyTime = DateTime.Now, // PlcTaskId = plcTaskNo, // //ContainerId = ctn.ContainerId, // SalverId = store.SalverId, // SalverCode = store.SalverCode, // SourcePlace = store.StationId, // ToPlace = 0, // RealSourcePlace = store.SrmStationCode, // RealToPlace = store.SrmStationCode, // TaskName = string.Format("(来源:id-{0} no-{1},目标:id-{2} no-{3})", store.StationId, store.SrmStationCode, // 0, ""), // IsReleased = true, // // IsCurrentTask = 0, // IsFinished = true, // //IsLastTask = 0, // //Void = 0, // TaskState = (int)SubTaskStateEnum.已完成, // TaskStateName = SubTaskStateEnum.已完成.ToString(), // TaskType = (int)_DeviceTaskTypeEnum, // TaskTypeName = _DeviceTaskTypeEnum.ToString(), // MaterialType = (int)_MaterialType, // MaterialTypeName = _MaterialType.ToString(), // IssueTime = DateTime.Now, // FinishTime = DateTime.Now // }; // edm.Task_Part.Add(partTask); // #endregion // } // //保存人工处理日志 [EditBy shaocx,2022-05-01] // Base_PersonHandlerRecord record = new Base_PersonHandlerRecord() // { // MainTaskNo = "", // HandlerType = "库存删除", // PartTaskId = "", // PlcTaskId = "", // RealSourcePlace = tb_SrmNo, // RealToPlace = "", // SalverCode = store.SalverCode, // SerialNumber = store.SerialNumber, // OrderNo = store.OrderNo, // TaskTypeName = "", // Qty = store.Qty, // // ManualHandlerRemark = _AllowSimulateExecute_Rmark // }; // PersonHandlerRecordHandler.SavePersonHandlerRecord(edm, record); // edm.SaveChanges(); // ShowResult(msg + "库存成功"); //} } catch (Exception ex) { ShowResult(msg + "库存失败," + ex.Message); } } private void btn_close_Click(object sender, EventArgs e) { this.Close(); } private void SrmStockForm_Load(object sender, EventArgs e) { LoadItemType(); } private void LoadItemType() { List itemList = new List(); itemList.Add(new ListItem() { Text = "发送机", Value = "1" }); itemList.Add(new ListItem() { Text = "托盘", Value = "2" }); foreach (var item in itemList) { this.cmbItemType.Items.Add(item); } cmbItemType.SelectedIndex = 1; } /// /// 显示请求结果 /// /// private void ShowResult(string content) { if (this.tb_Log.InvokeRequired) { Delegate_SetPostResult2 delegate_SetPostResult = new Delegate_SetPostResult2(ShowResult); this.Invoke(delegate_SetPostResult, new object[] { content }); } else { //content += "\r\n"; this.tb_Log.Text = StringHelper.GetLog(content) + this.tb_Log.Text; } } private void button3_Click(object sender, EventArgs e) { var msg = "解锁"; try { string tb_SrmNo = this.tb_PlaceNo.Text.Trim(); if (string.IsNullOrEmpty(tb_SrmNo)) { ShowResult("库位号不能为空"); return; } //Base_Station place = null; //using (DbModel edm = new DbModel()) //{ // place = edm.Base_Station.Where(x => x.SrmStationCode == tb_SrmNo || x.RgvStationCode == tb_SrmNo).FirstOrDefault(); // place.IsLock = false; // place.IsDeleted = false; // place.IsHasTaskDoing = false; // place.OperationRemark = "人工手动解锁"; // //保存人工处理日志 [EditBy shaocx,2022-05-01] // Base_PersonHandlerRecord record = new Base_PersonHandlerRecord() // { // MainTaskNo = "", // HandlerType = "人工手动解锁", // PartTaskId = "", // PlcTaskId = "", // RealSourcePlace = tb_SrmNo, // RealToPlace = "", // SalverCode = "", // SerialNumber = "", // OrderNo = "", // TaskTypeName = "", // Qty = 0, // // ManualHandlerRemark = _AllowSimulateExecute_Rmark // }; // PersonHandlerRecordHandler.SavePersonHandlerRecord(edm, record); // edm.SaveChanges(); // ShowResult(msg + "解锁成功"); //} } catch (Exception ex) { ShowResult(msg + "解锁失败," + ex.Message); } } private void SrmStockForm_Load_1(object sender, EventArgs e) { LoadItemType(); } private void button4_Click(object sender, EventArgs e) { var msg = "锁定"; try { string tb_SrmNo = this.tb_PlaceNo.Text.Trim(); if (string.IsNullOrEmpty(tb_SrmNo)) { ShowResult("库位号不能为空"); return; } //Base_Station place = null; //using (DbModel edm = new DbModel()) //{ // place = edm.Base_Station.Where(x => x.SrmStationCode == tb_SrmNo || x.RgvStationCode == tb_SrmNo).FirstOrDefault(); // place.IsLock = true; // place.OperationRemark = "人工手动锁定"; // //保存人工处理日志 [EditBy shaocx,2022-05-01] // Base_PersonHandlerRecord record = new Base_PersonHandlerRecord() // { // MainTaskNo = "", // HandlerType = "人工手动锁定", // PartTaskId = "", // PlcTaskId = "", // RealSourcePlace = tb_SrmNo, // RealToPlace = "", // SalverCode = "", // SerialNumber = "", // OrderNo = "", // TaskTypeName = "", // Qty = 0, // // ManualHandlerRemark = _AllowSimulateExecute_Rmark // }; // PersonHandlerRecordHandler.SavePersonHandlerRecord(edm, record); // edm.SaveChanges(); // ShowResult(msg + "锁定成功"); //} } catch (Exception ex) { ShowResult(msg + "锁定失败," + ex.Message); } } } }