private static Boolean SetWorkProcessInfo(string billNo) { Boolean ret = false; ProduceData produceData = LibProduceCache.Default.GetProduceData(billNo); if (produceData != null) { foreach (DataRow curRow in produceData.WorkOrder.Tables[3].Rows) { ret = true; DataRow parentRow = produceData.WorkOrder.Tables[2].Rows.Find(new object[] { curRow["BILLNO"], curRow["PARENTROWID"] }); if (!LibSysUtils.ToBoolean(parentRow["NEEDGATHER"])) { continue; } string workstationId = LibSysUtils.ToString(curRow["WORKSTATIONID"]); if (!_ProductScheduling.WsRelWorkOrder.ContainsKey(workstationId)) { _ProductScheduling.WsRelWorkOrder.Add(workstationId, new List <string>() { billNo }); } if (!_ProductScheduling.WsRelWorkOrder[workstationId].Contains(billNo)) { _ProductScheduling.WsRelWorkOrder[workstationId].Add(billNo); } if (produceData.FirstWorkProcessNo.Contains(LibSysUtils.ToInt32(parentRow["WORKPROCESSNO"])) && !_ProductScheduling.FirstWs.Contains(workstationId)) { _ProductScheduling.FirstWs.Add(workstationId); } } } return(ret); }
/// <summary> /// 将object格式化成字节数组byte[] /// </summary> /// <param name="billNo">单据编号</param> /// <returns>字节数组</returns> public ProduceData GetProduceData(string billNo) { ProduceData produceData = null; string json = this.StringGet(billNo); if (!string.IsNullOrEmpty((json))) { produceData = JsonUtiler.Deserialize <ProduceData>(json); } if (produceData == null) { object lockItem = lockObjDic.GetOrAdd(billNo, new object()); lock (lockItem) { json = this.StringGet(billNo); if (!string.IsNullOrEmpty((json))) { produceData = JsonUtiler.Deserialize <ProduceData>(json); } // produceData = this.Get< ProduceData>(billNo) ; if (produceData == null) { //CacheItemPolicy policy = new CacheItemPolicy(); //policy.SlidingExpiration = new TimeSpan(0, 60, 0); //60分钟内不访问自动剔除 LibBcfData ppWorkOrderBcf = (LibBcfData)LibBcfSystem.Default.GetBcfInstance("pp.WorkOrder"); DataSet ds = ppWorkOrderBcf.BrowseTo(new object[] { billNo }); produceData = new ProduceData(ds); this.Set(billNo, produceData, new TimeSpan(0, 720, 0)); // byte[] binaryDataResult = GetBinaryFormatData(produceData); // Default.StringSetBytes(billNo, binaryDataResult, new TimeSpan(0, 30, 0)); } } } return(produceData); }