LR-20210131IOQH\Administrator
2021-08-10 d4a6d65f5e449c3e5464aa18ae97bf8953987217
zhengcaioa/Services/ProjectService.cs
@@ -64,6 +64,9 @@
                    updateproject.Name = project.Name;
                    updateproject.Drhx = project.Drhx;
                    updateproject.DrhxPrice = project.DrhxPrice;
                    updateproject.DrhxDefen = project.DrhxDefen;
                    updateproject.DshxDefen = project.DshxDefen;
                    updateproject.Dshx = project.Dshx;
                    updateproject.Dshx = project.Dshx;
                    updateproject.DshxPrice = project.DshxPrice;
                    updateproject.Zhuanjia = project.Zhuanjia;
@@ -89,6 +92,10 @@
                    updateproject.Dailiname = project.Dailiname;
                    updateproject.Dailicontact = project.Dailicontact;
                    updateproject.Dailiaddress = project.Dailiaddress;
                    updateproject.Fencha = project.Fencha;
                    updateproject.Shuliang = project.Shuliang;
                    updateproject.Caigouyusuan = project.Caigouyusuan;
                }
                //子表
@@ -188,6 +195,7 @@
                            }
                            projectzhongbiao.Names = projectDTO.Names[i];
                            projectzhongbiao.Price = projectDTO.Price[i];
                            projectzhongbiao.Defen = projectDTO.Defen[i];
                            projectzhongbiao.ProjectId = project.Id;
                            _context.Projectzhongbiaos.Add(projectzhongbiao);
                        }
@@ -227,7 +235,10 @@
            var projectDTO = _mapper.Map<ProjectDTO>(entity);
            if(projectreasons!=null && projectreasons.Count>0)
            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;
            }
@@ -251,12 +262,26 @@
            if (Projectzhongbiaos != null && Projectzhongbiaos.Count > 0)
            {
                projectDTO.Projectzhongbiaos = Projectzhongbiaos;
                List<ProjectzhongbiaoDTO> projectzhongbiaoDTOs = new List<ProjectzhongbiaoDTO>();
                foreach(var projectzhongbiao in Projectzhongbiaos)
                {
                    ProjectzhongbiaoDTO projectzhongbiaoDTO = new ProjectzhongbiaoDTO();
                    projectzhongbiaoDTO.DefenName = projectzhongbiao.Defen.HasValue ? projectzhongbiao.Defen.Value.ToString("F2") : "";
                    projectzhongbiaoDTO.ZhongbiaoId = projectzhongbiao.ZhongbiaoId;
                    projectzhongbiaoDTO.ProjectId = projectzhongbiao.ProjectId;
                    projectzhongbiaoDTO.Names = projectzhongbiao.Names;
                    projectzhongbiaoDTO.Price = projectzhongbiao.Price;
                    projectzhongbiaoDTO.Defen = projectzhongbiao.Defen;
                     projectzhongbiaoDTOs.Add(projectzhongbiaoDTO);
                }
                projectDTO.Projectzhongbiaos = projectzhongbiaoDTOs;
            }
            else
            {
                var Projectzhongbiaoslist = new List<Projectzhongbiao>();
                Projectzhongbiaoslist.Add(new Projectzhongbiao());
                var Projectzhongbiaoslist = new List<ProjectzhongbiaoDTO>();
                Projectzhongbiaoslist.Add(new ProjectzhongbiaoDTO());
                projectDTO.Projectzhongbiaos = Projectzhongbiaoslist;
            }
@@ -272,7 +297,7 @@
            List<ProjectDTO> list = new List<ProjectDTO>();
            //筛选
            StringBuilder sql = new StringBuilder();
            sql.Append("SELECT distinct a.[Id],a.[start_time] ,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.[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] ,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("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] ");
@@ -301,6 +326,53 @@
                sql.Append(" )");
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.Fencha))
            {
                decimal aaaa = 0;
                decimal.TryParse(searchEntity.Fencha, out aaaa);
                if (aaaa > 0)
                {
                    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))
            {
                decimal aaaa = 0;
                decimal.TryParse(searchEntity.Fenchadayu, out aaaa);
                if (aaaa > 0)
                {
                    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.Shuliang))
            {
                decimal aaaa = 0;
                decimal.TryParse(searchEntity.Shuliang, out aaaa);
                if (aaaa > 0)
                {
                    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    <=  " + aaaa + "");
                    sql.Append("  ) ");
                }
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.Reasonname))
            {
@@ -360,9 +432,19 @@
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.Caigourenname))
            {
                sql.Append("and a.[caigourenname] like '%" + searchEntity.Caigourenname.Trim().Replace("'", "''") + "%'");
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.Dailiname))
            {
                sql.Append("and a.[dailiname] like '%" + searchEntity.Dailiname.Trim().Replace("'", "''") + "%'");
            }
            if (!string.IsNullOrWhiteSpace(searchEntity.Sheng))
            {
@@ -458,7 +540,7 @@
            
            
            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);
@@ -556,5 +638,16 @@
            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;
        }
    }
}