/// <summary> /// 更新冷链数据上报处理进度 /// </summary> /// <param name="progress"></param> /// <returns></returns> public static bool UpdateUploadProgress(UploadDataProgress progress, bool haveData = true) { int handleFlag = 0; string sql = string.Empty; try { if (haveData && progress.endNodeTime > progress.uploadProgress) { sql = string.Format("update uploadDataProgress set lastHandleTime='{0}',uploadProgress='{1}' where Id = {2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), progress.uploadProgress.ToString("yyyy-MM-dd HH:mm:ss"), progress.Id); DbHelperMySQL.ExecuteSql(sql); return(true);//如果还有数据则不更新标记 } handleFlag = progress.endNodeTime <= progress.uploadProgress ? 1 : 0; sql = string.Format("update uploadDataProgress set handleFlag='{0}',lastHandleTime='{1}',uploadProgress='{3}' where Id = {2}", handleFlag, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), progress.Id, progress.uploadProgress.ToString("yyyy-MM-dd HH:mm:ss")); return(DbHelperMySQL.ExecuteSql(sql) == 1); } finally { try { if (Utility._LinkType == "2" && handleFlag == 1) { //检查是否所有节点与冷链数据都已经上报完成 sql = string.Format("select count(*)-p.c as count from waybill_node n INNER JOIN (select Count(*) c from uploaddataprogress where relationId='{0}' and handleFlag=1) p where n.scannumber='{0}';", progress.relationId); int count = Convert.ToInt32(DbHelperMySQL.GetSingle(sql)); if (count == 1) { //数据已上报完成 M_TMSEnd end = new M_TMSEnd() { Arrived = true, OrderNo = progress.relationId, JcOrderNo = GetJcOrderNoForProgress(progress.relationId) }; string xmlStr = Utility.ParseXMLToString(end); string receiverCode = TMSOrderServer.GetAllLoginkSenderCode("2")[0]; LoginkHelp.Send(Utility._SecurityURL, Utility._TransportURL, Utility._MyCode, Utility._MyPwd, receiverCode, xmlStr, ActionType.JTWL_ENTRUST_TRANS_BookingNoteStatus); } } } catch (Exception ex) { Console.WriteLine("上报TMSEnd失败:" + ex.Message); } } }
public static bool UpdateCurrentRelationUploadDataNode(RelationModel relation, bool isArrived) { if (relation.CurrentUploadDataNodeId == -1 || string.IsNullOrEmpty(relation.CurrentUploadDataTime)) { return(true); } string sql = string.Format("update huadong_tmsorder_waybillbase set CurrentUploadDataNodeId = '{0}',CurrentUploadDataTime='{1}' where id='{2}'", isArrived ? 0 : relation.CurrentUploadDataNodeId, relation.CurrentUploadDataTime, relation.Id); try { bool result = DbHelperMySQL.ExecuteSql(sql) > 0; UpdateHandleTHTime(relation.Id, result); return(result); } catch (Exception ex) { throw new Exception("RelationId[" + relation.RelationId + "] 更新节点冷链数据进度出错:" + ex.Message + " SQL[" + sql + "]"); } finally { if (isArrived && Utility._LinkType == "2") { try { //数据已上报完成 M_TMSEnd end = new M_TMSEnd() { Arrived = true, OrderNo = relation.RelationId, JcOrderNo = relation.Number }; string xmlStr = Utility.ParseXMLToString(end); string receiverCode = TMSOrderServer.GetAllLoginkSenderCode(relation.CustomerId.ToString())[0]; LoginkHelp.Send(Utility._SecurityURL, Utility._TransportURL, Utility._MyCode, Utility._MyPwd, receiverCode, xmlStr, ActionType.JTWL_ENTRUST_TRANS_BookingNoteStatus); } catch (Exception ex) { throw new Exception("上报TMSEnd失败[" + ex.Message + "]"); } } } }