public List <SelectVO> Select(JObject bo) { //int a = 9; //int b = 0; //double c = a / b; /************************************* * 在_damageVOs中查找 * { * "基地":["11","12"],用info里的tags * "发射平台":["井","车"],用info里的tags * "弹型":["DF-5C"] 用info里的tags。 * } *************************************/ try { Dictionary <string, List <string> > body = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, List <string> > >(bo.ToString()); List <InfoBO> ret = _mongoService.FindTargetByTag(body); var r = _noFilterDamageVOs; //_damageVOs List <SelectVO> selectVOs = new List <SelectVO>(); for (int i = 0; i < r.Count; i++) { var damageVO = r.ElementAt(i); if (ret.Find(s => s._id.ToString() == damageVO.id) == null) { continue; } SelectVO selectVO = new SelectVO(); selectVO.launchUnit = damageVO.launchUnitInfo.LaunchUnit; selectVO.platform = damageVO.platform; selectVO.warZone = damageVO.warZone; selectVO.combatZone = damageVO.combatZone; selectVO.brigade = damageVO.launchUnitInfo.Brigade; selectVO.platoon = damageVO.platoon; selectVO.missileNo = damageVO.launchUnitInfo.MissileNo; selectVO.missileNum = damageVO.missileNum; selectVO.warBase = damageVO.warBase; selectVO.lon = damageVO.lon; selectVO.lat = damageVO.lat; selectVO.alt = damageVO.alt; selectVO.nonce = damageVO.nonce; selectVO.decisionTimeUtc = MyCore.Utils.Const.TimestampMax; selectVO.name = damageVO.name; // 0730 添加了一个decisionTimeUtc,在 _returnCounterVOs里找launchUnit相等的, // 把 _returnCounterVOs的timerange第一个endtime // 赋值回来。如果找不到,就写decisionTimeUtc=999 var result = _returnCounterVOs.Find(s => s.launchUnitInfo.LaunchUnit.Equals(selectVO.launchUnit)); if (result != null) { selectVO.decisionTimeUtc = result.timeRanges[0].EndTimeUtc; } selectVO.missileList = damageVO.missileList; selectVO.statusTimeRanges = damageVO.statusTimeRanges; selectVOs.Add(selectVO); } return(selectVOs); } catch (Exception e) { _logger.LogDebug("ExceptionList<SelectVO> Select(JObject bo):" + e.ToString()); } return(null); }