From 67a0042c5f29e4bb0e0b82f6190f2bc51480b45c Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期二, 28 二月 2023 13:25:09 +0800
Subject: [PATCH] 工资绩效改版

---
 zhengcaioa/Services/IntentionCustomerService.cs |  386 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 341 insertions(+), 45 deletions(-)

diff --git a/zhengcaioa/Services/IntentionCustomerService.cs b/zhengcaioa/Services/IntentionCustomerService.cs
index c4d47ee..29c77ff 100644
--- a/zhengcaioa/Services/IntentionCustomerService.cs
+++ b/zhengcaioa/Services/IntentionCustomerService.cs
@@ -3,6 +3,7 @@
 using System.Linq;
 using System.Text;
 using AutoMapper;
+using CommonToolsCore;
 using DTO;
 using IServices;
 using Microsoft.AspNetCore.Mvc.Rendering;
@@ -26,25 +27,65 @@
         ResultEntity resultEntity = new ResultEntity();
         try
         {
-            var checkUserSn = _context.IntentionCustomers.Where(x => x.Name == intentionCustomerDTO.Name && x.RecStatus == "A" && x.Id != intentionCustomerDTO.Id).FirstOrDefault();
-            if (checkUserSn != null && (string.IsNullOrWhiteSpace(intentionCustomerDTO.Id) || (!string.IsNullOrWhiteSpace(intentionCustomerDTO.Id) && checkUserSn.Id != intentionCustomerDTO.Id)))
-            {
-                resultEntity.Result = false;
-                resultEntity.Message = "瀹㈡埛鍗曚綅閲嶅";
-                return resultEntity;
-            }
+                var checkUserSn = _context.IntentionCustomers.Where(x => x.Name == intentionCustomerDTO.Name && x.RecStatus == "A" && x.Id != intentionCustomerDTO.Id).FirstOrDefault();
+                if (checkUserSn != null && (string.IsNullOrWhiteSpace(intentionCustomerDTO.Id) || (!string.IsNullOrWhiteSpace(intentionCustomerDTO.Id) && checkUserSn.Id != intentionCustomerDTO.Id)))
+                {
+                    resultEntity.Result = false;
+                    resultEntity.Message = "瀹㈡埛鍗曚綅閲嶅";
+                    return resultEntity;
+                }
 
-            var intentionCustomer = _mapper.Map<IntentionCustomer>(intentionCustomerDTO);
+                var checkcooper = _context.CooperatecustomCustomers.Where(x => x.Name == intentionCustomerDTO.Name && x.RecStatus == "A" ).FirstOrDefault();
+                if (checkcooper != null )
+                {
+                    resultEntity.Result = false;
+                    resultEntity.Message = "宸插瓨鍦ㄥ悎浣滃鎴�";
+                    return resultEntity;
+                }
+
+
+                var intentionCustomer = _mapper.Map<IntentionCustomer>(intentionCustomerDTO);
 
 
             if (String.IsNullOrEmpty(intentionCustomer.Id))
             {
+                    if (!string.IsNullOrEmpty(intentionCustomer.Ywjl))
+                    {
+                        intentionCustomer.Ywjltime = DateTime.Now;
+                        var Cooper = _context.CooperatecustomCustomers.Count(x => x.RecStatus == "A" && x.Ywjl == intentionCustomer.Ywjl);
+                        var Inten = _context.IntentionCustomers.Count(x => x.RecStatus == "A" && x.Ywjl == intentionCustomer.Ywjl);
+                        if(Cooper+ Inten > 2000)
+                        {
+                            resultEntity.Result = false;
+                            resultEntity.Message = "璇ヤ笟鍔$粡鐞嗭紝瀹㈡埛鍗曚綅鍜屽悎浣滃鎴峰悎璁¤秴杩�2000锛�";
+                            return resultEntity;
+                        }
+                    }
+
                     intentionCustomer.Id = Guid.NewGuid().ToString();
                 _context.IntentionCustomers.Add(intentionCustomer);
             }
             else
             {
-                var updateproject = _context.IntentionCustomers.Find(intentionCustomer.Id);
+                    var updateproject = _context.IntentionCustomers.Find(intentionCustomer.Id);
+                    if (!string.IsNullOrEmpty(intentionCustomer.Ywjl) && (string.IsNullOrEmpty(updateproject.Ywjl) || !string.IsNullOrEmpty(updateproject.Ywjl) && intentionCustomer.Ywjl!= updateproject.Ywjl ))
+                    {
+                        updateproject.Ywjltime = DateTime.Now;
+                        var Cooper = _context.CooperatecustomCustomers.Count(x => x.RecStatus == "A" && x.Ywjl == intentionCustomer.Ywjl);
+                        var Inten = _context.IntentionCustomers.Count(x => x.RecStatus == "A" && x.Ywjl == intentionCustomer.Ywjl);
+                        if (Cooper + Inten >= 2000)
+                        {
+                            resultEntity.Result = false;
+                            resultEntity.Message = "璇ヤ笟鍔$粡鐞嗭紝瀹㈡埛鍗曚綅鍜屽悎浣滃鎴峰悎璁¤秴杩�2000锛�";
+                            return resultEntity;
+                        }
+                    }
+
+                    if (string.IsNullOrEmpty(intentionCustomer.Ywjl)){
+                        updateproject.Ywjltime = null;
+                    }
+
+
 
                 updateproject.Sheng = intentionCustomer.Sheng;
                 updateproject.City = intentionCustomer.City;
@@ -81,10 +122,30 @@
                 updateproject.Modifier = intentionCustomer.Modifier;
                 updateproject.Modifytime = intentionCustomer.Modifytime;
 
-            }
+                    updateproject.Yixiangtime = intentionCustomer.Yixiangtime;
+                    updateproject.Yixiang = intentionCustomer.Yixiang;
+                    updateproject.Dianxiaozhuanyuan = intentionCustomer.Dianxiaozhuanyuan;
+                    updateproject.Zuijinzhuizongtime = intentionCustomer.Zuijinzhuizongtime;
+
+                    updateproject.Weixin = intentionCustomer.Weixin;
+                    updateproject.Shifoutianjiaweixin = intentionCustomer.Shifoutianjiaweixin;
+                    updateproject.Weixiner = intentionCustomer.Weixiner;
+                    updateproject.Weixintime = intentionCustomer.Weixintime;
+
+                    if (!string.IsNullOrEmpty(intentionCustomer.HuiyuanId))
+                    {
+                        updateproject.HuiyuanId = intentionCustomer.HuiyuanId;
+                    }
+                }
 
             _context.SaveChanges();
-            resultEntity.ReturnID = intentionCustomer.Id;
+
+                var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A").ToList();
+
+              var  intentionCustomerDTOs = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
+                CacheHelperNetCore.CacheInsert("intentionCustomerDTOs", intentionCustomerDTOs);
+
+                resultEntity.ReturnID = intentionCustomer.Id;
             resultEntity.Result = true;
         }
         catch (Exception ex)
@@ -112,6 +173,23 @@
         return intentionCustomerDTO;
     }
 
+        public IntentionCustomerDTO GetByName(string name)
+        {
+            
+            var entity = _context.IntentionCustomers.Where(x=>x.Name == name).FirstOrDefault();
+
+            if (entity==null || entity.RecStatus != "A")
+            {
+                entity = new IntentionCustomer();
+            }
+
+            var intentionCustomerDTO = _mapper.Map<IntentionCustomerDTO>(entity);
+
+
+            return intentionCustomerDTO;
+        }
+
+        
     public ResultDataEntity<IntentionCustomerDTO> SearchByPaging(IntentionCustomerDTOSearch searchEntity)
     {
 
@@ -149,36 +227,75 @@
                 DateTime.TryParse(Createtimes[1], out Createtimeend);
                 Createtimeend = Createtimeend.AddDays(1);
             }
-          
+            DateTime Yixiangtimestart = DateTime.Now;
+            DateTime Yixiangtimeend = DateTime.Now;
+            if (!string.IsNullOrWhiteSpace(searchEntity.Yixiangtime))
+            {
+                string[] Yixiangtimes = searchEntity.Yixiangtime.Split("|");
+                DateTime.TryParse(Yixiangtimes[0], out Yixiangtimestart);
+                DateTime.TryParse(Yixiangtimes[1], out Yixiangtimeend);
+               // Yixiangtimeend = Yixiangtimeend.AddDays(1);
+            }
 
-                var query = (from a in _context.IntentionCustomers
-                     join b in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "khly")
-                     on a.Khly equals b.CodeSn
-                     join c in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "hyfl")
-                     on a.Hyfl equals c.CodeSn
-                     join d in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "khlx")
-                    on a.Khlx equals d.CodeSn
-                     join e in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A" && x.IsYwjl == "A")
-                     on a.Ywjl equals e.Id
-                     into esss
-                     from abi in esss.DefaultIfEmpty()
-                     join f in _context.Areas on a.Sheng equals f.CodeId
-                     join g in _context.Areas on a.City equals g.CodeId
-                     join h in _context.Areas on a.AreaId equals h.CodeId
+            int aaaa = 0;
+            if (!string.IsNullOrWhiteSpace(searchEntity.Visittimes))
+            {
+                int.TryParse(searchEntity.Visittimes, out aaaa);    
+            }
 
-                     where a.RecStatus == "A"
+
+            var query = (from a in _context.IntentionCustomers
+                    // join b in listCode.Where(x => x.CodeTable == "IntentionCustomer" && x.CodeField == "khly")
+                    // on a.Khly equals b.CodeSn
+                    // join c in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "hyfl")
+                    // on a.Hyfl equals c.CodeSn
+                    // join d in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "khlx")
+                    //on a.Khlx equals d.CodeSn
+                    // join e in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A" && x.IsYwjl == "A")
+                    // on a.Ywjl equals e.Id
+                    // into esss
+                    // from abi in esss.DefaultIfEmpty()
+
+                    //         join f in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A" )
+                    //        on a.Dianxiaozhuanyuan equals f.Id
+                    //        into fsss
+                    //         from fff in fsss.DefaultIfEmpty()
+
+                    //         join f in _context.Areas on a.Sheng equals f.CodeId
+                    // join g in _context.Areas on a.City equals g.CodeId
+                    // join h in _context.Areas on a.AreaId equals h.CodeId
+
+
+                         join l in _context.IntentionVisits.Where(x => x.RecStatus == "A").GroupBy(q => new { q.Viscustomer }).Select(q => new
+                         {
+                             Viscustomer = q.Key.Viscustomer,
+                             Visittimes = q.Count(),
+                         })
+                           on a.Id equals l.Viscustomer
+                         into lsss
+                         from lll in lsss.DefaultIfEmpty()
+
+                         where a.RecStatus == "A"
                       && (string.IsNullOrWhiteSpace(searchEntity.Createtime) || (a.Createtime >= Createtimestart && a.Createtime <= Createtimeend))
                      && (string.IsNullOrWhiteSpace(searchEntity.Name) || a.Name.Contains(searchEntity.Name.Trim()))
                       && (string.IsNullOrWhiteSpace(searchEntity.Khly) || a.Khly == searchEntity.Khly.Trim())
                        && (string.IsNullOrWhiteSpace(searchEntity.Hyfl) || a.Hyfl == searchEntity.Hyfl.Trim())
                         && (string.IsNullOrWhiteSpace(searchEntity.Khlx) || a.Khlx == searchEntity.Khlx.Trim())
-                         && (string.IsNullOrWhiteSpace(searchEntity.Ywjl) || a.Ywjl == searchEntity.Ywjl.Trim())
+                         //&& (string.IsNullOrWhiteSpace(searchEntity.Ywjl) || a.Ywjl == searchEntity.Ywjl.Trim())
                           && (string.IsNullOrWhiteSpace(searchEntity.Sheng) || a.Sheng == searchEntity.Sheng.Trim())
                            && (string.IsNullOrWhiteSpace(searchEntity.City) || a.City == searchEntity.City.Trim())
                             && (string.IsNullOrWhiteSpace(searchEntity.AreaId) || a.AreaId == searchEntity.AreaId.Trim())
                                && (string.IsNullOrWhiteSpace(searchEntity.Creater) || a.Creater == searchEntity.Creater.Trim())
 
-                             select new IntentionCustomerDTO
+                                 && (string.IsNullOrWhiteSpace(searchEntity.Dianxiaozhuanyuan) || a.Dianxiaozhuanyuan == searchEntity.Dianxiaozhuanyuan.Trim())
+                                
+                                    && (string.IsNullOrWhiteSpace(searchEntity.Yixiangtime) || (a.Yixiangtime >= Yixiangtimestart && a.Yixiangtime <= Yixiangtimeend))
+                                      && (string.IsNullOrWhiteSpace(searchEntity.Yixiang) || ( a.Yixiang == searchEntity.Yixiang.Trim() && (a.Ywjl == null || a.Ywjl == searchEntity.YwjlYx) ))
+                                       && (aaaa <= 0 || lll.Visittimes >= aaaa)
+
+                                      
+                                      //&& (string.IsNullOrWhiteSpace(searchEntity.Shifouweixin) || a.Shifoutianjiaweixin == searchEntity.Shifouweixin.Trim())
+                         select new IntentionCustomerDTO
                      {
                          Id = a.Id,
                          Sheng = a.Sheng,
@@ -188,13 +305,13 @@
                          Hyfl = a.Hyfl,
                          Khlx = a.Khlx,
                          Ywjl = a.Ywjl,
-                         ShengName = f.Name + "-" + g.Name + "-" + h.Name,
-                         CityName = g.Name,
-                         AreaIdName = h.Name,
-                         KhlyName = b.Comments,
-                         HyflName = c.Comments,
-                         KhlxName = d.Comments,
-                         YwjlName = abi.UserName,
+                         //ShengName = f.Name + "-" + g.Name + "-" + h.Name,
+                         //CityName = g.Name,
+                         //AreaIdName = h.Name,
+                         //KhlyName = b.Comments,
+                         //HyflName = c.Comments,
+                         //KhlxName = d.Comments,
+                         //YwjlName = abi.UserName,
                          Name = a.Name,
                          Postal = a.Postal,
                          Address = a.Address,
@@ -218,20 +335,147 @@
                          ShrTel = a.ShrTel,
                          ShrAddress = a.ShrAddress,
                          Remark = a.Remark,
-
+                         Weixin = a.Weixin,
+                         Shifoutianjiaweixin = a.Shifoutianjiaweixin,
+                         Weixiner = a.Weixiner,
+                         Weixintime = a.Weixintime,
                          RecStatus = a.RecStatus,
                          Modifier = a.Modifier,
                          Modifytime = a.Modifytime,
                          CreatetimeName = a.Createtime.ToString("yyyy-MM-dd"),
-                     }
-                    ).OrderByDescending(x => x.Modifytime).ToList();
+                         Customertype = "妗f瀹㈡埛",
+                                 Yixiangtime = a.Yixiangtime,
+                                 YixiangtimeName = a.Yixiangtime.HasValue? a.Yixiangtime.Value.ToString("yyyy-MM-dd"):"",
+                                 Yixiang = a.Yixiang,
+                                 Dianxiaozhuanyuan = a.Dianxiaozhuanyuan,
+                                 //DianxiaozhuanyuanName = fff.UserName,
+                                 Zuijinzhuizongtime = a.Zuijinzhuizongtime,
+                                 ZuijinzhuizongtimeName = a.Zuijinzhuizongtime.HasValue ? a.Zuijinzhuizongtime.Value.ToString("yyyy-MM-dd") : "",
+                             Visittimes = lll.Visittimes,
+                         }
+                    );
 
+            if (!string.IsNullOrWhiteSpace(searchEntity.Shifouweixin))
+            {
+                query = query.Where( a=>a.Shifoutianjiaweixin == searchEntity.Shifouweixin.Trim());
+            }
 
+            if (!string.IsNullOrWhiteSpace(searchEntity.Ywjl))
+            {
+                if(searchEntity.Ywjl != "11111")
+                {
+                    query = query.Where(a => a.Ywjl == searchEntity.Ywjl.Trim());
+                }else
+                {
+                    query = query.Where(a => a.Ywjl == null   );
+                }
 
-        if (searchEntity.totalrows == 0)
+              
+            }
+
+            if (!string.IsNullOrWhiteSpace(searchEntity.ShifouDianhua))
+            {
+                if (searchEntity.ShifouDianhua != "A")
+                {
+                    query = query.Where(a => a.Tel == null ||  a.Tel == "");
+                }
+                else
+                {
+                    query = query.Where(a => a.Tel != null && a.Tel != "");
+                }
+                
+            }
+            if (!string.IsNullOrWhiteSpace(searchEntity.Visittimes))
+            {
+                if (searchEntity.ShifouDianhua != "A")
+                {
+                    query = query.Where(a => a.Tel == null || a.Tel == "");
+                }
+                else
+                {
+                    query = query.Where(a => a.Tel != null && a.Tel != "");
+                }
+
+            }
+             
+
+            //if (searchEntity.totalrows == 0)
             searchEntity.totalrows = query.Count();
-        var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
-        data.LoadData(searchEntity, lianlist);
+        var lianlist = query.OrderByDescending(x => x.Modifytime).Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
+
+            if(lianlist!=null && lianlist.Count > 0)
+            {
+                var areas = _context.Areas;
+                var pltUsers = _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A");
+
+                var khly = listCode.Where(x => x.CodeTable == "IntentionCustomer" && x.CodeField == "khly");
+
+
+                var hyfl = listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "hyfl");
+
+
+                var khlx = listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "khlx");
+
+
+                foreach (var intentionCustomerDTO in lianlist)
+                {
+                  var sheng =  areas.Where(x => x.CodeId == intentionCustomerDTO.Sheng).FirstOrDefault();
+                    var city = areas.Where(x => x.CodeId == intentionCustomerDTO.City).FirstOrDefault();
+                    var Area = areas.Where(x => x.CodeId == intentionCustomerDTO.AreaId).FirstOrDefault();
+                    if (sheng != null)
+                    {
+                        intentionCustomerDTO.ShengName = sheng.Name;
+                    }
+                    if (city != null)
+                    {
+                        intentionCustomerDTO.CityName = city.Name;
+                        intentionCustomerDTO.ShengName += "-" + city.Name;
+                    }
+                    if (Area != null)
+                    {
+                        intentionCustomerDTO.AreaIdName = Area.Name;
+                        intentionCustomerDTO.ShengName += "-" + Area.Name;
+                    }
+                   var ywjl  = pltUsers.Where(x => x.Id == intentionCustomerDTO.Ywjl).FirstOrDefault();
+                    if (ywjl != null)
+                    {
+                        intentionCustomerDTO.YwjlName = ywjl.UserName;
+                    }
+                    var Dianxiaozhuanyuan = pltUsers.Where(x => x.Id == intentionCustomerDTO.Dianxiaozhuanyuan).FirstOrDefault();
+                    if (Dianxiaozhuanyuan != null)
+                    {
+                        intentionCustomerDTO.DianxiaozhuanyuanName = Dianxiaozhuanyuan.UserName;
+                    }
+                    var KhlyName = khly.Where(x => x.CodeSn == intentionCustomerDTO.Khly).FirstOrDefault();
+                    if (KhlyName != null)
+                    {
+                        intentionCustomerDTO.KhlyName = KhlyName.Comments;
+                    }
+                    var HyflName = hyfl.Where(x => x.CodeSn == intentionCustomerDTO.Hyfl).FirstOrDefault();
+                    if (HyflName != null)
+                    {
+                        intentionCustomerDTO.HyflName = HyflName.Comments;
+                    }
+                    var KhlxName = khlx.Where(x => x.CodeSn == intentionCustomerDTO.Khlx).FirstOrDefault();
+                    if (KhlxName != null)
+                    {
+                        intentionCustomerDTO.KhlxName = KhlxName.Comments;
+                    }
+
+
+                    intentionCustomerDTO.Guanliankehushu = _context.CustomerGuanlians.Count(x => x.CustomerId == intentionCustomerDTO.Id);
+                }
+            }
+
+          
+
+            //foreach (var intentionCustomerDTO in lianlist)
+            //{
+            //    intentionCustomerDTO.Visittimes = _context.IntentionVisits.Count(x => x.RecStatus == "A" && x.Viscustomer == intentionCustomerDTO.Id);
+            //}
+
+
+                data.LoadData(searchEntity, lianlist);
         return data;
     }
 
@@ -266,14 +510,35 @@
         /// 鑾峰彇鎵�鏈夋湁鏁堟剰鍚戝鎴�
         /// </summary>
         /// <returns></returns>
-        public List<IntentionCustomerDTO> GetList()
+        public List<IntentionCustomerDTO> GetList(string huiyuanId = null)
         {
+            List<IntentionCustomerDTO> intentionCustomerDTOs = (List<IntentionCustomerDTO>)CacheHelperNetCore.CacheValue("intentionCustomerDTOs");
+             
+
+            if (intentionCustomerDTOs != null && intentionCustomerDTOs.Count > 0)
+            {
+                if (!string.IsNullOrEmpty(huiyuanId))
+                {
+                    intentionCustomerDTOs = intentionCustomerDTOs.Where(x => x.HuiyuanId == huiyuanId).ToList();
+                }
+
+                
+                return intentionCustomerDTOs;
+            }
 
 
             var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A").ToList();
 
-            var list = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
-            return list;
+            intentionCustomerDTOs = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
+            CacheHelperNetCore.CacheInsert("intentionCustomerDTOs", intentionCustomerDTOs);
+
+
+            if (!string.IsNullOrEmpty(huiyuanId))
+            {
+                intentionCustomerDTOs = intentionCustomerDTOs.Where(x => x.HuiyuanId == huiyuanId).ToList();
+            }
+
+            return intentionCustomerDTOs;
         }
 
         /// <summary>
@@ -296,5 +561,36 @@
 
             return result;
         }
+
+        public List<IntentionCustomerDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax)
+        {
+
+
+            var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A" && r.Creater == userid && r.Createtime >= datemin && r.Createtime < datemax).ToList();
+
+            var list = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
+            return list;
+        }
+
+        public List<IntentionCustomerDTO> GetListsalaryweixin(string userid, DateTime datemin, DateTime datemax)
+        {
+
+
+            var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A" && r.Weixiner == userid && r.Weixintime >= datemin && r.Weixintime < datemax).ToList();
+
+            var list = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
+            return list;
+        }
+
+        public List<IntentionCustomerDTO> GetListsalaryyixiang(string userid, DateTime datemin, DateTime datemax)
+        {
+
+
+            var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A" && r.Dianxiaozhuanyuan == userid && r.Yixiangtime >= datemin && r.Yixiangtime < datemax).ToList();
+
+            var list = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
+            return list;
+        }
+
     }
 }

--
Gitblit v1.9.1