222
schangxiang@126.com
2024-12-14 7c63794aa85ab939308d10a9ad5c1a57c46bbf6f
222
已修改15个文件
603 ■■■■ 文件已修改
CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/FormCC.Designer.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/FormCC.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Forms/SrmStockForm.cs 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Inbound/1、DataProcess_BZ39.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Inbound/3、DataProcess_RobotBuffer_FinishTask.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/1、DataProcess_RobotBuffer_AutoQiTaoOutbound.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/4、DataProcess_RobotBuffer_ForceOutbound.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/5、CC_DataProcess_RobotBuffer_ForceOutbound.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/03_BZ12(机器人码包工位)/1、DataProcess_BZ12.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/04_BZ21(搬运整垛机器人)/1、DataProcess_BZ21.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCommon/BusinessHelper/BusinessHelper.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/wms_stock_quan.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareTestForm/iWareTest/DialogForm/TestBatchForm.cs 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsStockQuan/WmsStockQuan.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
@@ -26,6 +26,28 @@
    {
        /// <summary>
        /// ç”Ÿæˆæœ€æ–°çš„任务号
        /// </summary>
        /// <param name="wmsDB"></param>
        /// <param name="rbTaskTypeEnum"></param>
        /// <param name="plcTaskNo"></param>
        /// <returns></returns>
        public static string GetNewTaskNo(WmsDBModel wmsDB, RbTaskTypeEnum rbTaskTypeEnum, string plcTaskNo)
        {
            //判断如果任务号跟上一个任务号重复,就自动减去1
            var lastTask = wmsDB.wms_rbline_task.Where(x => x.RbTaskType == (int)rbTaskTypeEnum).OrderByDescending(x => x.Id).FirstOrDefault();
            if (lastTask != null && lastTask.TaskNo == plcTaskNo)
            {
                plcTaskNo = (Convert.ToInt32(plcTaskNo) - 1).ToString();
            }
            else
            {
            }
            return plcTaskNo;
        }
        /// <summary>
        /// å†™å…¥ æŠ¥è­¦ä¿¡æ¯
        /// </summary>
        /// <param name="warningAddress"></param>
CC/iWareCC_ASRS/FormCC.Designer.cs
@@ -86,6 +86,9 @@
            this.ckBDataProcess_RobotBuffer_ForceOutbound = new System.Windows.Forms.CheckBox();
            this.ckBDataProcess_BZ12_FinishTask = new System.Windows.Forms.CheckBox();
            this.tabPage3 = new System.Windows.Forms.TabPage();
            this.btn1 = new System.Windows.Forms.Button();
            this.tb_taskNo = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.button1 = new System.Windows.Forms.Button();
            this.button25 = new System.Windows.Forms.Button();
            this.button24 = new System.Windows.Forms.Button();
@@ -120,9 +123,7 @@
            this.lbl_Warning_FJ = new System.Windows.Forms.Label();
            this.lbl_XinTiao_FJ = new System.Windows.Forms.Label();
            this.lbl_Mode_FJ = new System.Windows.Forms.Label();
            this.tb_taskNo = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.btn1 = new System.Windows.Forms.Button();
            this.button2 = new System.Windows.Forms.Button();
            this.tabControl1.SuspendLayout();
            this.tPModeChoice.SuspendLayout();
            this.panel_Model.SuspendLayout();
@@ -855,6 +856,7 @@
            // 
            // tabPage3
            // 
            this.tabPage3.Controls.Add(this.button2);
            this.tabPage3.Controls.Add(this.btn1);
            this.tabPage3.Controls.Add(this.tb_taskNo);
            this.tabPage3.Controls.Add(this.label1);
@@ -883,6 +885,34 @@
            this.tabPage3.TabIndex = 9;
            this.tabPage3.Text = "数据维护&统计";
            this.tabPage3.UseVisualStyleBackColor = true;
            //
            // btn1
            //
            this.btn1.BackColor = System.Drawing.Color.Red;
            this.btn1.Location = new System.Drawing.Point(856, 688);
            this.btn1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
            this.btn1.Name = "btn1";
            this.btn1.Size = new System.Drawing.Size(155, 48);
            this.btn1.TabIndex = 160;
            this.btn1.Text = "入库任务强制完成";
            this.btn1.UseVisualStyleBackColor = false;
            this.btn1.Click += new System.EventHandler(this.btn1_Click);
            //
            // tb_taskNo
            //
            this.tb_taskNo.Location = new System.Drawing.Point(902, 642);
            this.tb_taskNo.Name = "tb_taskNo";
            this.tb_taskNo.Size = new System.Drawing.Size(339, 25);
            this.tb_taskNo.TabIndex = 159;
            //
            // label1
            //
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(836, 652);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(60, 15);
            this.label1.TabIndex = 158;
            this.label1.Text = "任务号:";
            // 
            // button1
            // 
@@ -1275,33 +1305,17 @@
            this.lbl_Mode_FJ.Text = "设备模式: ";
            this.lbl_Mode_FJ.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // tb_taskNo
            // button2
            // 
            this.tb_taskNo.Location = new System.Drawing.Point(902, 642);
            this.tb_taskNo.Name = "tb_taskNo";
            this.tb_taskNo.Size = new System.Drawing.Size(339, 25);
            this.tb_taskNo.TabIndex = 159;
            //
            // label1
            //
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(836, 652);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(60, 15);
            this.label1.TabIndex = 158;
            this.label1.Text = "任务号:";
            //
            // btn1
            //
            this.btn1.BackColor = System.Drawing.Color.Red;
            this.btn1.Location = new System.Drawing.Point(856, 688);
            this.btn1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
            this.btn1.Name = "btn1";
            this.btn1.Size = new System.Drawing.Size(155, 48);
            this.btn1.TabIndex = 160;
            this.btn1.Text = "入库任务强制完成";
            this.btn1.UseVisualStyleBackColor = false;
            this.btn1.Click += new System.EventHandler(this.btn1_Click);
            this.button2.BackColor = System.Drawing.Color.Aqua;
            this.button2.Location = new System.Drawing.Point(1022, 349);
            this.button2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
            this.button2.Name = "button2";
            this.button2.Size = new System.Drawing.Size(155, 48);
            this.button2.TabIndex = 161;
            this.button2.Text = "更新库存表中的次序字段";
            this.button2.UseVisualStyleBackColor = false;
            this.button2.Click += new System.EventHandler(this.button2_Click);
            // 
            // FormCC
            // 
@@ -1437,6 +1451,7 @@
        private System.Windows.Forms.TextBox tb_taskNo;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Button btn1;
        private System.Windows.Forms.Button button2;
    }
}
CC/iWareCC_ASRS/FormCC.cs
@@ -1559,6 +1559,7 @@
                wms_stock_quan qun = new wms_stock_quan()
                {
                    Id = Yitter.IdGenerator.YitIdHelper.NextId(),
                    Shelf = upiObj.Shelf,
                    Upi = upiCode,
                    PlanNo = task.PlanNo,
                    DetailName = upiObj.DetailName,
@@ -1599,5 +1600,34 @@
                MessageBox.Show("已处理");
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            //更新库存表中的次序字段
            var alertMsg = "";
            using (WmsDBModel db = new WmsDBModel())
            {
                //查询立体库中的upi列表
                var quanList = db.wms_stock_quan.ToList();
                var query_quanList = quanList.Select(x => x.Upi).ToList();
                var upiList = db.mes_batchOrderUPI_new.Where(x => query_quanList.Contains(x.UPI)).ToList();
                foreach (var item in quanList)
                {
                    var _shelf = upiList.Find(x => x.UPI == item.Upi);
                    item.Shelf = _shelf.Shelf;
                }
                db.SaveChanges();
            }
            if (!string.IsNullOrEmpty(alertMsg))
            {
                MessageBox.Show("错误:" + alertMsg);
            }
            else
            {
                MessageBox.Show("已处理");
            }
        }
    }
}
CC/iWareCC_ASRS/Forms/SrmStockForm.cs
@@ -84,7 +84,7 @@
                        StoreHandler.AddStoreForEmptySalverTransfer(context, remark, toPlace, qty, "人工手动", ref salver, ref newMaterial);
                        SaveLog(MaterialTypeEnum.托盘, newMaterial, context, tb_SrmNo, remark, qty, salver, toPlace, "", "");
                        context.SaveChanges();//提交数据
                    }
@@ -144,7 +144,7 @@
                        toPlace.IsFull = true;//代表有货
                        SaveLog(MaterialTypeEnum.一般物料, newMaterial, context, tb_SrmNo, remark, qty, salver, toPlace, SerialNumber, OrderNo);
                        context.SaveChanges();//提交数据
                    }
@@ -157,183 +157,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 button2_Click(object sender, EventArgs e)
        {
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Inbound/1¡¢DataProcess_BZ39.cs
@@ -104,7 +104,9 @@
                                //记录任务
                                var _id = Yitter.IdGenerator.YitIdHelper.NextId();
                                var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
                                var plcTaskNo = BusinessHelper.CreatePlcTaskId();
                                plcTaskNo = MyExtendHelper.GetNewTaskNo(wmsDB, RbTaskTypeEnum.入库任务, plcTaskNo);
                                var task = new wms_rbline_task()
                                {
                                    Id = _id,
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Inbound/3¡¢DataProcess_RobotBuffer_FinishTask.cs
@@ -198,6 +198,7 @@
            wms_stock_quan qun = new wms_stock_quan()
            {
                Id = Yitter.IdGenerator.YitIdHelper.NextId(),
                Shelf = upiObj.Shelf,
                Upi = upiCode,
                PlanNo = task.PlanNo,
                DetailName = upiObj.DetailName,
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/1¡¢DataProcess_RobotBuffer_AutoQiTaoOutbound.cs
@@ -1,4 +1,5 @@
using Admin.NET.Application;
using iWareCC.Common.Helper;
using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
@@ -56,7 +57,8 @@
                                        //生成出库任务
                                        //记录任务
                                        var _id = Yitter.IdGenerator.YitIdHelper.NextId();
                                        var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
                                        var plcTaskNo = BusinessHelper.CreatePlcTaskId();
                                        plcTaskNo = MyExtendHelper.GetNewTaskNo(wmsDB, RbTaskTypeEnum.齐包出库任务, plcTaskNo);
                                        var new_task = new wms_rbline_task()
                                        {
                                            Id = _id,
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/4¡¢DataProcess_RobotBuffer_ForceOutbound.cs
@@ -1,10 +1,12 @@
using Admin.NET.Application;
using iWareCC.Common.Helper;
using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
using iWareSql.DataAccess;
using iWareSql.WmsDBModel;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
@@ -47,49 +49,56 @@
                            List<wms_stock_quan> qunList = wmsDB.wms_stock_quan.Where(x => x.StockStatus == (int)StockStatusEnum.人工强制待出库
                            ).OrderBy(x => x.PackageCode).ToList();
                            foreach (var x in qunList)
                            //按照包分组处理
                            var groups = qunList.GroupBy(x => x.PackageCode);
                            foreach (var group in groups)
                            {
                                x.StockStatus = (int)StockStatusEnum.人工强制任务已创建;
                                x.StockStatusName = StockStatusEnum.人工强制任务已创建.ToString();
                                //注意:排序严格按照 æ¬¡åº è¿›è¡ŒæŽ’序。 ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
                                var stockList = group.ToList().OrderBy(x => x.Shelf).ToList();
                                //生成出库任务
                                //记录任务
                                var _id = Yitter.IdGenerator.YitIdHelper.NextId();
                                var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
                                var new_task = new wms_rbline_task()
                                foreach (var x in stockList)
                                {
                                    Id = _id,
                                    TaskNo = plcTaskNo,
                                    x.StockStatus = (int)StockStatusEnum.人工强制任务已创建;
                                    x.StockStatusName = StockStatusEnum.人工强制任务已创建.ToString();
                                    Upi = x.Upi,
                                    Length = x.Length,
                                    Width = x.Width,
                                    Thk = x.Thk,
                                    //生成出库任务
                                    //记录任务
                                    var _id = Yitter.IdGenerator.YitIdHelper.NextId();
                                    var plcTaskNo = BusinessHelper.CreatePlcTaskId();
                                    plcTaskNo = MyExtendHelper.GetNewTaskNo(wmsDB, RbTaskTypeEnum.强制出库任务, plcTaskNo);
                                    var new_task = new wms_rbline_task()
                                    {
                                        Id = _id,
                                        TaskNo = plcTaskNo,
                                    PlanNo = x.PlanNo,
                                    OrderId = x.OrderId,
                                    PackageCode = x.PackageCode,
                                    PlaceCode = x.PlaceCode,
                                    RbTaskType = (int)RbTaskTypeEnum.强制出库任务,
                                    TaskStatus = (int)TaskStatusEnum.新建,
                                    TaskMsg = "人工强制待出库",
                                        Upi = x.Upi,
                                        Length = x.Length,
                                        Width = x.Width,
                                        Thk = x.Thk,
                                        PlanNo = x.PlanNo,
                                        OrderId = x.OrderId,
                                        PackageCode = x.PackageCode,
                                        PlaceCode = x.PlaceCode,
                                        RbTaskType = (int)RbTaskTypeEnum.强制出库任务,
                                        TaskStatus = (int)TaskStatusEnum.新建,
                                        TaskMsg = "人工强制待出库",
                                    CreateTime = DateTime.Now,
                                    CreateUserName = SysGloble.WCSSystem,
                                    UpdateTime = DateTime.Now,
                                    UpdateUserName = SysGloble.WCSSystem,
                                };
                                        CreateTime = DateTime.Now,
                                        CreateUserName = SysGloble.WCSSystem,
                                        UpdateTime = DateTime.Now,
                                        UpdateUserName = SysGloble.WCSSystem,
                                    };
                                wmsDB.wms_rbline_task.Add(new_task);
                                    wmsDB.wms_rbline_task.Add(new_task);
                                var place = StationHandler.GetPlaceByPlaceCode(x.PlaceCode, wmsDB);
                                place.PlaceStatus = (int)PlaceStatusEnum.锁定;
                                    var place = StationHandler.GetPlaceByPlaceCode(x.PlaceCode, wmsDB);
                                    place.PlaceStatus = (int)PlaceStatusEnum.锁定;
                                Thread.Sleep(100);
                                    Thread.Sleep(100);
                                }
                            }
                            wmsDB.SaveChanges();
                        }
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/5¡¢CC_DataProcess_RobotBuffer_ForceOutbound.cs
@@ -1,4 +1,5 @@
using Admin.NET.Application;
using iWareCC.Common.Helper;
using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
@@ -45,7 +46,8 @@
                        //生成出库任务
                        //记录任务
                        var _id = Yitter.IdGenerator.YitIdHelper.NextId();
                        var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
                        var plcTaskNo = BusinessHelper.CreatePlcTaskId();
                        plcTaskNo = MyExtendHelper.GetNewTaskNo(wmsDB, RbTaskTypeEnum.强制出库任务, plcTaskNo);
                        var new_task = new wms_rbline_task()
                        {
                            Id = _id,
CC/iWareCC_ASRS/ThreadService/03_BZ12(»úÆ÷ÈËÂë°ü¹¤Î»)/1¡¢DataProcess_BZ12.cs
@@ -201,7 +201,8 @@
                                //记录任务
                                var _id = Yitter.IdGenerator.YitIdHelper.NextId();
                                var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
                                var plcTaskNo = BusinessHelper.CreatePlcTaskId();
                                plcTaskNo = MyExtendHelper.GetNewTaskNo(wmsDB, RbTaskTypeEnum.码板任务, plcTaskNo);
                                var task = new wms_rbline_task()
                                {
                                    Id = _id,
CC/iWareCC_ASRS/ThreadService/04_BZ21£¨°áÔËÕû¶â»úÆ÷ÈË£©/1¡¢DataProcess_BZ21.cs
@@ -179,8 +179,8 @@
                                //记录任务
                                var _id = Yitter.IdGenerator.YitIdHelper.NextId();
                                var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
                                var plcTaskNo = BusinessHelper.CreatePlcTaskId();
                                plcTaskNo = MyExtendHelper.GetNewTaskNo(wmsDB, RbTaskTypeEnum.合包任务, plcTaskNo);
                                //新增任务表
                                var task = new wms_rbline_task()
CC/iWareCommon/BusinessHelper/BusinessHelper.cs
@@ -111,15 +111,7 @@
        }
        /// <summary>
        /// éšæœºç”Ÿæˆ1-10000的PLC任务号
        /// </summary>
        /// <returns></returns>
        public static string CreatePlcTaskId()
        {
            int iSeed = 10000;
            return new Random(Guid.NewGuid().GetHashCode()).Next(1, iSeed).ToString();
        }
        /// <summary>
        /// åˆ›å»ºè¾“送线任务号,随机生成(1, 3000)的PLC任务号
        /// </summary>
@@ -139,5 +131,12 @@
            //从101-9999,为什么要从101开始,因为1-100作为手动任务下发。【EditBy shaocx,2022-05-10】
            return new Random(Guid.NewGuid().GetHashCode()).Next(101, iSeed).ToString();
        }
        public static string CreatePlcTaskId()
        {
            int iSeed = 9999;
            //从101-9999,为什么要从101开始,因为1-100作为手动任务下发。【EditBy shaocx,2022-05-10】
            return new Random(Guid.NewGuid().GetHashCode()).Next(101, iSeed).ToString();
        }
    }
}
CC/iWareSql/WmsDBModel/wms_stock_quan.cs
@@ -43,6 +43,8 @@
        public double Thk { get; set; }
        public int? Shelf { get; set; }
        public int StockStatus { get; set; }
        [Required]
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)
        {
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsStockQuan/WmsStockQuan.cs
@@ -79,6 +79,9 @@
        public float Thk { get; set; }
        [SugarColumn(ColumnName = "Shelf", ColumnDescription = "次序")]
        public int? Shelf { get; set; }
        #region åº“存状态