Beispiel #1
0
        // 值班认领 上传现场服务照片
        public int SubmitImg(MyDutySignImgAddModel AddViewModel)
        {
            int c = 0;
            MydutyClaim_Sign model = new MydutyClaim_Sign();

            model.id                  = Guid.NewGuid().ToString();
            model.Userid              = AddViewModel.uid;
            model.UserName            = AddViewModel.name;
            model.type                = "img";
            model.CheckTime           = DateTime.Now;
            model.CreateUser          = AddViewModel.uid;
            model.CreateDate          = DateTime.Now;
            model.MydutyClaim_InfoID  = AddViewModel.MydutyClaim_InfoID;
            model.OndutyClaims_InfoId = AddViewModel.OndutyClaims_InfoId;
            _mydutyClaim_Sign.Add(model);
            int count = _mydutyClaim_Sign.SaveChanges();

            var AttachmentInfo = _IMapper.Map <List <VAttachmentAddViewModel>, List <VAttachment> >(AddViewModel.VAttachmentAddList);

            foreach (var item in AttachmentInfo)
            {
                item.ID         = Guid.NewGuid().ToString();
                item.formid     = model.id;
                item.type       = "ZBTP";//值班信息图片
                item.Status     = "0";
                item.CreateUser = AddViewModel.uid;
                item.CreateDate = DateTime.Now;
                _vAttachmentRepository.Add(item);
                c = _vAttachmentRepository.SaveChanges() + c;
            }

            return(c);
        }
Beispiel #2
0
 public void RemoveNew(MydutyClaim_Sign obj)
 {
     DbSet.Remove(obj);
 }
Beispiel #3
0
 public virtual void Update(MydutyClaim_Sign obj)
 {
     DbSet.Update(obj);
 }
Beispiel #4
0
 public virtual void Add(MydutyClaim_Sign obj)
 {
     DbSet.Add(obj);
 }
Beispiel #5
0
        //获取该认领信息具体情况  包括签到、签退 现场图片等
        public MydutyClaim_InfoResModel GetMydutyDetail(SearchByIDAnduidModel viewModel)
        {
            MydutyClaim_InfoResModel MyResModel = new MydutyClaim_InfoResModel();

            //获取基本信息
            var model1 = _IMydutyClaimInfoRepository.GetInfoById(viewModel.MydutyClaim_InfoID);

            MyResModel.MiddleModel = _IMapper.Map <MydutyClaim_Info, MydutyClaimInfoMiddleModel>(model1);

            var dutyInfo = _ondutyClaimsInfoRepository.GetByID(model1.OndutyClaims_InfoId);

            if (dutyInfo != null)
            {
                //获取 社区、小区
                MyResModel.MiddleModel.Subdistrict = dutyInfo.Subdistrict;
                var normalInfo = _normalizationInfo.NormalizationByID(dutyInfo.Normalization_InfoId);
                if (normalInfo != null)
                {
                    MyResModel.MiddleModel.Community = normalInfo.CommunityName;
                }
            }


            //获取 签到签退图片等信息

            List <MydutyClaim_Sign> handlelist = _mydutyClaim_Sign.GetByParas(viewModel);
            MydutyClaim_SignInfo    signInfo   = new MydutyClaim_SignInfo();

            foreach (var item in handlelist)
            {
                //签到
                if (item.type == "in")
                {
                    signInfo.SignUpTime = item.CheckTime.ToString();
                }
                //上传现场图片
                if (item.type == "img")
                {
                    var list    = _vAttachmentRepository.GetMyList(item.id);
                    var newlist = _IMapper.Map <List <VAttachment>, List <VAttachmentAddViewModel> >(list);
                    signInfo.VAttachmentList = newlist;
                }
                //签退
                if (item.type == "out")
                {
                    signInfo.SignOutTime = item.CheckTime.ToString();
                }
            }

            //状态
            MydutyClaim_Sign handle = _mydutyClaim_Sign.GetByParasOne(viewModel);

            if (handle != null)
            {
                //签到
                if (handle.type == "in")
                {
                    MyResModel.MiddleModel.status = "img";
                }
                //上传现场图片
                if (handle.type == "img")
                {
                    MyResModel.MiddleModel.status = "out";
                }
                //签退
                if (handle.type == "out")
                {
                    MyResModel.MiddleModel.status = "done";
                }
            }
            else
            {
                MyResModel.MiddleModel.status = "in";
            }

            MyResModel.claim_SignInfo = signInfo;


            if (MyResModel.MiddleModel != null && MyResModel.claim_SignInfo != null)
            {
                MyResModel.isSuccess                  = true;
                MyResModel.baseViewModel.Message      = "查询成功";
                MyResModel.baseViewModel.ResponseCode = 200;
                MyResModel.TotalNum = 1;
            }
            else
            {
                MyResModel.isSuccess                  = false;
                MyResModel.baseViewModel.Message      = "查询失败";
                MyResModel.baseViewModel.ResponseCode = 400;
                MyResModel.TotalNum = 0;
            }

            return(MyResModel);
        }
Beispiel #6
0
        //值班认领 签到、签退
        public int HandleAdd(VA_HandleAddViewModel AddViewModel)
        {
            int count = 0;
            MydutyClaim_Sign model = new MydutyClaim_Sign();
            //是否注册
            var VolunteerInfo = _IVolunteerInfoRepository.SearchInfoByID(AddViewModel.VID);

            if (VolunteerInfo == null)
            {
                count = 6;
                return(count);
            }

            double points = 0;
            ////认领得 值班信息
            MydutyClaim_Info claim_Info = _IMydutyClaimInfoRepository.GetByUidandID(AddViewModel.VID, AddViewModel.ContentID);

            if (claim_Info != null)
            {
                //判断是否在值班区间内进行打卡 20200622  值班时间前后15 分钟均可签到签退
                DateTime start = DateTime.Parse(claim_Info.StartDutyTime.ToString());
                DateTime end   = DateTime.Parse(claim_Info.EndDutyTime.ToString());

                if ((DateTime.Now >= start.AddMinutes(-15) && DateTime.Now <= start.AddMinutes(15) && AddViewModel.type == "in") ||
                    (DateTime.Now >= end && DateTime.Now <= end.AddMinutes(15) && AddViewModel.type == "out"))
                {
                    OndutyClaims_Info ondutyClaims = _claimsInfoRepository.GetByID(claim_Info.OndutyClaims_InfoId);
                    if (ondutyClaims != null)
                    {
                        Normalization_Info Normalization = _normalizationInfo.NormalizationByID(ondutyClaims.Normalization_InfoId);
                        if (Normalization != null)
                        {
                            points = double.Parse(Normalization.PointsEarned);
                        }

                        model.OndutyClaims_InfoId = ondutyClaims.id;
                        model.MydutyClaim_InfoID  = AddViewModel.ContentID;
                        //获取小区经纬度信息
                        List <User_Depart> departAll = _IVolunteerInfoRepository.GetDepartAll();

                        var departList = _IMapper.Map <List <User_Depart>, List <UserDepartSearchMidModel> >(departAll);

                        List <UserDepartSearchMidModel> result = new List <UserDepartSearchMidModel>();
                        result.AddRange(departList.Where(p => p.Code == ondutyClaims.SubdistrictID).ToList());
                        UserDepartSearchMidModel depart = new UserDepartSearchMidModel();
                        if (result.Count > 0)
                        {
                            depart = result.First();
                        }


                        //获取 经纬度
                        if (!String.IsNullOrEmpty(AddViewModel.Checklongitude) && !String.IsNullOrEmpty(AddViewModel.Checklatitude))
                        {
                            //进行地址判断 活动地址方圆1000米可以签到
                            if (!String.IsNullOrEmpty(depart.longitude) && !String.IsNullOrEmpty(depart.latitude))
                            {
                                var checks = CheckAddress(double.Parse(depart.longitude), double.Parse(depart.latitude), double.Parse(AddViewModel.Checklongitude), double.Parse(AddViewModel.Checklatitude), 1);
                                if (!checks)
                                {
                                    count = 9;
                                    return(count);
                                }
                            }
                            else
                            {
                                count = 8;
                                return(count);
                            }
                        }
                        else
                        {
                            count = 7;
                            return(count);
                        }
                    }
                }
                else
                {
                    count = 5;
                    return(count);
                }
            }
            else
            {
                count = 4;
                return(count);
            }

            DEncrypt encrypt = new DEncrypt();

            //保存签到签退信息
            model.id             = Guid.NewGuid().ToString();
            model.Userid         = AddViewModel.VID;
            model.UserName       = encrypt.Decrypt(VolunteerInfo.Name);
            model.CheckTime      = DateTime.Now;
            model.type           = AddViewModel.type;
            model.CreateUser     = VolunteerInfo.ID;
            model.CreateDate     = DateTime.Now;
            model.CheckAddress   = AddViewModel.CheckAddress;
            model.Checklongitude = AddViewModel.Checklongitude;
            model.Checklatitude  = AddViewModel.Checklatitude;


            _mydutyClaim_Sign.Add(model);
            count = _mydutyClaim_Sign.SaveChanges();
            if (count == 1)
            {
                string id = Guid.NewGuid().ToString();

                //签退 时按时长积分继续计算
                if (AddViewModel.type == "out")
                {
                    Volunteer_Score score = new Volunteer_Score();
                    score.ID         = id;
                    score.ContentID  = AddViewModel.ContentID;
                    score.tableName  = "MydutyClaim_Info";
                    score.VID        = AddViewModel.VID;
                    score.type       = "out";
                    score.Score      = points;
                    score.CreateUser = AddViewModel.VID;
                    score.CreateDate = DateTime.Now;

                    _IVolunteer_ScoreRepository.Add(score);
                    int b = _IVolunteer_ScoreRepository.SaveChanges();
                    if (b > 0)
                    {
                        //插入到  泰便利积分表  20200622
                        ET_points ipointMiddle = new ET_points();

                        ipointMiddle.ID         = id;
                        ipointMiddle.uid        = AddViewModel.VID;
                        ipointMiddle.points     = score.Score;
                        ipointMiddle.type       = "MydutySign";
                        ipointMiddle.tableName  = "TedaVolunteerDB.dbo.Volunteer_Score";
                        ipointMiddle.CreateUser = AddViewModel.VID;
                        ipointMiddle.CreateDate = DateTime.Now;
                        eT_PointsRepository.Add(ipointMiddle);
                        int j = eT_PointsRepository.SaveChanges();
                    }
                }
            }

            return(count);
        }
        //获取当前用户 今天以后的报名活动情况 日期列表
        public List <string> GetMyAllDate(SearchByVIDModel vidModel)
        {
            List <string> list = new List <string>();

            //获取我的报名活动情况
            List <string> Infos = _IVA_SignRepository.GetMyList(vidModel.VID);
            List <VolunteerActivitySearchMiddle> Searches = new List <VolunteerActivitySearchMiddle>();

            List <VolunteerActivity> middle = _IVolunteerActivityRepository.GetByIDList(Infos);

            Searches = _IMapper.Map <List <VolunteerActivity>, List <VolunteerActivitySearchMiddle> >(middle);

            //获取当前用户 今天以后的报名活动情况 日期列表
            //如果签退时间在活动结束之后 则需要按照  签退时间 判断

            Searches = Searches.Where(o => (o.SignOutEtime == null && o.Etime >= DateTime.Now) || (o.SignOutEtime != null && o.SignOutEtime >= DateTime.Now)).OrderBy(o => o.Stime).ToList();
            foreach (var item in Searches)
            {
                //查看是否已经完结事件  bak3  显示 该用户针对活动的状态
                var handle = _Va_HandleRepository.GetNewSign(vidModel.VID, item.ID);
                if (handle != null && handle.ID != null)
                {
                    if (handle.type == "in")
                    {
                        item.bak3 = "上传现场图片";
                    }
                    if (handle.type == "img")
                    {
                        item.bak3 = "待签退";
                    }
                    if (handle.type == "out")
                    {
                        item.bak3 = "已完结";
                    }
                }
                else
                {
                    item.bak3 = "待签到";
                }
                if (item.bak3 != "已完结")
                {
                    string date = DateTime.Parse(item.Stime.ToString()).ToString("yyyy-MM-dd");
                    if (!list.Contains(date))
                    {
                        list.Add(date);
                    }
                }
            }

            //获取我的 常态化管控认领 情况 20200617
            List <MydutyClaim_Info> myduties = _mydutyClaimInfo.GetByUid(vidModel.VID);

            myduties = myduties.Where(o => DateTime.Parse(o.EndDutyTime.ToString()).AddMinutes(15) >= DateTime.Now && o.status == "1").OrderBy(o => o.StartDutyTime).ToList();

            foreach (var item in myduties)
            {
                MydutyClaimInfoMiddleModel mydutyClaimInfo = new MydutyClaimInfoMiddleModel();
                SearchByIDAnduidModel      searchByID      = new SearchByIDAnduidModel();
                searchByID.MydutyClaim_InfoID = item.id;
                searchByID.uid = item.Userid;
                MydutyClaim_Sign ii = _mydutyClaim_Sign.GetByParasOne(searchByID);

                if (ii != null && ii.id != null)
                {
                    if (ii.type == "in")
                    {
                        item.status = "上传现场图片";
                    }
                    if (ii.type == "img")
                    {
                        item.status = "待签退";
                    }
                    if (ii.type == "out")
                    {
                        item.status = "已完结";
                    }
                }
                else
                {
                    item.status = "待签到";
                }
                //已经完结的 事项不再显示,只显示待办信息 20200622
                if (item.status != "已完结")
                {
                    string date = DateTime.Parse(item.StartDutyTime.ToString()).ToString("yyyy-MM-dd");
                    if (!list.Contains(date))
                    {
                        list.Add(date);
                    }
                }
            }
            return(list);
        }
        ///获取当前用户 根据时间显示具体常态化管控认领 列表 20200617
        public List <MydutyClaimInfoMiddleModel> GetMyDutyAllByDate(VolunteerActivitySearchByDateModel vidModel)
        {
            List <MydutyClaimInfoMiddleModel> models = new List <MydutyClaimInfoMiddleModel>();

            //获取我的 常态化管控认领 情况 20200617
            List <MydutyClaim_Info> myduties = _mydutyClaimInfo.GetByUid(vidModel.VID);


            if (!String.IsNullOrEmpty(vidModel.Date))
            {
                myduties = myduties.Where(o => DateTime.Parse(o.StartDutyTime.ToString()).ToString("yyyy-MM-dd") == vidModel.Date &&
                                          DateTime.Parse(o.EndDutyTime.ToString()).AddMinutes(15) >= DateTime.Now &&
                                          o.status == "1").OrderBy(o => o.StartDutyTime).ToList();
            }
            SearchByIDAnduidModel searchByID = new SearchByIDAnduidModel();

            searchByID.uid = vidModel.VID;

            foreach (var item in myduties)
            {
                MydutyClaimInfoMiddleModel mydutyClaimInfo = new MydutyClaimInfoMiddleModel();

                searchByID.MydutyClaim_InfoID = item.id;
                MydutyClaim_Sign ii = _mydutyClaim_Sign.GetByParasOne(searchByID);

                if (ii != null && ii.id != null)
                {
                    if (ii.type == "in")
                    {
                        item.status = "上传现场图片";
                    }
                    if (ii.type == "img")
                    {
                        item.status = "待签退";
                    }
                    if (ii.type == "out")
                    {
                        item.status = "已完结";
                        //已经完结的 事项不再显示,只显示待办信息 20200621
                        //myduties.Remove(item);
                    }
                }
                else
                {
                    item.status = "待签到";
                }

                mydutyClaimInfo = _IMapper.Map <MydutyClaim_Info, MydutyClaimInfoMiddleModel>(item);

                var dutyInfo = _ondutyClaimsInfoRepository.GetByID(item.OndutyClaims_InfoId);
                if (dutyInfo != null)
                {
                    //获取 社区、小区
                    mydutyClaimInfo.Subdistrict = dutyInfo.Subdistrict;
                    var normalInfo = _normalizationInfo.NormalizationByID(dutyInfo.Normalization_InfoId);
                    if (normalInfo != null)
                    {
                        mydutyClaimInfo.Community = normalInfo.CommunityName;
                    }
                }
                models.Add(mydutyClaimInfo);
            }

            models.RemoveAll(o => o.status.Equals("已完结"));



            return(models);
        }