/// <summary> /// 获取指定节点的关联的冷藏载体信息 /// </summary> /// <param name="nodeId">指定节点ID</param> /// <returns></returns> private static void GetStorageByNodeId(int nodeId, ref DETAIL d) { try { string sql = "select n.*,s.StorageType,s.Driver,s.DriverTel from waybill_Node n left join coldStorage s on n.storageId=s.id where n.id='" + nodeId + "'"; string storageName = string.Empty; int storageType = 0; using (MySqlDataReader reader = DbHelperMySQL.ExecuteReader(sql)) { if (reader.Read()) { storageName = reader["storageName"].ToString(); storageType = Convert.ToInt32(reader["storageType"]); } } if (storageType == 1) { d.WAREHOUSECODE = storageName; } else if (storageType == 2) { d.LICENSENO = storageName; } } catch (Exception ex) { throw new Exception("获取节点时间失败:" + ex.Message); } }
public IHttpActionResult PutDETAIL(string id, DETAIL dETAIL) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != dETAIL.PanCardNumber) { return(BadRequest()); } db.Entry(dETAIL).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!DETAILExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public ActionResult CREATEADD([Bind(Include = "MADT,MAHD,SOLUONG,MASP,TENSP,MALO,GIANHAP,GIABAN,TIEN,NGAYBAN")] DETAIL dETAIL) { dETAIL.MALO = dETAIL.MASP.Substring(6); dETAIL.MASP = dETAIL.MASP.Substring(0, 6); var listsp = db.SANPHAMs.Where(x => (x.MASP == dETAIL.MASP) && (x.MALO == dETAIL.MALO)); SANPHAM sp = listsp.FirstOrDefault(); if (sp.SL < dETAIL.SOLUONG) { int flag = 0; return(RedirectToAction("IndexADD", new { id = dETAIL.MAHD, flag })); } else { HOADON hOADON = db.HOADONs.Find(dETAIL.MAHD); dETAIL.NGAYBAN = hOADON.NGAYBAN; dETAIL.GIANHAP = sp.GIANHAP; dETAIL.GIABAN = (((sp.GIANHAP * (sp.LOINHUAN + 100)) / 100) * ((100 - sp.Sale))) / 100; dETAIL.TIEN = dETAIL.GIABAN * dETAIL.SOLUONG; dETAIL.TENSP = sp.TENSP; sp.SL = sp.SL - dETAIL.SOLUONG; db.DETAILs.Add(dETAIL); db.SaveChanges(); int flag = 1; return(RedirectToAction("IndexADD", new { id = dETAIL.MAHD, flag })); } }
public IHttpActionResult PostDETAIL(DETAIL dETAIL) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.DETAILS.Add(dETAIL); try { db.SaveChanges(); } catch (DbUpdateException) { if (DETAILExists(dETAIL.PanCardNumber)) { return(Conflict()); } else { throw; } } return(CreatedAtRoute("DefaultApi", new { id = dETAIL.PanCardNumber }, dETAIL)); }
public ActionResult DeleteConfirmed(int id) { DETAIL dETAIL = db.DETAILs.Find(id); db.DETAILs.Remove(dETAIL); db.SaveChanges(); return(RedirectToAction("Index", new { id = dETAIL.MAHD })); }
public ActionResult Edit([Bind(Include = "MADT,MAHD,SOLUONG,MASP,TENSP,DONGIA,TIEN,NGAYBAN")] DETAIL dETAIL) { if (ModelState.IsValid) { db.Entry(dETAIL).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", new { id = dETAIL.MAHD })); } return(View(dETAIL)); }
public IHttpActionResult GetDETAIL(string id) { DETAIL dETAIL = db.DETAILS.Find(id); if (dETAIL == null) { return(NotFound()); } return(Ok(dETAIL)); }
public IHttpActionResult DeleteDETAIL(string id) { DETAIL dETAIL = db.DETAILS.Find(id); if (dETAIL == null) { return(NotFound()); } db.DETAILS.Remove(dETAIL); db.SaveChanges(); return(Ok(dETAIL)); }
public ActionResult Create([Bind(Include = "MADT,MAHD,SOLUONG,MASP,TENSP,GIANHAP,GIABAN,TIEN,NGAYBAN")] DETAIL dETAIL) { SANPHAM sp = db.SANPHAMs.Find(dETAIL.MASP); dETAIL.GIANHAP = sp.GIANHAP; dETAIL.GIABAN = sp.GIANHAP * sp.LOINHUAN / 100; dETAIL.TIEN = dETAIL.GIABAN * dETAIL.SOLUONG; dETAIL.TENSP = sp.TENSP; db.DETAILs.Add(dETAIL); db.SaveChanges(); return(RedirectToAction("Index", new { id = dETAIL.MAHD })); }
// GET: DETAILs/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DETAIL dETAIL = db.DETAILs.Find(id); if (dETAIL == null) { return(HttpNotFound()); } return(View(dETAIL)); }
internal static void FindOrAddDetail(FlextourEntities context, Guid?supplierGuid, string table, string linkValue, string productType, string recType, string language, string code, string data) { //language and productType should be null if not required, never string.Empty var detail = context.DETAIL.FirstOrDefault(d => d.LINK_TABLE == table && d.LINK_VALUE == linkValue && d.Language_Code == language && d.RECTYPE == recType && d.ProductType == productType && d.CODE == code && d.Supplier_GUID == supplierGuid); if (detail == null) { detail = new DETAIL() { LINK_TABLE = table, LINK_VALUE = linkValue, ProductType = productType, RECTYPE = recType, Language_Code = language, CODE = code, Supplier_GUID = supplierGuid }; context.DETAIL.AddObject(detail); } detail.NOTE = data; }
public string[] FindVoices(DETAIL detail, Human.CULTIVATE cultivate, Human.CHARATYPE charaType) { string chara = FirstCharToUpper(charaType.ToString()); string cult = FirstCharToUpper(cultivate.ToString()); string detailStr = detail.ToString(); string lookupString = String.Format("{0}-{1}-{2}", chara, cult, detailStr); if (cacheResults && cache.ContainsKey(lookupString)) { return(cache[lookupString]); } var results = new List <string>(); int i = 0; foreach (var folder in GetFolderList(chara, cult, detailStr)) { results.AddRange(GetMusicFiles(folder, i++ < 4)); if (results.Count > 0 && useFallback) { break; } } var resultsArr = results.ToArray(); if (cacheResults) { cache[lookupString] = resultsArr; } return(resultsArr); }
public static Model.NodeDataUpload.XML GetNextWaitUploadDatas(List <string> senderCodeList, ref List <M_TMSData> loginkData, out RelationModel relation) { Model.NodeDataUpload.XML result = null; relation = new RelationModel(); try { relation = GetNextWaitUploadDataOrderRelation(senderCodeList);//, ref _ignoreTempRelationList); if (relation != null) { NodeInfo nodeInfo = NodeUploadServer.GetNextUploadNodeInfo(relation.CurrentUploadDataNodeId, relation.Number); if (nodeInfo != null) { //从未上报过节点数据 if (string.IsNullOrEmpty(relation.CurrentUploadDataTime) || relation.CurrentUploadDataNodeId == null || relation.CurrentUploadDataNodeId == -1) { relation.CurrentUploadDataTime = nodeInfo.OperateAt; relation.CurrentUploadDataNodeId = nodeInfo.Id; //更新冷链数据上报进度 bool isUpdataRelation = UpdateCurrentRelationUploadDataNode(relation, false); string info = string.Format("R【{0}】 O【{1}】 N【{2}】 T【{3}】", relation.RelationId, relation.Number, relation.CurrentUploadDataNodeId, relation.CurrentUploadDataTime); throw new Exception(info + (isUpdataRelation ? "更新为首节点成功." : "更新为首节点失败.")); //throw new Exception("首个节点暂不上报数据 " ); } else { //获取待上报数据 DataTable dt = GetStorageData((int)relation.CurrentUploadDataNodeId, DateTime.Parse(relation.CurrentUploadDataTime), DateTime.Parse(nodeInfo.OperateAt).AddDays(1));//结束时间+30分钟改为24小时 if (dt == null) { string info = string.Format("R【{0}】 O【{1}】 N【{2}】 T【{3}】", relation.RelationId, relation.Number, relation.CurrentUploadDataNodeId, relation.CurrentUploadDataTime); if ((DateTime.Now - DateTime.Parse(relation.CurrentUploadDataTime)).TotalDays > int.Parse(Utility._StorageDataTimeOut)) { relation.CurrentUploadDataTime = nodeInfo.OperateAt; relation.CurrentUploadDataNodeId = nodeInfo.Id; bool isUpdataRelation = UpdateCurrentRelationUploadDataNode(relation, false); throw new Exception(info + "放弃等待当前载体温湿度,已过" + int.Parse(Utility._StorageDataTimeOut) + "*24小时 更新为下一节点" + (isUpdataRelation ? "成功." : "失败.")); } else { UpdateHandleTHTime(relation.Id, false); //_ignoreTempRelationList.Add(relation.Id); throw new Exception(info + "没有新的载体温湿度."); } } result = new Model.NodeDataUpload.XML(); result.CONTENTLIST = new List <CONTENT>(); result.CONTENTLIST.Add(new CONTENT()); result.CONTENTLIST[0].DETAILLIST = new List <DETAIL>(); DETAIL dModel = new DETAIL(); dModel.ECNO = NodeUploadServer.GetShipmentCodeByTMSOrder(relation.RelationId); dModel.LEGNO = relation.RelationId; Utility.AddLogText(string.Format("dModel:ECNO:{0},LEGNO:{1},RelationId:{2}", dModel.ECNO, dModel.LEGNO, relation.RelationId)); GetStorageByNodeId((int)relation.CurrentUploadDataNodeId, ref dModel); loginkData = new List <M_TMSData>(); foreach (DataRow row in dt.Rows) { string temp = row["t"] is DBNull ? string.Empty : row["t"].ToString(); string hump = string.Empty; try { hump = row["h"] is DBNull ? string.Empty : row["h"].ToString(); } catch { } if (temp == "System.Byte[]") { temp = System.Text.Encoding.Default.GetString(row["t"] as byte[]); } if (hump == "System.Byte[]") { hump = System.Text.Encoding.Default.GetString(row["h"] as byte[]); } DETAIL detail = new DETAIL(); detail.ECNO = dModel.ECNO; detail.LEGNO = dModel.LEGNO; detail.LICENSENO = dModel.LICENSENO; detail.WAREHOUSECODE = dModel.WAREHOUSECODE; detail.TRACKTIME = Convert.ToDateTime(row["datatime"]).ToString("yyyy-MM-dd HH:mm:ss"); detail.TEMPREATURE = temp.Replace("-300.0", "").Replace("-300", ""); detail.HUMIDITY = hump.Replace("-300.0", "").Replace("-300", ""); try { detail.LONGITUDE = row["lo"] is DBNull ? string.Empty : row["lo"].ToString(); } catch { } try { detail.LATITUDE = row["la"] is DBNull ? string.Empty : row["la"].ToString(); } catch { } Utility.AddLogText(string.Format("detail:ECNO:{0},LEGNO:{1}", detail.ECNO, detail.LEGNO)); result.CONTENTLIST[0].DETAILLIST.Add(detail); M_TMSData data = new M_TMSData(); data.Latitude = detail.LATITUDE == string.Empty ? null : detail.LATITUDE.ToString(); data.Longitude = detail.LONGITUDE == string.Empty ? null : detail.LONGITUDE.ToString(); data.RecordTime = Convert.ToDateTime(row["datatime"]); data.OrderNo = relation.RelationId; data.JcOrderNo = relation.Number; data.JcNodeId = (int)relation.CurrentUploadDataNodeId; Type t = data.GetType(); for (int i = 0; i < temp.Split('|').Count(); i++) { t.GetProperty("T" + (i + 1)).SetValue(data, temp.Split('|')[i].ToString(), null); } for (int i = 0; i < hump.Split('|').Count(); i++) { t.GetProperty("RH" + (i + 1)).SetValue(data, hump.Split('|')[i].ToString(), null); } loginkData.Add(data); relation.CurrentUploadDataTime = detail.TRACKTIME; if (DateTime.Parse(detail.TRACKTIME) >= DateTime.Parse(nodeInfo.OperateAt)) { break; } } } } else { UpdataUploadDataNode(relation);//, ref _ignoreTempRelationList); } } } catch (Exception ex) { //if (relation != null) // _ignoreTempRelationList.Add(relation.Id); throw new Exception(ex.Message); } return(result); }
/// <summary> /// 上上报机制 节点上报 /// </summary> /// <param name="senderCodeList"></param> /// <param name="loginkNode"></param> /// <param name="nodeInfo"></param> /// <returns></returns> public static XML GetWaitUploadNode(List <string> senderCodeList, ref M_TMSNode loginkNode, ref NodeInfo nodeInfo) { XML result = null; try { nodeInfo = GetWaitUploadNode(senderCodeList); if (nodeInfo != null) { result = new XML(); result.CONTENTLIST = new List <CONTENT>(); result.CONTENTLIST.Add(new CONTENT()); result.CONTENTLIST[0].DETAILLIST = new List <DETAIL>(); string driverInfo = ((nodeInfo.Driver == null ? string.Empty : nodeInfo.Driver) + " " + (nodeInfo.DriverTel == null ? string.Empty : nodeInfo.DriverTel)).Trim(); string trackType = "17"; if (nodeInfo.ParentStorageId == 0) { trackType = "15";//启运 } else if (nodeInfo.Arrived == 2) { trackType = "18";//正常签收 } else if (nodeInfo.StorageType == 1) { trackType = "16";//到中转站 } else { trackType = "17";//中转站驾驶员已接单出发 } //if (senderCodeList != null) //{ loginkNode = new M_TMSNode(); loginkNode.JcOrderNo = nodeInfo.ScanNumber; loginkNode.JcNodeId = nodeInfo.Id; loginkNode.TrackPerson = driverInfo; loginkNode.TrackInfo = nodeInfo.Content; loginkNode.TrackTime = DateTime.Parse(nodeInfo.OperateAt); loginkNode.Arrived = nodeInfo.Arrived; loginkNode.OrderNo = nodeInfo.ScanNumber; loginkNode.TrackType = trackType; loginkNode.StorageName = nodeInfo.StorageName; //} //else //{ DETAIL d = new DETAIL(); d.ECNO = nodeInfo.ShipmentCode; d.CECNO = nodeInfo.ScanNumber; d.LEGNO = nodeInfo.ScanNumber; d.TRACKTIME = DateTime.Parse(nodeInfo.OperateAt).ToString("yyyy-MM-dd HH:mm:ss"); d.TRACKPERSON = driverInfo; d.TRACKINFO = nodeInfo.Content; d.TRACKTYPE = trackType; result.CONTENTLIST[0].DETAILLIST.Add(d); } } catch (Exception ex) { throw new Exception("获取待上报节点失败:" + ex.Message); } return(result); }
/// <summary> /// 获取第一个需要上报的运单的下一个需要上报的节点 /// </summary> /// <returns></returns> public static XML GetFirstWaitUploadNode(List <string> senderCodeList, ref M_TMSNode loginkNode, out RelationModel relation) { XML result = null; try { Utility.AddLogText(string.Format("开始查询下一个上报节点")); relation = GetFirstWaitUploadNodeOrderRelation(senderCodeList);//, ref _ignoreTempRelationList); if (relation != null) { Utility.AddLogText(string.Format("CECNO:{0},LEGNO:{1}", relation.Number, relation.RelationId)); } if (relation != null) { NodeInfo nodeInfo = GetNextUploadNodeInfo(relation.CurrentUploadNodeId, relation.Number); if (nodeInfo != null) { string driverInfo = ((nodeInfo.Driver == null ? string.Empty : nodeInfo.Driver) + " " + (nodeInfo.DriverTel == null ? string.Empty : nodeInfo.DriverTel)).Trim(); string trackType = "17"; if (relation.CurrentUploadNodeId == null || relation.CurrentUploadNodeId == -1) { trackType = "15";//启运 } else if (nodeInfo.Arrived == 2) { trackType = "18";//正常签收 } else if (nodeInfo.StorageType == 1) { trackType = "16";//到中转站 } else { trackType = "17";//中转站驾驶员已接单出发 } //if (senderCodeList != null) //{ loginkNode = new M_TMSNode(); loginkNode.JcOrderNo = relation.Number; loginkNode.JcNodeId = nodeInfo.Id; loginkNode.TrackPerson = driverInfo; loginkNode.TrackInfo = nodeInfo.Content; loginkNode.TrackTime = DateTime.Parse(nodeInfo.OperateAt); loginkNode.Arrived = nodeInfo.Arrived; loginkNode.OrderNo = relation.RelationId; loginkNode.TrackType = trackType; loginkNode.StorageName = nodeInfo.StorageName.Replace("[默认]", string.Empty); //} //else //{ result = new XML(); result.CONTENTLIST = new List <CONTENT>(); result.CONTENTLIST.Add(new CONTENT()); result.CONTENTLIST[0].DETAILLIST = new List <DETAIL>(); DETAIL d = new DETAIL(); d.ECNO = GetShipmentCodeByTMSOrder(relation.RelationId); d.CECNO = relation.Number; d.LEGNO = relation.RelationId; d.TRACKTIME = DateTime.Parse(nodeInfo.OperateAt).ToString("yyyy-MM-dd HH:mm:ss"); d.TRACKPERSON = driverInfo; d.TRACKINFO = nodeInfo.Content; d.TRACKTYPE = trackType; result.CONTENTLIST[0].DETAILLIST.Add(d); relation.CurrentUploadDataTime = nodeInfo.StorageName.Replace("[默认]", string.Empty);//此字段暂存车牌号 ////} relation.CurrentUploadNodeId = nodeInfo.Id; Utility.AddLogText(string.Format("ECNO:{0},CECNO:{1}", d.ECNO, d.CECNO)); } } } catch (Exception ex) { Utility.AddLogText("GetFirstWaitUploadNode异常:" + ex.Message); throw ex; } return(result); }
void OnGUI() { if (WMSK.instance == null) { DestroyImmediate(this); EditorGUIUtility.ExitGUI(); return; } EditorGUILayout.HelpBox("This tool will generate countries or provinces based on the color information of a given texture.", MessageType.Info); EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Load Texture File...", GUILayout.Width(140))) { filePath = EditorUtility.OpenFilePanelWithFilters("Select Texture File", "", new string[] { "Image files", "png,jpg,jpeg" }); if (filePath.ToUpper().Contains("PROVINC")) { mode = TerritoriesImporterMode.Provinces; } ReadTexture(); } if (texture != null && GUILayout.Button("Reload Texture", GUILayout.Width(120))) { ReadTexture(); } EditorGUILayout.EndHorizontal(); if (texture != null) { textureRectWidth = (int)position.width - 400; textureRectHeight = (int)position.height - 70; textureRect = new Rect(390, 55, textureRectWidth, textureRectHeight); GUI.DrawTexture(textureRect, texture, ScaleMode.StretchToFill); EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Creation Mode", GUILayout.Width(150)); mode = (TerritoriesImporterMode)EditorGUILayout.IntPopup((int)mode, modes, modesValues, GUILayout.Width(120)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Detail", GUILayout.Width(150)); EditorGUI.BeginChangeCheck(); detail = (DETAIL)EditorGUILayout.EnumPopup(detail, GUILayout.Width(120)); if (EditorGUI.EndChangeCheck()) { ReadTexture(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (mode == TerritoriesImporterMode.Countries) { GUI.enabled = false; snapToCountryFrontiers = false; } GUILayout.Label("Snap To Country Frontiers", GUILayout.Width(150)); snapToCountryFrontiers = EditorGUILayout.Toggle(snapToCountryFrontiers, GUILayout.Width(40)); GUI.enabled = true; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(new GUIContent("Additive", "Do not remove existing entities"), GUILayout.Width(150)); additive = EditorGUILayout.Toggle(additive, GUILayout.Width(40)); EditorGUILayout.EndHorizontal(); // Background Color if (colorTexStyle == null) { colorTexStyle = new GUIStyle(GUI.skin.box); colorTexStyle.fixedWidth = 120; colorTexStyle.fixedHeight = 17; } EditorGUILayout.BeginHorizontal(); GUILayout.Label("Background Color", GUILayout.Width(150)); if (bgColorTex == null) { bgColorTex = MakeTex(150, 25, bgColor); colorTexStyle.normal.background = bgColorTex; Repaint(); } GUILayout.Box(bgColorTex, colorTexStyle, GUILayout.Width(120), GUILayout.Height(17)); if (colorPickerMode != COLOR_PICKER_MODE.BACKGROUND_COLOR) { if (GUILayout.Button("Pick", GUILayout.Width(60))) { colorPickerMode = COLOR_PICKER_MODE.BACKGROUND_COLOR; } } else if (GUILayout.Button("Cancel", GUILayout.Width(60))) { colorPickerMode = COLOR_PICKER_MODE.NONE; } EditorGUILayout.EndHorizontal(); if (colorPickerMode == COLOR_PICKER_MODE.BACKGROUND_COLOR) { GUILayout.Label("(Click on the texture to select background color)"); } // Colors EditorGUILayout.BeginHorizontal(); GUILayout.Label("Territory Colors (" + ti.goodColorCount + ")", GUILayout.Width(150)); if (goodColorsTex == null) { goodColorsTex = MakeTexGoodColors(250, 25); Repaint(); } GUILayout.Box(goodColorsTex, colorTexStyle, GUILayout.Width(120), GUILayout.Height(17)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("", GUILayout.Width(150)); if (colorPickerMode != COLOR_PICKER_MODE.GOOD_COLOR) { if (GUILayout.Button("Add", GUILayout.Width(60))) { colorPickerMode = COLOR_PICKER_MODE.GOOD_COLOR; } if (GUILayout.Button("Clear", GUILayout.Width(60))) { ti.ClearGoodColors(); goodColorsTex = null; GUIUtility.ExitGUI(); return; } } else { if (GUILayout.Button("Finish", GUILayout.Width(60))) { colorPickerMode = COLOR_PICKER_MODE.NONE; } GUILayout.Label("(Click on the texture to add a new color)"); } EditorGUILayout.EndHorizontal(); // Operations if (colorPickerMode != COLOR_PICKER_MODE.NONE) { Vector2 mousePos = Event.current.mousePosition; if (Event.current.button == 0 && Event.current.type == EventType.MouseDown && textureRect.Contains(mousePos)) { Color32 color = GetColor(mousePos - textureRect.min); if (colorPickerMode == COLOR_PICKER_MODE.BACKGROUND_COLOR) { bgColor = color; bgColorTex = null; colorPickerMode = COLOR_PICKER_MODE.NONE; GUIUtility.ExitGUI(); return; } else if (colorPickerMode == COLOR_PICKER_MODE.GOOD_COLOR) { if (!ti.IsGoodColor(color)) { ti.AddGoodColor(color); goodColorsTex = null; } } GUIUtility.ExitGUI(); } } if (working) { GUI.enabled = false; } if (ti != null) { EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); if (ti.goodColorCount == 0) { GUI.enabled = false; } if (GUILayout.Button(mode == TerritoriesImporterMode.Countries ? "Generate Countries" : "Generate Provinces", GUILayout.Width(150))) { if (AskConfirmation()) { if (mode == TerritoriesImporterMode.Provinces) { WMSK.instance.editor.ChangeEditingMode(EDITING_MODE.PROVINCES); WMSK.instance.drawAllProvinces = true; } working = true; ti.StartProcess(mode, snapToCountryFrontiers); } } GUI.enabled = true; EditorGUILayout.EndHorizontal(); } } }
public static Model.NodeDataUpload.XML GetNextWaitUploadDatasProgress(List <string> senderCodeList, ref List <M_TMSData> loginkData, out UploadDataProgress progress) { Model.NodeDataUpload.XML result = null; progress = null; try { progress = GetNextWaitUploadDataProgress(senderCodeList); if (progress != null) { DataTable dt = GetStorageData(0, progress.uploadProgress, progress.endNodeTime.AddDays(int.Parse(Utility._StorageDataTimeOut)), progress.storageId); if (dt == null) { string info = string.Format("PId【{0}】 RId【{1}】 Time【{2}】", progress.Id, progress.relationId, progress.uploadProgress.ToString("yyyy-MM-dd HH:mm:ss")); if ((DateTime.Now - progress.uploadProgress).TotalDays > int.Parse(Utility._StorageDataTimeOut)) { progress.uploadProgress = DateTime.Now; //progress.endNodeTime; UpdateUploadProgress(progress, false); throw new Exception(info + "放弃等待当前载体温湿度,已过" + int.Parse(Utility._StorageDataTimeOut) + "*24小时"); } else { UpdateUploadProgress(progress, false); throw new Exception(info + "没有新的载体温湿度."); } } result = new Model.NodeDataUpload.XML(); result.CONTENTLIST = new List <CONTENT>(); result.CONTENTLIST.Add(new CONTENT()); result.CONTENTLIST[0].DETAILLIST = new List <DETAIL>(); DETAIL dModel = new DETAIL(); dModel.ECNO = progress.shipmentCode; dModel.LEGNO = progress.relationId; Utility.AddLogText(string.Format("dModel:ECNO:{0},LEGNO:{1},RelationId:{2}", dModel.ECNO, dModel.LEGNO, progress.relationId)); if (progress.storageType == 1) { dModel.WAREHOUSECODE = progress.storageName; } else if (progress.storageType == 2) { dModel.LICENSENO = progress.storageName; } //GetStorageByNodeId((int)relation.CurrentUploadDataNodeId, ref dModel); loginkData = new List <M_TMSData>(); foreach (DataRow row in dt.Rows) { string temp = row["t"] is DBNull ? string.Empty : row["t"].ToString(); string hump = "-300.0"; try { hump = row["h"] is DBNull ? string.Empty : row["h"].ToString(); } catch { } if (temp == "System.Byte[]") { temp = System.Text.Encoding.Default.GetString(row["t"] as byte[]); } if (hump == "System.Byte[]") { hump = System.Text.Encoding.Default.GetString(row["h"] as byte[]); } DETAIL detail = new DETAIL(); detail.ECNO = dModel.ECNO; detail.LEGNO = dModel.LEGNO; detail.LICENSENO = dModel.LICENSENO; detail.WAREHOUSECODE = dModel.WAREHOUSECODE; detail.TRACKTIME = Convert.ToDateTime(row["datatime"]).ToString("yyyy-MM-dd HH:mm:ss"); detail.TEMPREATURE = temp; //.Replace("-300.0", "").Replace("-300", ""); detail.HUMIDITY = hump; //.Replace("-300.0", "").Replace("-300", ""); try { detail.LONGITUDE = row["lo"] is DBNull ? string.Empty : row["lo"].ToString(); } catch { } try { detail.LATITUDE = row["la"] is DBNull ? string.Empty : row["la"].ToString(); } catch { } Utility.AddLogText(string.Format("detail:ECNO:{0},LEGNO:{1}", detail.ECNO, detail.LEGNO)); //result.CONTENTLIST[0].DETAILLIST.Add(detail); M_TMSData data = new M_TMSData(); data.Latitude = detail.LATITUDE == string.Empty ? null : detail.LATITUDE.ToString(); data.Longitude = detail.LONGITUDE == string.Empty ? null : detail.LONGITUDE.ToString(); data.RecordTime = Convert.ToDateTime(row["datatime"]); data.OrderNo = progress.relationId; data.JcOrderNo = GetJcOrderNoForProgress(progress.relationId); data.JcNodeId = GetJcNodeIdForProgress(progress.relationId, progress.storageId, progress.nodeTime.ToString("yyyy-MM-dd HH:mm:ss")); Type t = data.GetType(); for (int i = 0; i < temp.Split('|').Count(); i++) { t.GetProperty("T" + (i + 1)).SetValue(data, temp.Split('|')[i].ToString(), null); } for (int i = 0; i < hump.Split('|').Count(); i++) { t.GetProperty("RH" + (i + 1)).SetValue(data, hump.Split('|')[i].ToString(), null); } //loginkData.Add(data); progress.uploadProgress = DateTime.Parse(detail.TRACKTIME); if (DateTime.Parse(detail.TRACKTIME) > progress.endNodeTime) { progress.uploadProgress = progress.endNodeTime; if (loginkData.Count == 0) { bool isUpdate = DataUploadServer.UpdateUploadProgress(progress); throw new Exception("仅一条末尾数据且大于节点结束时间,直接更新此进度:" + (isUpdate ? "成功" : "失败")); } break; } else { loginkData.Add(data); result.CONTENTLIST[0].DETAILLIST.Add(detail); } } } } catch (Exception ex) { throw new Exception("获取冷链数据失败:" + ex.Message); } return(result); }