222
schangxiang@126.com
2024-12-14 7c63794aa85ab939308d10a9ad5c1a57c46bbf6f
CC/iWareTestForm/iWareTest/DialogForm/TestBatchForm.cs
@@ -202,7 +202,7 @@
                        StoreHandler.AddStoreForEmptySalverTransfer(context, remark, toPlace, qty, "人工手动", ref salver, ref newMaterial);
                        SaveLog(MaterialTypeEnum.托盘, newMaterial, context, tb_SrmNo, remark, qty, salver, toPlace, "", "");
                        context.SaveChanges();//提交数据
                    }
@@ -255,7 +255,7 @@
                        //绑定托盘和站点的关系
                        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();//提交数据
                    }
@@ -528,182 +528,7 @@
            }
        }
        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)DeviceTaskStatusEnum.已完成,
                TaskStateName = DeviceTaskStatusEnum.已完成.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 TestBatchForm_Load(object sender, EventArgs e)
        {