示例#1
0
        /// <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);
                }
            }
        }
示例#2
0
        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 + "]");
                    }
                }
            }
        }