| 
					
				 | 
			
			
				@@ -1,4 +1,5 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using DBHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using Microsoft.EntityFrameworkCore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Linq; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -10,63 +11,151 @@ using WCS.Service.Extensions; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 namespace WCS.Service.Works.Station 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //[WorkTitle(typeof(ProductHandler), "一楼入库扫码")] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //internal class 一楼入库 : DeviceWork<StationDevice> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //    private readonly string Conv_1028 = "1028"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //    private readonly string Conv_1029 = "1029"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //    protected override bool SelectDevice(WCS_DEVICE dev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //        return dev.CODE == Conv_1028 || dev.CODE == Conv_1029; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //    protected override void Do(StationDevice dev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //        dev.EX(dev => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            var code = dev.Entity.CODE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            if (dev.Data.VoucherNo != dev.Data2.VoucherNo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                throw new WarnException($"等待任务[{dev.Data2.Tasknum}]执行--凭证号不一致[{dev.Data.VoucherNo}][{dev.Data2.VoucherNo}]"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态)) throw new DoException("无光电"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            if (dev.Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException("设备运行中"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            if (dev.Data2.Request != IstationRequest.扫码入库) throw new WarnException("有光电无请求"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            if (dev.Data2.Tasknum > 10000) throw new WarnException("有光电有请求,但已生产任务"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            var bcr = dev.Entity.BCR(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            var barcode = bcr.Content.Trim('\r'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            if (barcode == "") throw new WarnException("扫码失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            var info = WMS.I_WCS_GetInTask(barcode, dev.Entity.CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            var next = dev.Entity.CODE == Conv_1028 ? "1030" : "1031"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            if (db.Default.Set<WCS_TASK>().Any(v => v.BARCODE == info.ContainerCode && v.STATUS<TaskStatus.已完成 && v.TYPE == TaskType.入库)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                        throw new WarnException($"WCS有正在执行的{info.ContainerCode},WMS任务号:{info.WMSTaskNum}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            var station = dev.Entity.CODE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            DB.Do(db => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                var task = new WCS_TASK(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.BARCODE = info.ContainerCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.TYPE = TaskType.入库; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.STATUS = TaskStatus.执行中; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.ADDRFROM = dev.Entity.CODE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.ADDRTO = info.EndPostion; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.STARTTIME = DateTime.Now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.UPDATEUSER = "WCS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.UPDATETIME = DateTime.Now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.WMSTASK = int.Parse(info.WMSTaskNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.TaskGroupKey = info.TaskGroupKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.ADDRNEXT = next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.HEIGHT = dev.Data2.GoodsSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                db.Default.Set<WCS_TASK>().Add(task); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                db.Default.SaveChanges(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                dev.Data.Tasknum = task.ID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                dev.Data.Goodsstart = task.ADDRFROM.ToShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                dev.Data.Goodsend = task.ADDRNEXT.ToShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                dev.Data.CmdType = IstationCmdType.扫码入库; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                dev.Data.VoucherNo++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                var msg = $"下达从{dev.Entity.CODE}移动至{next}的PLC指令。"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                msg += $"[{dev.Data.Tasknum}][{dev.Data.Goodsstart}][{dev.Data.Goodsend}][{dev.Data.VoucherNo}[{dev.Data2.VoucherNo}]"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //                task.CreateStatusLog(db, msg, this.GetType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     [WorkTitle(typeof(ProductHandler), "一楼入库扫码")] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    internal class 一楼入库 : DeviceWork<StationDevice> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    internal class 一楼入库 : Work<StationDeviceGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private readonly string Conv_1028 = "1028"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private readonly string Conv_1029 = "1029"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected override bool SelectDevice(WCS_DEVICE dev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return dev.CODE == Conv_1028 || dev.CODE == Conv_1029; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return dev.CODE == "G1028"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        protected override void Do(StationDevice dev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        protected override void Do(StationDeviceGroup obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dev.EX(dev => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            obj.EX(obj => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var code = dev.Entity.CODE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (dev.Data.VoucherNo != dev.Data2.VoucherNo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new WarnException($"等待任务[{dev.Data2.Tasknum}]执行--凭证号不一致[{dev.Data.VoucherNo}][{dev.Data2.VoucherNo}]"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态)) throw new DoException("无光电"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (dev.Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException("设备运行中"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (dev.Data2.Request != IstationRequest.扫码入库) throw new WarnException("有光电无请求"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (dev.Data2.Tasknum > 10000) throw new WarnException("有光电有请求,但已生产任务"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var bcr = dev.Entity.BCR(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var barcode = bcr.Content.Trim('\r'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (barcode == "") throw new WarnException("扫码失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var info = WMS.I_WCS_GetInTask(barcode, dev.Entity.CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var next = dev.Entity.CODE == Conv_1028 ? "1030" : "1031"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var station = dev.Entity.CODE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //设备组无论单卷还是双卷都必须满足的条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (obj.Items.Any(v => v.Data.VoucherNo != v.Data2.VoucherNo)) throw new WarnException($"等待任务执行--凭证号不一致"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (obj.Items.Any(v => !v.Data2.Status.HasFlag(IstationStatus.光电状态))) throw new DoException($"无光电"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (obj.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new WarnException($"设备运行中"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //成功创建的任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var finishTaskList = new List<Tuple<int, StationDevice>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //创建对应的任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DB.Do(db => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var task = new WCS_TASK(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.BARCODE = info.ContainerCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.TYPE = TaskType.入库; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.STATUS = TaskStatus.执行中; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.ADDRFROM = dev.Entity.CODE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.ADDRTO = info.EndPostion; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.STARTTIME = DateTime.Now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.UPDATEUSER = "WCS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.UPDATETIME = DateTime.Now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.WMSTASK = int.Parse(info.WMSTaskNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.TaskGroupKey = info.TaskGroupKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.ADDRNEXT = next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.HEIGHT = dev.Data2.GoodsSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    db.Default.Set<WCS_TASK>().Add(task); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    foreach (var dev in obj.Items) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (dev.Data2.Request != IstationRequest.扫码入库) continue; //没有请求 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (dev.Data2.Tasknum > 10000) continue; //没有任务号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var bcr = dev.Entity.BCR(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var barcode = bcr.Content.Trim('\r'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (barcode == "") continue; //扫码失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var info = WMS.I_WCS_GetInTask(barcode, dev.Entity.CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var next = dev.Entity.CODE == "1028" ? "1030" : "1031"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (db.Default.Set<WCS_TASK>().AsNoTracking().Any(v => v.BARCODE == info.ContainerCode && v.STATUS < TaskStatus.已完成 && v.TYPE == TaskType.入库)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            throw new WarnException($"WCS有正在执行的{info.ContainerCode},WMS任务号:{info.WMSTaskNum}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var task = new WCS_TASK(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.BARCODE = info.ContainerCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.TYPE = TaskType.入库; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.STATUS = TaskStatus.执行中; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.ADDRFROM = dev.Entity.CODE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.ADDRTO = info.EndPostion; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.STARTTIME = DateTime.Now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.UPDATEUSER = "WCS"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.UPDATETIME = DateTime.Now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.WMSTASK = int.Parse(info.WMSTaskNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.TaskGroupKey = info.TaskGroupKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.ADDRNEXT = next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.HEIGHT = dev.Data2.GoodsSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        db.Default.Set<WCS_TASK>().Add(task); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        finishTaskList.Add(new Tuple<int, StationDevice>(task.ID, dev.Entity.Create<StationDevice>())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var msg = $"下达从{dev.Entity.CODE}移动至{next}的PLC指令。"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        msg += $"[{dev.Data.Tasknum}][{dev.Data.Goodsstart}][{dev.Data.Goodsend}][{dev.Data.VoucherNo}[{dev.Data2.VoucherNo}]"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        task.CreateStatusLog(db, msg, this.GetType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //两个任务一起创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     db.Default.SaveChanges(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dev.Data.Tasknum = task.ID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dev.Data.Goodsstart = task.ADDRFROM.ToShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dev.Data.Goodsend = task.ADDRNEXT.ToShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dev.Data.CmdType = IstationCmdType.扫码入库; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dev.Data.VoucherNo++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var msg = $"下达从{dev.Entity.CODE}移动至{next}的PLC指令。"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    msg += $"[{dev.Data.Tasknum}][{dev.Data.Goodsstart}][{dev.Data.Goodsend}][{dev.Data.VoucherNo}[{dev.Data2.VoucherNo}]"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    task.CreateStatusLog(db, msg, this.GetType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //检查对应的任务是否已创建成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DB.Do(db => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    foreach (var finishTask in finishTaskList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == finishTask.Item1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (task != null) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        finishTask.Item2.Data.Tasknum = task.ID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        finishTask.Item2.Data.Goodsstart = task.ADDRFROM.ToShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        finishTask.Item2.Data.Goodsend = task.ADDRNEXT.ToShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        finishTask.Item2.Data.CmdType = IstationCmdType.扫码入库; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        finishTask.Item2.Data.VoucherNo++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |