private void SendCrew() { if (ManagerHelp.isFaceAlgorithm && ManagerHelp.isInit == false) { string identity = ManagerHelp.GetShipToId(ComponentType.AI, ManagerHelp.FaceName); if (identity != "") { //等待15秒后发送底库数据 Thread.Sleep(15 * 1000); var crew = ProtoBDManager.CrewQuery(); foreach (var item in crew) { manager.SendCrewAdd(item, identity); } ManagerHelp.isFaceAlgorithm = false; } } }
/// <summary> /// 船员处理 /// </summary> /// <param name="crew"></param> public void CrewData(SmartWeb.ProtoBuffer.Models.Crew crew) { int result = 1;//响应状态 switch (crew.command) { case Models.Crew.Command.NEW_REQ: #region 陆地端添加船员请求 if (crew.crewrequest == null) { manager.SendCrewRN(Models.Crew.Command.NEW_REP, null, 1); } else { var crewInfo = crew.crewrequest.crewinfo; result = ProtoBDManager.CrewAdd(ref crewInfo); if (result == 0) { string identity = ManagerHelp.GetShipToId(ComponentType.AI, ManagerHelp.FaceName); if (identity != "") { //向组件发送船员请求 manager.SendCrewAdd(crewInfo, identity); ManagerHelp.UpSend.Add("CrewAdd"); } else { //向陆地端响应算法请求 manager.SendCrewRN(Models.Crew.Command.NEW_REP, null, result); } } else { //向陆地端响应算法请求 manager.SendCrewRN(Models.Crew.Command.NEW_REP, null, result); } } break; #endregion case Models.Crew.Command.DELETE_REQ: #region 陆地端删除船员请求 if (crew.crewrequest == null) { manager.SendCrewRN(Models.Crew.Command.DELETE_REP, null, 1); } else { result = ProtoBDManager.CrewDelete(crew.crewrequest.crewinfo.uid); if (result == 0) { string identity = ManagerHelp.GetShipToId(ComponentType.AI, ManagerHelp.FaceName); //向组件发送船员请求 manager.SendCrewDelete(Convert.ToInt32(crew.crewrequest.crewinfo.uid), identity); ManagerHelp.UpSend.Add("CrewDel"); } else { manager.SendCrewRN(Models.Crew.Command.DELETE_REP, null, result); } } break; #endregion case Models.Crew.Command.MODIFY_REQ: #region 陆地端修改船员请求 if (crew.crewrequest == null) { manager.SendCrewRN(Models.Crew.Command.MODIFY_REP, null, 1); } else { result = ProtoBDManager.CrewUpdate(crew.crewrequest.crewinfo); if (result == 0) { string identity = ManagerHelp.GetShipToId(ComponentType.AI, ManagerHelp.FaceName); if (identity != "") { //向组件发送船员请求 //manager.SendCrewUpdate(crew.crewrequest.crewinfo, identity); manager.SendCrewAdd(crew.crewrequest.crewinfo, identity); ManagerHelp.UpSend.Add("CrewEdit"); } else { manager.SendCrewRN(Models.Crew.Command.MODIFY_REP, null, result); } } else { manager.SendCrewRN(Models.Crew.Command.MODIFY_REP, null, result); } } break; #endregion case Models.Crew.Command.QUERY_REQ: #region 陆地端查询船员请求 int uid = crew.crewrequest != null && crew.crewrequest.crewinfo != null?Convert.ToInt32(crew.crewrequest.crewinfo.uid) : 0; var crews = ProtoBDManager.CrewQuery(uid); manager.SendCrewRN(Models.Crew.Command.QUERY_REP, crews); break; #endregion case Models.Crew.Command.NEW_REP: if (ManagerHelp.UpSend.Where(c => c == "CrewAdd").Any()) { //向陆地端响应请求 manager.SendCrewRN(Models.Crew.Command.NEW_REP, null, crew.crewresponse.result); ManagerHelp.UpSend.Remove("CrewAdd"); } else { ManagerHelp.CrewResult = crew.crewresponse.result.ToString(); } break; case Models.Crew.Command.DELETE_REP: if (ManagerHelp.UpSend.Where(c => c == "CrewDel").Any()) { //向陆地端响应请求 manager.SendCrewRN(Models.Crew.Command.DELETE_REP, null, crew.crewresponse.result); ManagerHelp.UpSend.Remove("CrewDel"); } else { ManagerHelp.CrewResult = crew.crewresponse.result.ToString(); } break; case Models.Crew.Command.MODIFY_REP: if (ManagerHelp.UpSend.Where(c => c == "CrewEdit").Any()) { //向陆地端响应请求 manager.SendCrewRN(Models.Crew.Command.MODIFY_REP, null, crew.crewresponse.result); ManagerHelp.UpSend.Remove("CrewEdit"); } else { ManagerHelp.CrewResult = crew.crewresponse.result.ToString(); } break; case Models.Crew.Command.QUERY_REP: if (crew.crewresponse != null && crew.crewresponse.result == 0 && crew.crewresponse.crewinfos != null) { ManagerHelp.CrewReponse = JsonConvert.SerializeObject(crew.crewresponse.crewinfos); } break; default: break; } }