/* Choose a target that's availabe from the potentialTargets.
     * Output: target
     */
    private GameObject ChooseTarget()
    {
        //randomly select a target from the potential targets
        int tries = 3;

        while (tries != 0)
        {
            int        index  = Random.Range(0, potentialTargets.Count);
            GameObject target = potentialTargets[index];

            //error checking
            StaffTarget st = target.GetComponent <StaffTarget>();
            if (st == null)
            {
                Debug.Log("A potential Target does not have the StaffTarget script");
                return(null);
            }

            //check if this target is available
            if (st.isAvailable)
            {
                //if it is, it's a good target! if not, continue looking
                //change the target's availability to unavailable.
                st.isAvailable = false;
                return(target);
            }

            tries--;
        }


        //return null if there is no target available
        return(null);
    }
Example #2
0
        /// <summary>
        /// 导入人数记录
        /// </summary>
        /// <param name="populationId">人数统计ID</param>
        /// <param name="departmentId">部门ID</param>
        /// <returns></returns>
        public List <StaffTarget> ImportPopulation(string populationId, string departmentId)
        {
            List <StaffTarget>       data       = new List <StaffTarget>();
            PopulationRecordBusiness prBusienss = new PopulationRecordBusiness();
            var popRecord = prBusienss.FindByDepartment(populationId, departmentId);

            if (popRecord == null)
            {
                return(data);
            }

            foreach (var item in popRecord.Details)
            {
                StaffTarget st = new StaffTarget();
                st.Name   = item.Name;
                st.Code   = item.Code;
                st.Number = item.Number;

                data.Add(st);
            }

            return(data);
        }
Example #3
0
        /// <summary>
        /// BsonDocument转实体对象
        /// </summary>
        /// <param name="doc">Bson文档</param>
        /// <returns></returns>
        protected override TargetRecord DocToEntity(BsonDocument doc)
        {
            TargetRecord entity = new TargetRecord();

            entity.Id           = doc["_id"].ToString();
            entity.TargetId     = doc["targetId"].ToString();
            entity.DepartmentId = doc["departmentId"].ToString();
            entity.Type         = doc["type"].ToInt32();
            entity.Finance      = doc["finance"].ToString();
            entity.SchoolTake   = doc["schoolTake"].ToDecimal();
            entity.SelfTake     = doc["selfTake"].ToDecimal();
            entity.PlanQuantum  = doc["planQuantum"].ToDecimal();
            entity.PlanAmount   = doc["planAmount"].ToDecimal();

            var createBy = doc["createBy"].ToBsonDocument();

            entity.CreateBy = new UpdateStamp
            {
                UserId = createBy["userId"].ToString(),
                Name   = createBy["name"].ToString(),
                Time   = createBy["time"].ToLocalTime()
            };

            var updateBy = doc["updateBy"].ToBsonDocument();

            entity.UpdateBy = new UpdateStamp
            {
                UserId = updateBy["userId"].ToString(),
                Name   = updateBy["name"].ToString(),
                Time   = updateBy["time"].ToLocalTime()
            };

            entity.Remark = doc["remark"].ToString();
            entity.Status = doc["status"].ToInt32();

            entity.StaffTarget = new List <StaffTarget>();
            if (doc.Contains("staffTarget"))
            {
                BsonArray array = doc["staffTarget"].AsBsonArray;
                foreach (BsonDocument item in array)
                {
                    StaffTarget st = new StaffTarget();
                    st.Name          = item["name"].ToString();
                    st.Code          = item["code"].ToString();
                    st.Number        = item["number"].ToInt32();
                    st.MonthKilowatt = item["monthKilowatt"].ToDecimal();
                    st.MonthCount    = item["monthCount"].ToInt32();
                    st.UnitPrice     = item["unitPrice"].ToDecimal();
                    st.YearKilowatt  = item["yearKilowatt"].ToDecimal();
                    st.YearAmount    = item["yearAmount"].ToDecimal();
                    st.Remark        = item["remark"].ToString();

                    entity.StaffTarget.Add(st);
                }
            }

            entity.AllowanceTarget = new List <AllowanceTarget>();
            if (doc.Contains("allowanceTarget"))
            {
                BsonArray array = doc["allowanceTarget"].AsBsonArray;
                foreach (BsonDocument item in array)
                {
                    AllowanceTarget at = new AllowanceTarget();
                    at.Name          = item["name"].ToString();
                    at.Code          = item["code"].ToString();
                    at.Cardinal      = item["cardinal"].ToDecimal();
                    at.Factor        = item["factor"].ToDecimal();
                    at.MonthKilowatt = item["monthKilowatt"].ToDecimal();
                    at.MonthCount    = item["monthCount"].ToInt32();
                    at.UnitPrice     = item["unitPrice"].ToDecimal();
                    at.YearKilowatt  = item["yearKilowatt"].ToDecimal();
                    at.YearAmount    = item["yearAmount"].ToDecimal();
                    at.Remark        = item["remark"].ToString();

                    entity.AllowanceTarget.Add(at);
                }
            }

            return(entity);
        }