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);
}
}
}
}