//客户管理中新增车辆时,没有车辆组,默认增加到顶级车辆组
 private void GetVehicleGroupID(EMVehicle entity)
 {
     if (entity.GroupID == ulong.MaxValue)
     {
         EMVehicleGroupService serv = new EMVehicleGroupService();
         entity.GroupID = serv.GetTopGroupID(entity.TenantCode);
     }
 }
        public JsonResult Relation(string tenantCode, string licenceNumber, string gpsType, string gpsCode, string SIM, string vehicleType, string expireTime)
        {
            EMVehicle entity = new EMVehicle();
            entity.DeviceNo = gpsCode;
            entity.ExpireTime = expireTime.ToDateTimeNull();
            entity.GPSTypeID = gpsType.ToULong();
            entity.GroupID = ulong.MaxValue;
            entity.IconType = (EnumVehicleType)(vehicleType.ToInt());
            //entity.UserName = SessionUserInfo.UserName;
            entity.TenantCode = tenantCode;
            entity.SIMNo = SIM;
            entity.VehicleCode = Guid.NewGuid();
            entity.LicenceNumber = licenceNumber;
            entity.IsStop = false;
            entity.CreateTime = DateTime.Now;
            entity.InstallTime = DateTime.Now;
            //DBProcessResult bl = _SysSettingService.AddVehicle(view);
            DBProcessResult<int> res = new VehicleManagerWCFService().AddVehicleOperateTran(entity, SessionUserInfo.UserName);
             
            return Json(new { IsSuccess = res.IsSuccess, Message = res.Message,addCount=res.ReturnValue }, null, Encoding.UTF8, JsonRequestBehavior.AllowGet);

        }
        public DBProcessResult<int> AddVehicleOperateTran(EMVehicle entity, string sUserName)
        {
            DBProcessResult<int> result = new DBProcessResult<int>();
            try
            {
                VehicleDAL ve = new VehicleDAL();
                IdentityNoService noService = new IdentityNoService();
                bool isLiceNum = ve.IsLicenceNumber(entity.TenantCode, entity.LicenceNumber);
                if (isLiceNum)
                {
                    result.IsSuccess = false;
                    result.Message = "已经有相同车牌号的车辆";
                    result.ReturnValue = -1;
                    return result;
                }
                EMGpsType gpsTypeEntity = ve.GetGpsTypeByGpsTypeId(entity.GPSTypeID);
                entity.GPSTypeName = gpsTypeEntity.TypeName;
                bool isDev = ve.IsDeviceNo(entity.DeviceNo);
                if (isDev != true)
                {
                    //新增车辆历史数据配置
                    string tableName = GetTableNameByCondition(gpsTypeEntity.PrefixCode);
                    EHisotryDataStoreTables table = ve.GetHistoryTable(tableName);

                    if (table == null)
                    {
                        result.IsSuccess = false;
                        result.Message = string.Format("找不到对应的历史数据表[{0}],请联系DBA!", tableName);
                        result.ReturnValue = -1;
                        return result;
                    }
                    //新增车辆
                    EnumGPSCodeRule codeType = (EnumGPSCodeRule)gpsTypeEntity.GPSCodeRule;
                    entity.GPSCode = GetGPSCodeHelper.GetGPSCode(gpsTypeEntity.PrefixCode, codeType, entity.SIMNo, entity.DeviceNo);

                    if (entity.DeviceNo.Length == gpsTypeEntity.MachineCodeLength)
                    {
                        GetVehicleGroupID(entity);    //客户管理中新增车辆时,没有车辆组,默认增加到顶级车辆组
                        
                        EHistoryDataStoreConfig configEntity = new EHistoryDataStoreConfig();
                        configEntity.RecordID = Guid.NewGuid();
                        configEntity.CreateDate = DateTime.Now;
                        configEntity.Enable = true;
                        configEntity.StoreTable = table;
                        configEntity.VehicleCode = entity.VehicleCode;
                       
                        //新增车辆Log
                        EMVehicleLog vehicleLog = new EMVehicleLog()
                        {
                            BeginDate = DateTime.Now,
                            LogID = noService.GetVehicleLogID(),
                            DeviceNo = entity.DeviceNo,
                            EndDate = null,
                            GPSCode = entity.GPSCode,
                            GPSTypeID = entity.GPSTypeID,
                            InitMileage = entity.InitMileage,
                            LicenceNumber = entity.LicenceNumber,
                            Operator = sUserName,
                            SIMNo = entity.SIMNo,
                            TenantCode = entity.TenantCode,
                            VehicleCode = entity.VehicleCode,
                            GroupID = entity.GroupID
                        };
                        var res = ve.AddVehicleOperTrans(entity, configEntity, vehicleLog);

                        result.IsSuccess = res.State;
                        result.Message = res.Msg;
                        result.ReturnValue = new VehicleDAL().SelectCount(entity.TenantCode.ToString());
                    }
                    else
                    {
                        result.IsSuccess = false;
                        result.Message = string.Format(@"GPS设备号长度为{0},请重新填写!", gpsTypeEntity.MachineCodeLength);
                        result.ReturnValue = -1;
                    }
                }
                else
                {
                    result.IsSuccess = false;
                    result.Message = "设备号已存在,请重新填写!";
                    result.ReturnValue = -1;
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Message = ex.Message;
                result.ReturnValue = -1;
                Logger.Error("VehicleManagerWCFService.AddVehicleOperateTran(EMVehicle entity, string sUserName);" + ex.Message, ex);
            }
            return result;
            
        }
        private  DeviceManageViewModel GetDeviceManageVM(DateTime nowTime, EMVehicle vehicle, EMTenant tenant)
        {
            DeviceManageViewModel model = new DeviceManageViewModel();
            model.CreateTime = vehicle.CreateTime;
            model.DeviceNo = vehicle.DeviceNo;
            model.ExpireTime = vehicle.ExpireTime;
            model.GPSCode = vehicle.GPSCode;
            model.GPSTypeID = vehicle.GPSTypeID;
            model.GPSTypeName = vehicle.GPSTypeName;
            model.GroupID = vehicle.GroupID;
            model.IconType = vehicle.IconType;
            model.InitMileage = vehicle.InitMileage;
            model.InstallTime = vehicle.InstallTime;
            model.IsStop = vehicle.IsStop;
            model.LicenceNumber = vehicle.LicenceNumber;
            model.SIMNo = vehicle.SIMNo;
            model.TenantCode = vehicle.TenantCode;
            model.VehicleCode = vehicle.VehicleCode;

            model.NowTime = nowTime;

            if (tenant != null)
            {
                model.Email = tenant.Email;
                model.PhoneNumber = tenant.PhoneNumber;
                model.RegisterUserName = tenant.RegisterUserName;
                model.TenantName = tenant.TenantName;
            }
            return model;
        }
        public DBProcessResult AddVehicleOperate(EMVehicle entity, string sUserName)
        {
            DBProcessResult result = new DBProcessResult();
            try
            {
                VehicleDAL ve = new VehicleDAL();
                IdentityNoService noService = new IdentityNoService();
                bool isLiceNum = ve.IsLicenceNumber(entity.TenantCode, entity.LicenceNumber);
                if (isLiceNum)
                {
                    result.IsSuccess = false;
                    result.Message = "已经有相同车牌号的车辆";
                    return result;
                }

                //EMVehicle entity = ConvertHelper.ConvertObj<EMVehicleViewModel, EMVehicle>(view);
                EMGpsType gpsTypeEntity = ve.GetGpsTypeByGpsTypeId(entity.GPSTypeID);
                entity.GPSTypeName = gpsTypeEntity.TypeName;
                bool isDev = ve.IsDeviceNo(entity.DeviceNo);
                if (isDev != true)
                {
                    //新增车辆历史数据配置
                    string tableName = GetTableNameByCondition(gpsTypeEntity.PrefixCode);
                    EHisotryDataStoreTables table = ve.GetHistoryTable(tableName);
                    
                    if (table == null)
                    {
                        result.IsSuccess = false;
                        result.Message = string.Format("找不到对应的历史数据表[{0}],请联系DBA!", tableName);
                        return result;
                    }
                    //新增车辆
                    EnumGPSCodeRule codeType = (EnumGPSCodeRule)gpsTypeEntity.GPSCodeRule;
                    entity.GPSCode = GetGPSCodeHelper.GetGPSCode(gpsTypeEntity.PrefixCode, codeType, entity.SIMNo, entity.DeviceNo);

                    if (entity.DeviceNo.Length == gpsTypeEntity.MachineCodeLength)
                    {
                        GetVehicleGroupID(entity);    //客户管理中新增车辆时,没有车辆组,默认增加到顶级车辆组
                        Logger.Info("新增车辆: " + entity.LicenceNumber + "开始");
                        ve.AddVehicle(entity);
                        Logger.Info("新增车辆: " + entity.LicenceNumber + "结束");

                        EHistoryDataStoreConfig configEntity = new EHistoryDataStoreConfig();
                        configEntity.RecordID = Guid.NewGuid();
                        configEntity.CreateDate = DateTime.Now;
                        configEntity.Enable = true;
                        configEntity.StoreTable = table;
                        configEntity.VehicleCode = entity.VehicleCode;
                        Logger.Info("新增车辆 gps_historydatastoreconfig: " + configEntity.StoreTable.TableName + "开始");
                        ve.AddHistoryDataStoreConfig(configEntity);
                        Logger.Info("新增车辆 gps_historydatastoreconfig: " + configEntity.StoreTable.TableName + "结束");

                        //新增车辆Log
                        EMVehicleLog vehicleLog = new EMVehicleLog()
                        {
                            BeginDate = DateTime.Now,
                            LogID = noService.GetVehicleLogID(),
                            DeviceNo = entity.DeviceNo,
                            EndDate = null,
                            GPSCode = entity.GPSCode,
                            GPSTypeID = entity.GPSTypeID,
                            InitMileage = entity.InitMileage,
                            LicenceNumber = entity.LicenceNumber,
                            Operator = sUserName,
                            SIMNo = entity.SIMNo,
                            TenantCode = entity.TenantCode,
                            VehicleCode = entity.VehicleCode,
                            GroupID = entity.GroupID,
                        };
                        Logger.Info("新增车辆 movo_vehiclelog: " + configEntity.StoreTable.TableName + "开始");
                        ve.AddVehicleLog(vehicleLog);
                        Logger.Info("新增车辆 movo_vehiclelog: " + configEntity.StoreTable.TableName + "结束");

                        result.IsSuccess = true;
                    }
                    else
                    {
                        result.IsSuccess = false;
                        result.Message = string.Format(@"GPS设备号长度为{0},请重新填写!", gpsTypeEntity.MachineCodeLength);
                    }
                }
                else
                {
                    result.IsSuccess = false;
                    result.Message = "设备号已存在,请重新填写!";
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Message = ex.Message;
                Logger.Info("新增车辆:" + ex.StackTrace + "【" + ex.Message + "】");
            }
            return result;
            
          
        }
        /// <summary>
        /// 保存车辆信息
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public DBProcessResult SaveVehicle(EMVehicle entity, string userName)
        {
            DBProcessResult result = new DBProcessResult();
            try
            {
                IEMVehicleService service = new EMVehicleService();
                IEMVehicleLogService logService = new EMVehicleLogService();
                IdentityNoService noService = new IdentityNoService();
                IEMGpsTypeService gpsTypeService = new EMGpsTypeService();

                EMVehicle oldEntity = service.Select(entity.VehicleCode);
                entity.ExpireTime = oldEntity.ExpireTime;
                entity.InstallTime = oldEntity.InstallTime;
                entity.CreateTime = oldEntity.CreateTime;
                entity.IsStop = oldEntity.IsStop;
                EMGpsType gpsTypeEntity = gpsTypeService.Get(entity.GPSTypeID);
                entity.GPSTypeName = gpsTypeEntity.TypeName;
                //如果设备号改变,要重新获取GPSCode,添加和修改日志
                if (entity.DeviceNo != oldEntity.DeviceNo)
                {
                    bool bo = service.IsExist(entity.DeviceNo);
                    if (bo != true)
                    {

                        EnumGPSCodeRule codeType = (EnumGPSCodeRule)gpsTypeEntity.GPSCodeRule;

                        entity.GPSCode = GetGPSCodeHelper.GetGPSCode(gpsTypeEntity.PrefixCode, codeType, entity.SIMNo, entity.DeviceNo);
                        if (entity.DeviceNo.Length == gpsTypeEntity.MachineCodeLength)
                        {
                            //修改上一个日志
                            DateTime now = DateTime.Now;
                            EMVehicleLog lastLog = logService.GetLast(entity.VehicleCode);
                            if (lastLog != null)
                            {
                                lastLog.EndDate = now;
                                logService.Update(lastLog);
                            }

                            //新增一个日志
                            EMVehicleLog vehicleLog = new EMVehicleLog()
                            {
                                BeginDate = now,
                                LogID = noService.GetVehicleLogID(),
                                DeviceNo = entity.DeviceNo,
                                EndDate = null,
                                GPSCode = entity.GPSCode,
                                GPSTypeID = entity.GPSTypeID,
                                InitMileage = entity.InitMileage,
                                LicenceNumber = entity.LicenceNumber,
                                Operator = userName,
                                SIMNo = entity.SIMNo,
                                TenantCode = entity.TenantCode,
                                GroupID = entity.GroupID,
                                VehicleCode = entity.VehicleCode
                            };
                            logService.Insert(vehicleLog);

                            entity.InstallTime = DateTime.Now;
                            service.Update(entity);
                            result.IsSuccess = true;
                        }
                        else
                        {
                            result.IsSuccess = false;
                            result.Message = "GPS设备号长度,不在指定范围内,请重新填写!";
                        }
                    }
                    else
                    {
                        result.IsSuccess = false;
                        result.Message = "GPS设备号已存在,请重新填写!";
                    }
                }
                else
                {
                    service.Update(entity);
                    result.IsSuccess = true;
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Message = ex.Message;
            }
            return result;
        }
Exemple #7
0
        /// <summary>
        /// 添加movo_vehicle
        /// </summary>
        /// <param name="ve"></param>
        /// <returns></returns>
        public bool AddVehicle(EMVehicle ve)
        {
            string sCmdText = string.Format(@" insert into movo_vehicle(VehicleCode,LicenceNumber,GroupID,GPSTypeID,DeviceNo,SIMNo,GPSCode,TenantCode,InitMileage,ExpireTime,InstallTime,IsStop,CreateTime,IconType,GPSTypeName)
values(@VehicleCode,@LicenceNumber,@GroupID,@GPSTypeID,@DeviceNo,@SIMNo,@GPSCode,@TenantCode,@InitMileage,@ExpireTime,@InstallTime,@IsStop,@CreateTime,@IconType,@GPSTypeName)");
            MySqlParameter[] cmdParams = new MySqlParameter[] {
                    new MySqlParameter("VehicleCode",ve.VehicleCode ),
                    new MySqlParameter("LicenceNumber",ve.LicenceNumber),
                    new MySqlParameter("GroupID", ve.GroupID),
                    new MySqlParameter("GPSTypeID", ve.GPSTypeID),
                    new MySqlParameter("DeviceNo", ve.DeviceNo),
                    new MySqlParameter("SIMNo", ve.SIMNo),
                    new MySqlParameter("GPSCode", ve.GPSCode),
                    new MySqlParameter("TenantCode", ve.TenantCode),
                    new MySqlParameter("InitMileage",ve.InitMileage ),
                    new MySqlParameter("ExpireTime", ve.ExpireTime),
                    new MySqlParameter("InstallTime", ve.InstallTime),
                    new MySqlParameter("IsStop", ve.IsStop),
                    new MySqlParameter("CreateTime", ve.CreateTime),
                    new MySqlParameter("IconType", ve.IconType),
                    new MySqlParameter("GPSTypeName", ve.GPSTypeName)

                };
            int ri = MySqlDB.ExecuteNonQuery(CommandType.Text, sCmdText, cmdParams);
            if (ri > 0)
            {
                return true;
            }
            return false;
        }
Exemple #8
0
        /// <summary>
        /// 采用事物添加车辆(movo_vehicle,gps_historydatastoreconfig,movo_vehiclelog)
        /// </summary>
        /// <param name="ve"></param>
        /// <param name="conf"></param>
        /// <param name="vlog"></param>
        /// <returns></returns>
        public ResultEntity AddVehicleOperTrans(EMVehicle ve, EHistoryDataStoreConfig conf, EMVehicleLog vlog)
        {
            ResultEntity res = new ResultEntity();

            MySqlConnection con = new MySqlConnection(MySqlDB.ConnString);
            con.Open();
            MySqlTransaction trans = con.BeginTransaction();
            MySqlCommand cmd = con.CreateCommand();
            cmd.Transaction = trans;
            try
            {
                cmd.CommandText = string.Format(@" insert into movo_vehicle(VehicleCode,LicenceNumber,GroupID,GPSTypeID,DeviceNo,SIMNo,GPSCode,TenantCode,InitMileage,ExpireTime,InstallTime,IsStop,CreateTime,IconType,GPSTypeName)
 values(@VehicleCode,@LicenceNumber,@GroupID,@GPSTypeID,@DeviceNo,@SIMNo,@GPSCode,@TenantCode,@InitMileage,@ExpireTime,@InstallTime,@IsStop,@CreateTime,@IconType,@GPSTypeName)");
                cmd.Parameters.AddRange(new MySqlParameter[] {
                    new MySqlParameter("VehicleCode", ve.VehicleCode ),
                    new MySqlParameter("LicenceNumber", ve.LicenceNumber),
                    new MySqlParameter("GroupID", ve.GroupID),
                    new MySqlParameter("GPSTypeID", ve.GPSTypeID),
                    new MySqlParameter("DeviceNo", ve.DeviceNo),
                    new MySqlParameter("SIMNo", ve.SIMNo),
                    new MySqlParameter("GPSCode", ve.GPSCode),
                    new MySqlParameter("TenantCode", ve.TenantCode),
                    new MySqlParameter("InitMileage",ve.InitMileage ),
                    new MySqlParameter("ExpireTime", ve.ExpireTime),
                    new MySqlParameter("InstallTime", ve.InstallTime),
                    new MySqlParameter("IsStop", ve.IsStop),
                    new MySqlParameter("CreateTime", ve.CreateTime),
                    new MySqlParameter("IconType", ve.IconType),
                    new MySqlParameter("GPSTypeName", ve.GPSTypeName)
                });
                int veCount = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                if (veCount < 1)
                {
                    trans.Rollback();
                    res.State = false;
                    res.Msg = "车辆表【movo_vehicle】新增失败";
                    return res;
                }

                cmd.CommandText = string.Format(@"insert into gps_historydatastoreconfig(RecordID,VehicleCode,StoreTable,Enable,CreateDate,remark)
 values(@RecordIDconf,@VehicleCodeconf,@StoreTableconf,@Enableconf,@CreateDateconf,@remarkconf)");
                cmd.Parameters.AddRange(new MySqlParameter[] {
                    new MySqlParameter("RecordIDconf", conf.RecordID),
                    new MySqlParameter("VehicleCodeconf", conf.VehicleCode),
                    new MySqlParameter("StoreTableconf", conf.StoreTable.RecordID),
                    new MySqlParameter("Enableconf", conf.Enable),
                    new MySqlParameter("CreateDateconf", conf.CreateDate),
                    new MySqlParameter("remarkconf", conf.Remark)
                   
                });
                int confCount = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                if (confCount < 1)
                {
                    trans.Rollback();
                    res.State = false;
                    res.Msg = "车辆历史数据配置表【gps_historydatastoreconfig】新增失败";
                    return res;
                }

                cmd.CommandText = string.Format(@"insert into movo_vehiclelog(LogID,VehicleCode,LicenceNumber,GroupID,GPSTypeID,DeviceNo,SIMNo,GPSCode,TenantCode,BeginDate,EndDate,Operator,InitMileage)
 values(@LogID,@VehicleCodelog,@LicenceNumberlog,@GroupIDlog,@GPSTypeIDlog,@DeviceNolog,@SIMNolog,@GPSCodelog,@TenantCodelog,@BeginDatelog,@EndDatelog,@Operatorlog,@InitMileagelog)");
                cmd.Parameters.AddRange(new MySqlParameter[] {
                    new MySqlParameter("LogID", vlog.LogID),
                    new MySqlParameter("VehicleCodelog", vlog.VehicleCode),
                    new MySqlParameter("LicenceNumberlog", vlog.LicenceNumber),
                    new MySqlParameter("GroupIDlog", vlog.GroupID),
                    new MySqlParameter("GPSTypeIDlog", vlog.GPSTypeID),
                    new MySqlParameter("DeviceNolog", vlog.DeviceNo),
                    new MySqlParameter("SIMNolog", vlog.SIMNo),
                    new MySqlParameter("GPSCodelog", vlog.GPSCode),
                    new MySqlParameter("TenantCodelog", vlog.TenantCode),
                    new MySqlParameter("BeginDatelog", vlog.BeginDate),
                    new MySqlParameter("EndDatelog", vlog.EndDate),
                    new MySqlParameter("Operatorlog", vlog.Operator),
                    new MySqlParameter("InitMileagelog", vlog.InitMileage)
                  
                });
                int logCount = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();

                if (logCount < 1)
                {
                    trans.Rollback();
                    res.State = false;
                    res.Msg = "车辆操作日志表【movo_vehiclelog】新增失败";
                    return res;
                }
                trans.Commit();
                res.State = true;
                res.Msg = "新增车辆成功";
            }
            catch (Exception ex)
            {
                trans.Rollback();
                res.State = false;
                res.Msg = "新增车辆失败," + ex.Message;
            }
            finally
            {
                con.Close();
            }
            return res;
        }
 private AreaLocusViewModel GetAreaLocus(EMVehicle vehicle) 
 {
     AreaLocusViewModel locus = new AreaLocusViewModel();
     locus.VehicleCode = vehicle.VehicleCode;
     locus.LicenceNumber = vehicle.LicenceNumber;
     locus.HistoryLocus = new List<HistoryLocusViewModel>();
     return locus;
 }
        private List<AreaLocusViewModel> GetSectionLocus(EMVehicle vehicle, DateTime beginTime, DateTime endTime, LatLon max, LatLon min, EnumMapType mapType) 
        {
            List<AreaLocusViewModel> listAreaLocus = new List<AreaLocusViewModel>();

            IList<HistoryLocusViewModel> list = GetHistoryLocus(vehicle.VehicleCode, beginTime, endTime,mapType);
            if (list.Count > 0) 
            {
                bool hasInPoint = false;
                AreaLocusViewModel locus = null;

                //第一个点
                HistoryLocusViewModel first = list[0];
                LatLon lFirst = new LatLon(first.Latitude, first.Longitude);
                if (lFirst.IsInArea(max, min)) 
                {
                    locus = GetAreaLocus(vehicle);
                    locus.InTime = first.ReportTime;
                    locus.InType = "启动";
                    locus.InDirection = first.Direction;
                    locus.HistoryLocus.Add(first);

                    hasInPoint = true;
                }

                for (int i = 1; i < list.Count-1; i++) 
                {
                    HistoryLocusViewModel point = list[i];
                    LatLon ll = new LatLon(point.Latitude, point.Longitude);
                    if (ll.IsInArea(max, min) && !hasInPoint)
                    {
                        HistoryLocusViewModel before = list[i - 1];
                        locus = GetAreaLocus(vehicle);
                        locus.InTime = before.ReportTime;
                        locus.InType = "驶入";
                        locus.InDirection = before.Direction;
                        hasInPoint = true;

                        locus.HistoryLocus.Add(before);
                        locus.HistoryLocus.Add(point);

                    }
                    else if (!ll.IsInArea(max, min) && hasInPoint)
                    {
                        locus.OutTime = point.ReportTime;
                        locus.OutType = "驶出";
                        listAreaLocus.Add(locus);
                        locus.OutDirection = point.Direction;
                        hasInPoint = false;
                        
                        locus.HistoryLocus.Add(point);

                        locus = null;
                    }
                    else
                    {
                        if (hasInPoint && ll.IsInArea(max, min))
                        {
                            locus.HistoryLocus.Add(point);
                        }
                    }
                }
                //最后一个点
                HistoryLocusViewModel last = list[list.Count-1];
                LatLon lLast = new LatLon(last.Latitude, last.Longitude);
                if (lLast.IsInArea(max, min) && hasInPoint)
                {
                    locus.OutTime = last.ReportTime;
                    locus.OutType = "停止";
                    locus.OutDirection = last.Direction;
                    listAreaLocus.Add(locus);
                    hasInPoint = false;
                                        
                    locus.HistoryLocus.Add(last);
                }
            }

            return listAreaLocus;
        }