username@email.com
2022-10-18 378725af30f2ccf5007f80c553865be2b39f727a
zhengcaioa/Services/ProjectService.cs
@@ -27,7 +27,7 @@
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                var checkUserSn = _context.Projects.Where(x => x.Name == projectDTO.Name && x.RecStatus == "A" && x.Id != projectDTO.Id).FirstOrDefault();
                var checkUserSn = _context.Projects.Where(x => x.Name == projectDTO.Name.Trim() && x.RecStatus == "A" && x.Id != projectDTO.Id).FirstOrDefault();
                if (checkUserSn != null && (string.IsNullOrWhiteSpace(projectDTO.Id) || (!string.IsNullOrWhiteSpace(projectDTO.Id) && checkUserSn.Id != projectDTO.Id)))
                {
                    resultEntity.Result = false;
@@ -93,7 +93,8 @@
                    updateproject.Dailicontact = project.Dailicontact;
                    updateproject.Dailiaddress = project.Dailiaddress;
                    updateproject.Fencha = project.Fencha;
                    updateproject.Shuliang = updateproject.Shuliang;
                    updateproject.Shuliang = project.Shuliang;
                    updateproject.Caigouyusuan = project.Caigouyusuan;
                }
@@ -127,6 +128,12 @@
                            projectreason.Reasonname = projectDTO.Reasonname[i];
                            projectreason.Reasonremark = projectDTO.Reasonremark[i];
                            projectreason.ProjectId = project.Id;
                            projectreason.WxZhiyistatus = projectDTO.WxZhiyistatus[i];
                            projectreason.WxZhiyishijian = projectDTO.WxZhiyishijian[i];
                            projectreason.WxZhiyichengli = projectDTO.WxZhiyichengli[i];
                            projectreason.WxTousustatus = projectDTO.WxTousustatus[i];
                            projectreason.WxTousushijian = projectDTO.WxTousushijian[i];
                            projectreason.WxTousuchengli = projectDTO.WxTousuchengli[i];
                            _context.Projectreasons.Add(projectreason);
                        } 
                    }
@@ -161,6 +168,13 @@
                            projectyouxiao.Namesyouxiao = projectDTO.Namesyouxiao[i];
                            projectyouxiao.Priceyouxiao = projectDTO.Priceyouxiao[i];
                            projectyouxiao.ProjectId = project.Id;
                            projectyouxiao.YxZhiyistatus = projectDTO.YxZhiyistatus[i];
                            projectyouxiao.YxZhiyishijian = projectDTO.YxZhiyishijian[i];
                            projectyouxiao.YxZhiyichengli = projectDTO.YxZhiyichengli[i];
                            projectyouxiao.YxTousustatus = projectDTO.YxTousustatus[i];
                            projectyouxiao.YxTousushijian = projectDTO.YxTousushijian[i];
                            projectyouxiao.YxTousuchengli = projectDTO.YxTousuchengli[i];
                            _context.Projectyouxiaos.Add(projectyouxiao);
                        }
                    }
@@ -196,6 +210,14 @@
                            projectzhongbiao.Price = projectDTO.Price[i];
                            projectzhongbiao.Defen = projectDTO.Defen[i];
                            projectzhongbiao.ProjectId = project.Id;
                            projectzhongbiao.ZbZhiyistatus = projectDTO.ZbZhiyistatus[i];
                            projectzhongbiao.ZbZhiyishijian = projectDTO.ZbZhiyishijian[i];
                            projectzhongbiao.ZbZhiyichengli = projectDTO.ZbZhiyichengli[i];
                            projectzhongbiao.ZbTousustatus = projectDTO.ZbTousustatus[i];
                            projectzhongbiao.ZbTousushijian = projectDTO.ZbTousushijian[i];
                            projectzhongbiao.ZbTousuchengli = projectDTO.ZbTousuchengli[i];
                            _context.Projectzhongbiaos.Add(projectzhongbiao);
                        }
                    }
@@ -236,6 +258,7 @@
            var projectDTO = _mapper.Map<ProjectDTO>(entity);
            projectDTO.DrhxDefenName = projectDTO.DrhxDefen.HasValue ? projectDTO.DrhxDefen.Value.ToString("F2") : "";
            projectDTO.DshxDefenName = projectDTO.DshxDefen.HasValue ? projectDTO.DshxDefen.Value.ToString("F2") : "";
            projectDTO.CaigouyusuanName = projectDTO.Caigouyusuan.HasValue ? projectDTO.Caigouyusuan.Value.ToString() : "";
            if (projectreasons!=null && projectreasons.Count>0)
            {
                projectDTO.projectreasons = projectreasons;
@@ -272,7 +295,14 @@
                    projectzhongbiaoDTO.Price = projectzhongbiao.Price;
                    projectzhongbiaoDTO.Defen = projectzhongbiao.Defen;
                     projectzhongbiaoDTOs.Add(projectzhongbiaoDTO);
                    projectzhongbiaoDTO.ZbZhiyichengli = projectzhongbiao.ZbZhiyichengli;
                    projectzhongbiaoDTO.ZbZhiyishijian = projectzhongbiao.ZbZhiyishijian;
                    projectzhongbiaoDTO.ZbZhiyistatus = projectzhongbiao.ZbZhiyistatus;
                    projectzhongbiaoDTO.ZbTousuchengli = projectzhongbiao.ZbTousuchengli;
                    projectzhongbiaoDTO.ZbTousushijian = projectzhongbiao.ZbTousushijian;
                    projectzhongbiaoDTO.ZbTousustatus = projectzhongbiao.ZbTousustatus;
                    projectzhongbiaoDTOs.Add(projectzhongbiaoDTO);
                }
                projectDTO.Projectzhongbiaos = projectzhongbiaoDTOs;
            }
@@ -295,11 +325,11 @@
            List<ProjectDTO> list = new List<ProjectDTO>();
            //筛选
            StringBuilder sql = new StringBuilder();
            sql.Append("SELECT distinct a.[Id],a.[start_time],a.[drhx_defen],a.[dshx_defen] ,b.[name] +'-'+c.[name]+'-'+d.[name]  Sheng ,a.city  ,a.[area_id],a.cgfs, a.[name] ,a.[number],a.creater,a.createtime,a.modifier,a.modifytime       ,a.[drhx],a.[drhx_price],a.[dshx],a.[dshx_price],a.[Fencha],a.[Shuliang],a.[remark],a.[rec_status] ,a.[question] ,a.[zhongbiaocishu],a.[feibiaocishu],a.[zhongbiaojine],a.[Fblx],a.[Fbyy] , a.[zhuanjia]  , a.[caigourenname], a.[caigourenaddress], a.[caigourencontact], a.[dailiname], a.[dailiaddress], a.[dailicontact] ,toubiaocishu = stuff((select '、'+ f.[names] from  [Projectzhongbiao] f where  f.[ProjectId] = a.[Id]  for xml path('')), 1,1, '')   "); //zhuanjia = stuff((select ','+name from [Zhuanjia] f where  CHARINDEX(f.id,a.[zhuanjia]) >0 for xml path('')), 1,1, '')
            sql.Append("SELECT distinct a.[Id],a.[start_time],a.[drhx_defen],a.[caigouyusuan],a.[dshx_defen] ,a.sheng ,a.city  ,a.[area_id],a.cgfs, a.[name] ,a.[number],a.creater,a.createtime,a.modifier,a.modifytime       ,a.[drhx],a.[drhx_price],a.[dshx],a.[dshx_price],a.[Fencha],a.[Shuliang],a.[remark],a.[rec_status] ,a.[question] ,a.[zhongbiaocishu],a.[feibiaocishu],a.[zhongbiaojine],a.[Fblx],a.[Fbyy] , a.[zhuanjia]  , a.[caigourenname], a.[caigourenaddress], a.[caigourencontact], a.[dailiname], a.[dailiaddress], a.[dailicontact] ,'' toubiaocishu ,a.[dehx_zhiyistatus],a.[dehx_zhiyishijian],a.[dehx_zhiyichengli],a.[dshx_zhiyistatus],a.[dshx_zhiyishijian],a.[dshx_zhiyichengli],a.[dehx_tousustatus],a.[dehx_tousushijian],a.[dehx_tousuchengli],a.[dshx_tousustatus],a.[dshx_tousushijian],a.[dshx_tousuchengli]  "); //zhuanjia = stuff((select ','+name from [Zhuanjia] f where  CHARINDEX(f.id,a.[zhuanjia]) >0 for xml path('')), 1,1, '')    = stuff((select '、'+ f.[names] from  [Projectzhongbiao] f where  f.[ProjectId] = a.[Id]  for xml path('')), 1,1, '')
            sql.Append("FROM [Project] a ");
            sql.Append("left join  [Area] b  on a.[sheng]  = b.[codeID] ");
            sql.Append("left join  [Area] c  on a.[city]  = c.[codeID] ");
            sql.Append("left join  [Area] d  on a.[area_id]  = d.[codeID] ");
            //sql.Append("left join  [Area] b  on a.[sheng]  = b.[codeID] ");
            //sql.Append("left join  [Area] c  on a.[city]  = c.[codeID] ");
            //sql.Append("left join  [Area] d  on a.[area_id]  = d.[codeID] ");
            //sql.Append("left join  [Zhuanjia] e  on CHARINDEX(e.id,a.[zhuanjia]) >0   ");
            sql.Append("  where a.rec_status='A' ");
@@ -333,6 +363,16 @@
                    sql.Append(" and exists ( select b.[ProjectId] from [Projectzhongbiao] b  where  a.[Id]=b.[ProjectId] and  (b.[defen]-a.[drhx_defen])  <= " + aaaa + " ) ");
                }
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.Baojiachaxiaoyu))
            {
                decimal aaaa = 0;
                decimal.TryParse(searchEntity.Baojiachaxiaoyu, out aaaa);
                if (aaaa > 0)
                {
                    sql.Append(" and exists ( select b.[ProjectId] from [Projectzhongbiao] b  where  a.[Id]=b.[ProjectId] and  (convert(numeric(10,2),b.[price] )-convert(numeric(10,2),a.[drhx_price] ))  <= " + aaaa + " ) ");
                }
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.Fenchadayu))
            {
@@ -359,6 +399,32 @@
                    sql.Append("  ) as sum_count ) a  where a.sum_count    <=  " + aaaa + "");
                    sql.Append("  ) ");
                }
            }
             if (!string.IsNullOrWhiteSpace(searchEntity.Chuanbiaofenxi))
            {
                if (searchEntity.Chuanbiaofenxi == "01")
                {
                    sql.Append(" and exists ( select b.[ProjectId] from [Projectzhongbiao] b  where  a.[Id]=b.[ProjectId] and  (b.[defen]-a.[drhx_defen])  >= 10 ) ");
                    sql.Append(" and exists ( select * from( select  (   isnull((select  COUNT(*) ProjectIdshuliang from  [Projectzhongbiao] b  where  a.[Id]=b.[ProjectId]   group by b.ProjectId) ,0)+  ");
                    sql.Append(" isnull( (select  COUNT(*) ProjectIdshuliang from  [Projectreason] b  where  a.[Id]=b.[ProjectId] group by b.ProjectId),0)+ ");
                    sql.Append(" isnull( (select  COUNT(*) ProjectIdshuliang from  [Projectyouxiao] b  where  a.[Id]=b.[ProjectId] group by b.ProjectId),0)+ ");
                    sql.Append(" isnull( ( select  COUNT(*) ProjectIdshuliang from  [Project] b    where a.[Id]=b.[Id] and b.drhx is not null ),0)+ ");
                    sql.Append(" isnull(  (select  COUNT(*) ProjectIdshuliang from  [Project] b    where  a.[Id]=b.[Id] and b.dshx is not null ),0) ");
                    sql.Append("  ) as sum_count ) a  where a.sum_count    <=  5 ");
                    sql.Append("  ) ");
                }
                else if (searchEntity.Chuanbiaofenxi == "02")
                {
                    sql.Append(" and exists ( select b.[ProjectId] from [Projectzhongbiao] b  where  a.[Id]=b.[ProjectId] and  (b.[defen]-a.[drhx_defen])  >= 20 ) ");
                }
                else if (searchEntity.Chuanbiaofenxi == "03")
                {
                    sql.Append(" and exists ( select b.[ProjectId] from [Projectzhongbiao] b  where  a.[Id]=b.[ProjectId] and  (b.[defen]-a.[drhx_defen])  >= 10 ) ");
                }
            }
@@ -417,6 +483,17 @@
            if (!string.IsNullOrWhiteSpace(searchEntity.StartTimestar))
            {
                sql.Append(" and a.start_time <='" + StartTimestarend.AddDays(1).ToString("yyyy-MM-dd") + "'");
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.KaibiaoTimeStar))
            {
                sql.Append(" and a.start_time >='" + searchEntity.KaibiaoTimeStar + "'");
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.KaibiaoTimeEnd))
            {
                sql.Append(" and a.start_time <='" + searchEntity.KaibiaoTimeEnd + "'");
            }
@@ -528,10 +605,122 @@
            
            
            if (searchEntity.totalrows == 0)
            //if (searchEntity.totalrows == 0)
                searchEntity.totalrows = query.Count();
            var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
            list = _mapper.Map<List<ProjectDTO>>(lianlist);
            var cgfs = GetCgfs();
           foreach(var projectDTO  in list)
            {
              var cgf =  cgfs.Where(x=>x.Id == projectDTO.Cgfs).FirstOrDefault();
                if (cgf != null)
                {
                    projectDTO.CgfsName = cgf.Name;
                }
            }
           var areas = _context.Areas.ToList();
            foreach (var projectDTO in list)
            {
                var sheng = areas.Where(x => x.CodeId == projectDTO.Sheng).FirstOrDefault();
                if (sheng != null)
                {
                    projectDTO.Sheng = sheng.Name ;
                }
                var City = areas.Where(x => x.CodeId == projectDTO.City).FirstOrDefault();
                if (City != null)
                {
                    projectDTO.Sheng += "-" + City.Name;
                }
                var AreaId = areas.Where(x => x.CodeId == projectDTO.AreaId).FirstOrDefault();
                if (AreaId != null)
                {
                    projectDTO.Sheng += "-" + AreaId.Name;
                }
            }
            List<string> projiectid = new List<string>();
            foreach (var projectDTO in list)
            {
                projiectid.Add(projectDTO.Id);
            }
            var projectzhongbiaos = _context.Projectzhongbiaos.Where(x => projiectid.Contains(x.ProjectId)).ToList();
            var projectreasons = _context.Projectreasons.Where(x => projiectid.Contains(x.ProjectId)).ToList();
            var projectyouxiaos = _context.Projectyouxiaos.Where(x => projiectid.Contains(x.ProjectId)).ToList();
            foreach (var projectDTO in list)
            {
                if (projectDTO.DehxZhiyistatus == "A"|| projectDTO.DshxZhiyistatus == "A")
                {
                    projectDTO.Zhiyistatus = "√";
                }
                if (projectDTO.DehxTousustatus == "A" || projectDTO.DshxTousustatus == "A")
                {
                    projectDTO.Tousustatus = "√";
                }
                var ProjectIds = projectzhongbiaos.Where(x => x.ProjectId == projectDTO.Id).ToList();
                projectDTO.Toubiaocishu = "";
                for (int i=0;i< ProjectIds.Count; i++)
                {
                    if(i== ProjectIds.Count - 1)
                    {
                        projectDTO.Toubiaocishu += ProjectIds[i].Names ;
                    }
                    else
                    {
                        projectDTO.Toubiaocishu += ProjectIds[i].Names + "、";
                    }
                    if (ProjectIds[i].ZbZhiyistatus == "A" )
                    {
                        projectDTO.Zhiyistatus = "√";
                    }
                    if (ProjectIds[i].ZbTousustatus == "A")
                    {
                        projectDTO.Tousustatus = "√";
                    }
                }
                var projectreasons1 = projectreasons.Where(x => x.ProjectId == projectDTO.Id).ToList();
                for (int i = 0; i < projectreasons1.Count; i++)
                {
                    if (projectreasons1[i].WxZhiyistatus == "A")
                    {
                        projectDTO.Zhiyistatus = "√";
                    }
                    if (projectreasons1[i].WxZhiyistatus == "A")
                    {
                        projectDTO.Tousustatus = "√";
                    }
                }
                var projectyouxiaos1 = projectyouxiaos.Where(x => x.ProjectId == projectDTO.Id).ToList();
                for (int i = 0; i < projectyouxiaos1.Count; i++)
                {
                    if (projectyouxiaos1[i].YxZhiyistatus == "A")
                    {
                        projectDTO.Zhiyistatus = "√";
                    }
                    if (projectyouxiaos1[i].YxZhiyistatus == "A")
                    {
                        projectDTO.Tousustatus = "√";
                    }
                }
                if (projectDTO.Zhiyistatus != "√")
                {
                    projectDTO.Zhiyistatus = "质疑";
                }
                if (projectDTO.Tousustatus != "√")
                {
                    projectDTO.Tousustatus = "投诉";
                }
            }
            data.LoadData(searchEntity, list);
            return data;
        }
@@ -626,5 +815,193 @@
            CacheHelperNetCore.CacheInsert("Projects", list);
            return list;
        }
        public List<ProjectDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax)
        {
            var listPosition = _context.Projects.Where(r => r.RecStatus == "A" && r.Creater == userid && r.Createtime >= datemin && r.Createtime < datemax).ToList();
            var list = _mapper.Map<List<ProjectDTO>>(listPosition);
            return list;
        }
        public ResultEntity saveZxdsfxl(ZxdsfxlDTO zxdsfxlDTO)
        {
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                var zxdsfxl = _mapper.Map<Zxdsfxl>(zxdsfxlDTO);
                if (String.IsNullOrEmpty(zxdsfxl.Id))
                {
                    zxdsfxl.Id = Guid.NewGuid().ToString();
                    _context.Zxdsfxls.Add(zxdsfxl);
                }
                else
                {
                    var updatezxdsfxl = _context.Zxdsfxls.Find(zxdsfxl.Id);
                    updatezxdsfxl.Huiyuanid = zxdsfxl.Huiyuanid;
                    updatezxdsfxl.Huiyuanname = zxdsfxl.Huiyuanname;
                    updatezxdsfxl.Visittime = zxdsfxl.Visittime;
                    updatezxdsfxl.Token = zxdsfxl.Token;
                    updatezxdsfxl.Leixing = zxdsfxl.Leixing;
                    updatezxdsfxl.RecStatus = zxdsfxl.RecStatus;
                    updatezxdsfxl.Modifier = zxdsfxl.Modifier;
                    updatezxdsfxl.Modifytime = zxdsfxl.Modifytime;
                }
                _context.SaveChanges();
                resultEntity.ReturnID = zxdsfxl.Id;
                resultEntity.Result = true;
            }
            catch (Exception ex)
            {
                resultEntity.Result = false;
                resultEntity.Message = "保存失败,请联系管理员";
            }
            return resultEntity;
        }
        public List<ZxdsfxlDTO> GetListZxdsfxl(string userid, DateTime datemin, DateTime datemax, string leixing)
        {
            var listPosition = _context.Zxdsfxls.Where(r => r.RecStatus == "A" && r.Leixing == leixing && r.Huiyuanid == userid && r.Visittime >= datemin && r.Visittime < datemax).ToList();
            var list = _mapper.Map<List<ZxdsfxlDTO>>(listPosition);
            return list;
        }
        public ResultEntity savezhiyi(string zhiyistatus, DateTime? zhiyishijian, string zhiyichengli, string projiectid, string mingxiid, string type)
        {
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                if (type == "1")
                {
                    var updateliaotian = _context.Projectzhongbiaos.Find(mingxiid);
                    updateliaotian.ZbZhiyistatus = zhiyistatus;
                    updateliaotian.ZbZhiyishijian = zhiyishijian;
                    updateliaotian.ZbZhiyichengli = zhiyichengli;
                }
                else if (type == "2")
                {
                    var updateliaotian = _context.Projects.Find(projiectid);
                    updateliaotian.DehxZhiyistatus = zhiyistatus;
                    updateliaotian.DehxZhiyishijian = zhiyishijian;
                    updateliaotian.DehxZhiyichengli = zhiyichengli;
                }
                else if (type == "3")
                {
                    var updateliaotian = _context.Projects.Find(projiectid);
                    updateliaotian.DshxZhiyistatus = zhiyistatus;
                    updateliaotian.DshxZhiyishijian = zhiyishijian;
                    updateliaotian.DshxZhiyichengli = zhiyichengli;
                }
                else if (type == "4")
                {
                    var updateliaotian = _context.Projectyouxiaos.Find(mingxiid);
                    updateliaotian.YxZhiyistatus = zhiyistatus;
                    updateliaotian.YxZhiyishijian = zhiyishijian;
                    updateliaotian.YxZhiyichengli = zhiyichengli;
                }
                else if (type == "5")
                {
                    var updateliaotian = _context.Projectreasons.Find(mingxiid);
                    updateliaotian.WxZhiyistatus = zhiyistatus;
                    updateliaotian.WxZhiyishijian = zhiyishijian;
                    updateliaotian.WxZhiyichengli = zhiyichengli;
                }
                _context.SaveChanges();
                resultEntity.ReturnID = projiectid;
                resultEntity.Result = true;
            }
            catch (Exception ex)
            {
                resultEntity.Result = false;
                resultEntity.Message = "保存失败,请联系管理员";
            }
            return resultEntity;
        }
        public ResultEntity savetousu(string tousustatus, DateTime? tousushijian, string tousuchengli, string projiectid, string mingxiid, string type)
        {
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                if (type == "1")
                {
                    var updateliaotian = _context.Projectzhongbiaos.Find(mingxiid);
                    updateliaotian.ZbTousustatus = tousustatus;
                    updateliaotian.ZbTousushijian = tousushijian;
                    updateliaotian.ZbTousuchengli = tousuchengli;
                }
                else if (type == "2")
                {
                    var updateliaotian = _context.Projects.Find(projiectid);
                    updateliaotian.DehxTousustatus = tousustatus;
                    updateliaotian.DehxTousushijian = tousushijian;
                    updateliaotian.DehxTousuchengli = tousuchengli;
                }
                else if (type == "3")
                {
                    var updateliaotian = _context.Projects.Find(projiectid);
                    updateliaotian.DshxTousustatus = tousustatus;
                    updateliaotian.DshxTousushijian = tousushijian;
                    updateliaotian.DshxTousuchengli = tousuchengli;
                }
                else if (type == "4")
                {
                    var updateliaotian = _context.Projectyouxiaos.Find(mingxiid);
                    updateliaotian.YxTousustatus = tousustatus;
                    updateliaotian.YxTousushijian = tousushijian;
                    updateliaotian.YxTousuchengli = tousuchengli;
                }
                else if (type == "5")
                {
                    var updateliaotian = _context.Projectreasons.Find(mingxiid);
                    updateliaotian.WxTousustatus = tousustatus;
                    updateliaotian.WxTousushijian = tousushijian;
                    updateliaotian.WxTousuchengli = tousuchengli;
                }
                _context.SaveChanges();
                resultEntity.ReturnID = projiectid;
                resultEntity.Result = true;
            }
            catch (Exception ex)
            {
                resultEntity.Result = false;
                resultEntity.Message = "保存失败,请联系管理员";
            }
            return resultEntity;
        }
    }
}