예제 #1
0
 /// <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);
     }
 }
예제 #2
0
        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));
        }
예제 #3
0
        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 }));
            }
        }
예제 #4
0
        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));
        }
예제 #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            DETAIL dETAIL = db.DETAILs.Find(id);

            db.DETAILs.Remove(dETAIL);
            db.SaveChanges();
            return(RedirectToAction("Index", new { id = dETAIL.MAHD }));
        }
예제 #6
0
 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));
 }
예제 #7
0
        public IHttpActionResult GetDETAIL(string id)
        {
            DETAIL dETAIL = db.DETAILS.Find(id);

            if (dETAIL == null)
            {
                return(NotFound());
            }

            return(Ok(dETAIL));
        }
예제 #8
0
        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));
        }
예제 #9
0
        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 }));
        }
예제 #10
0
        // 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));
        }
예제 #11
0
        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;
        }
예제 #12
0
        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);
        }
예제 #13
0
        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);
        }
예제 #14
0
        /// <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);
        }
예제 #15
0
        /// <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();
                }
            }
        }
예제 #17
0
        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);
        }