Browse Source

团组签证客户列表修改

jiangjc 1 year ago
parent
commit
0763a33eaf

+ 2 - 2
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -476,9 +476,9 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(false, "id错误:" + diId.ToString()));
             }
 
+            List<DelegationVisaProgressView> list = _delegationVisaRep.GetDelegationProgressList(diId);
 
-
-            return Ok(JsonView(false));
+            return Ok(JsonView(list));
         }
 
 

+ 32 - 3
OASystem/OASystem.Domain/Entities/Groups/Grp_VisaProgress.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -111,11 +112,18 @@ namespace OASystem.Domain.Entities.Groups
         public int CustomerId { get; set; }
 
         /// <summary>
-        /// 客户姓
+        /// 客户姓
         /// 正式使用新版OA后弃用
         /// </summary>
         [SugarColumn(IsNullable = false, ColumnDataType = "varchar(50)")]
-        public string CustomerName { get; set; }
+        public string LastName { get; set; }
+
+        /// <summary>
+        /// 客户名
+        /// 正式使用新版OA后弃用
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDataType = "varchar(50)")]
+        public string FirstName { get; set; }
 
         /// <summary>
         /// 签证国家
@@ -145,6 +153,27 @@ namespace OASystem.Domain.Entities.Groups
         public DateTime LastOperatorDt { get; set; }
     }
 
+    public enum Enum_DelegationVisaPicType
+    {
+        [Description("护照首页")]
+        FirstPage,
+
+        [Description("批件")]
+        Documents,
+
+        [Description("免签证明")]
+        Exemption,
+
+        [Description("派遣函红头文件")]
+        Dispatch,
+
+        [Description("签证页")]
+        Visa,
+
+        [Description("发票")]
+        Invoice
+    }
+
     [SugarTable("Grp_VisaProgressCustomerPicture")]
     public class Grp_VisaProgressCustomerPicture : EntityBase
     {
@@ -176,6 +205,6 @@ namespace OASystem.Domain.Entities.Groups
         /// 5:发票
         /// </summary>
         [SugarColumn(IsNullable = false, ColumnDataType = "int")]
-        public int PicType { get; set; }
+        public Enum_DelegationVisaPicType PicType { get; set; }
     }
 }

+ 23 - 25
OASystem/OASystem.Domain/ViewModels/Groups/Grp_DelegationVisaView.cs

@@ -30,23 +30,40 @@ namespace OASystem.Domain.ViewModels.Groups
         public string CompletePNumber { get; set; } = "已完成0人";
     }
 
-    public class DelegationVisaPersonView
+    public class DelegationVisaProgressView
     {
         /// <summary>
         /// ID
         /// DeleClient.ID
         /// </summary>
-        public int PersonViewId { get; set; }
+        public int ProgressViewId { get; set; }
 
         //public int RowNumber { get; set; }
         public int DiId { get; set; }
-
+        public int CustomerId { get; set; }
         public string LastName { get; set; }
         public string FirstName { get; set; }
 
         public string Country { get; set; }
         public int StatusSign { get; set; }
-        public string StatusStr { get; set; }
+
+        private string statusstr = "未知";
+        public string StatusStr
+        {
+            get
+            {
+                switch (StatusSign) {
+                    case 0: statusstr= "未完成"; break;
+                    case 1: statusstr= "已完成";break;
+                    case 2: statusstr= "已忽略";break;
+                    default: statusstr= "未知";break;
+                }
+                return statusstr;
+            }
+            set {
+                this.statusstr = value;
+            }
+        }
         public DelegationVisaPicCountList PicCountList { get; set; }
     }
 
@@ -65,33 +82,14 @@ namespace OASystem.Domain.ViewModels.Groups
         }
     }
 
-    public enum Enum_DelegationVisaPicType
-    {
-        [Description("护照首页")]
-        FirstPage,
-
-        [Description("批件")]
-        Documents,
-
-        [Description("免签证明")]
-        Exemption,
-
-        [Description("派遣函红头文件")]
-        Dispatch,
-
-        [Description("签证页")]
-        Visa,
-
-        [Description("发票")]
-        Invoice
-    }
+    
 
     public class DelegationVisaVisitCountryView
     {
         public int CountryViewId { get; set; }
         public int PersonViewId { get; set; }
         public string PicName { get; set; }
-        public Enum_DelegationVisaPicType PicType { get; set; }
+        public Entities.Groups.Enum_DelegationVisaPicType PicType { get; set; }
         public string PicPath { get; set; }
     }
 

+ 83 - 9
OASystem/OASystem.Infrastructure/Repositories/Groups/DelegationVisaRepository.cs

@@ -1,4 +1,5 @@
-using OASystem.Domain.Dtos.Groups;
+using Aspose.Words.Lists;
+using OASystem.Domain.Dtos.Groups;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.ViewModels.Groups;
 using OASystem.Domain.ViewModels.Resource;
@@ -54,7 +55,7 @@ From DelegationInfo With(Nolock) {2}
             return rst;
         }
 
-        public List<DelegationVisaPersonView> GetDelegationPersonList(int diid)
+        public List<DelegationVisaProgressView> GetDelegationProgressList(int diid)
         {
             ChangeDataBase(DBEnum.OA2014DB);
 
@@ -64,27 +65,100 @@ Diid,
 LastName,
 [Name] as 'FirstName'
 From DeleClient With(Nolock) Where Diid = {0} And IsDel = 0 ", diid);
-            List<DelegationVisaPersonView> clientList = _sqlSugar.SqlQueryable<DelegationVisaPersonView>(sqlDeleClient).ToList();
+            List<DelegationVisaProgressView> clientList = _sqlSugar.SqlQueryable<DelegationVisaProgressView>(sqlDeleClient).ToList();
 
             string sqlDelegation = string.Format(@" Select * From DelegationInfo With(Nolock) Where Id = {0} ", diid);
             OA2021_DelegationInfo delegationInfo = _sqlSugar.SqlQueryable<OA2021_DelegationInfo>(sqlDelegation).First();
-            string countryName = delegationInfo.VisitCountry;
+            //string countryName = delegationInfo.VisitCountry;
+
 
+            #region 检查与配置
 
-            #region 配置
+            ChangeDataBase(DBEnum.OA2023DB);
 
+            string sqlCheck = string.Format(@" Select * From Grp_VisaProgressCustomer With(Nolock) Where DiId = {0} ", diid);
+            List<Grp_VisaProgressCustomer> listVisaPro = _sqlSugar.SqlQueryable<Grp_VisaProgressCustomer>(sqlCheck).ToList();
+            if (listVisaPro.Count < 1)
+            {
+                //listVisaPro = new List<Grp_VisaProgressCustomer>(initVisitCountry(diid, delegationInfo));
+                initVisitCountry(diid, delegationInfo);
+            }
             #endregion
 
-            return null;
+            string sqlView1 = string.Format(@" Select 
+Id as 'ProgressViewId',
+DiId,
+CustomerId,
+LastName,
+FirstName,
+Country,
+WorkStatus as 'StatusSign'
+From Grp_VisaProgressCustomer With(Nolock) Where DiId = {0} And IsDel = 0 ", diid);
+
+            List<DelegationVisaProgressView> result = _sqlSugar.SqlQueryable<DelegationVisaProgressView>(sqlView1).ToList();
+
+            //查询各子项行数
+            foreach (var pro in result)
+            {
+                string sqlCheckCount = string.Format(@" Select PicType,Count(PicType) PicTypeCount 
+From Grp_VisaProgressCustomerPicture Where VisaProgressCustomerId = {0}
+Group by PicType Order By PicType ", pro.ProgressViewId);
+
+                List<dynamic> tempList = _sqlSugar.SqlQueryable<dynamic>(sqlCheckCount).ToList();
+                DelegationVisaPicCountList countList = new DelegationVisaPicCountList();
+
+                foreach (var item in tempList)
+                {
+                    int tempCount = item.PicTypeCount;
+                    switch (item.PicType)
+                    {
+                        case 0: countList.FirstPageCount = tempCount; break;
+                        case 1: countList.DocumentsCount = tempCount; break;
+                        case 2: countList.ExemptionCount = tempCount; break;
+                        case 3: countList.DispatchCount = tempCount; break;
+                        case 4: countList.VisaCount = tempCount; break;
+                        case 5: countList.InvoiceCount = tempCount; break;
+                        default:break;
+                    }
+                }
+                countList.totalCount();
+                pro.PicCountList = countList;
+            }
+
+            return result;
         }
 
-        public int initVisitCountry(int diid)
+        public void initVisitCountry(int diid, OA2021_DelegationInfo delegationInfo)
         {
+            ChangeDataBase(DBEnum.OA2014DB);
+            string sqlDeleClient = String.Format(@" Select * From DeleClient With(Nolock) Where diid = {0} ", diid);
+            List<OA2021_DeleClient> listDeleClient = _sqlSugar.SqlQueryable<OA2021_DeleClient>(sqlDeleClient).ToList();
             ChangeDataBase(DBEnum.OA2023DB);
 
-            string sqlCheck = string.Format(@" Select * From  ");
+            List<Grp_VisaProgressCustomer> listVisaCustomer = new List<Grp_VisaProgressCustomer>();
+
+            string countryName = delegationInfo.VisitCountry;
+            string[] countrys = Regex.Replace(countryName, @"[,,|-、\s丶]", ",", RegexOptions.IgnoreCase).Split(',');
+
+
+            foreach (var client in listDeleClient)
+            {
+                foreach (string cname in countrys)
+                {
+                    Grp_VisaProgressCustomer item = new Grp_VisaProgressCustomer();
+                    item.Country = cname;
+                    item.CreateUserId = -3;
+                    item.CustomerId = 0;
+                    item.DiId = diid;
+                    item.FirstName = client.Name;
+                    item.LastName = client.LastName;
+                    item.WorkStatus = 0;
+                    listVisaCustomer.Add(item);
+                }
+            }
 
-            return 0;
+            _sqlSugar.Insertable(listVisaCustomer).UseParameter().ExecuteCommand();
+            //return listVisaCustomer;
         }
 
     }