diff --git a/Lib/Castle.DynamicProxy2.dll b/Lib/Castle.DynamicProxy2.dll
new file mode 100644
index 0000000000000000000000000000000000000000..45f372cff51f849349f0a33ff136fcf72e2b50e2
Binary files /dev/null and b/Lib/Castle.DynamicProxy2.dll differ
diff --git a/Lib/Seasky.SFP.PDFInterface.dll b/Lib/Seasky.SFP.PDFInterface.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b4f236e62a5d7f78b5e717b89a642ff45fa17274
Binary files /dev/null and b/Lib/Seasky.SFP.PDFInterface.dll differ
diff --git a/Lib/iSignature_PDF_API.dll b/Lib/iSignature_PDF_API.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ff26871fc48dc1bac103759f1a68e3a127c725f4
Binary files /dev/null and b/Lib/iSignature_PDF_API.dll differ
diff --git a/QPFiling/App_Start/WebApiConfig.cs b/QPFiling/App_Start/WebApiConfig.cs
index 2602729c835a60679a5dd0035e76fb9adae30b6a..a449ceb24579570c469203f474530a8f4ae4921e 100644
--- a/QPFiling/App_Start/WebApiConfig.cs
+++ b/QPFiling/App_Start/WebApiConfig.cs
@@ -26,7 +26,7 @@ namespace QPFiling
 #if DEBUG
 			config.Routes.MapHttpRoute(
 				name: "DefaultApi",
-				routeTemplate: "api/{controller}/{action}/{id}",
+				routeTemplate: "{controller}/{action}/{id}",
 				defaults: new { id = RouteParameter.Optional }
 			);
 #endif
diff --git a/QPFiling/Controllers/UserController.cs b/QPFiling/Controllers/UserController.cs
index fbb2bf0eaaa3a14ddd50b56600b07a06f997a9d8..1cd0f78c919a26606c31ce1a566a0fd3c2ec906d 100644
--- a/QPFiling/Controllers/UserController.cs
+++ b/QPFiling/Controllers/UserController.cs
@@ -21,7 +21,27 @@ namespace QPFiling.Controllers
 	{
 		IUserService UserService = ApplicationContext.Current.UnityContainer.Resolve<IUserService>();
 
+        [HttpPost]
+        [RequestLogin]
+        public BaseResultModel<UserOutputModel> EditPwd(UserInputModel model)
+        {
+            if (model == null)
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鍙傛暟涓嶈兘涓虹┖" };
+            }
+            return UserService.EditPwd(model);
+        }
 
+        [HttpPost]
+        [RequestLogin]
+        public BaseResultModel<UserOutputModel> ResetPwd(UserInputModel model)
+        {
+            if (model == null)
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鍙傛暟涓嶈兘涓虹┖" };
+            }
+            return UserService.ResetPwd(model);
+        }
 
 		[HttpPost]
 		[RequestLogin]
@@ -180,5 +200,6 @@ namespace QPFiling.Controllers
 			var result = this.UserService.DeleteUser(model);
 			return result;
 		}
+
 	}
 }
\ No newline at end of file
diff --git a/SeaSky.QPFiling.BLL/User/IUserService.cs b/SeaSky.QPFiling.BLL/User/IUserService.cs
index 536f5b372a89d19cce5897a99a76327dbcc08a87..05d6cc1eb55fb0d75c77c727db033c61277596cb 100644
--- a/SeaSky.QPFiling.BLL/User/IUserService.cs
+++ b/SeaSky.QPFiling.BLL/User/IUserService.cs
@@ -58,5 +58,19 @@ namespace SeaSky.QPFiling.BLL.User
 		/// <param name="model">瀵嗙爜 璐﹀彿</param>
 		/// <returns></returns>
 		BaseResultModel<UserOutputModel> Login(UserInputModel model);
+
+        /// <summary>
+        /// 淇敼瀵嗙爜
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        BaseResultModel<UserOutputModel> EditPwd(UserInputModel model);
+
+        /// <summary>
+        /// 閲嶇疆瀵嗙爜
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        BaseResultModel<UserOutputModel> ResetPwd(UserInputModel model);
 	}
 }
diff --git a/SeaSky.QPFiling.BLL/User/UserService.cs b/SeaSky.QPFiling.BLL/User/UserService.cs
index 083a1afcacb4f685812c2f438fb7ecffc73478fc..3ad3e81b204facd73f49dbd53a6af36db572fd57 100644
--- a/SeaSky.QPFiling.BLL/User/UserService.cs
+++ b/SeaSky.QPFiling.BLL/User/UserService.cs
@@ -19,610 +19,679 @@ using System.Threading.Tasks;
 
 namespace SeaSky.QPFiling.BLL.User
 {
-	public class UserService : IUserService
-	{
-		[Dependency]
-		public IUserRepository UserRepository { get; set; }
+    public class UserService : IUserService
+    {
+        [Dependency]
+        public IUserRepository UserRepository { get; set; }
 
-		[Dependency]
-		public IRoleRepository RoleRepository { get; set; }
+        [Dependency]
+        public IRoleRepository RoleRepository { get; set; }
 
-		[Dependency]
-		public ICompanyRepository CompanyRepository { get; set; }
+        [Dependency]
+        public ICompanyRepository CompanyRepository { get; set; }
 
-		[Dependency]
-		public IMenuRepository MenuRepository { get; set; }
-		/// <summary>
-		/// 鏍规嵁宸ュ彿锛屽鍚嶆ā绯婃煡璇�   椤圭洰  鐢ㄦ埛id鏌ヨ
-		/// </summary>
-		/// <param name="model">鐢ㄦ埛淇℃伅</param>
-		/// <returns></returns>
-		public BaseResultModel<PageModel<UserOutputModel>> ListUser(UserInputModel model)
-		{
-			try
-			{
-				var result = new SuccessResultModel<PageModel<UserOutputModel>>();
-				result.Data = new PageModel<UserOutputModel>();
-				using (HandiConnection conn = UserRepository.CreateConnection())
-				{
-					if (model.PageSize == null || model.PageNO == null)
-					{
-						model.PageNO = 1;
-						model.PageSize = int.MaxValue;
-					}
-					result.Data.ListData = this.UserRepository.SelectUser(conn, model).ToList();
-					result.Data.DataCount = this.UserRepository.CountUser(conn, model);
-					result.Data.PageNO = model.PageNO;
-					result.Data.PageSize = model.PageSize;
-					result.Data.TotalPages = (result.Data.DataCount + model.PageSize.Value - 1) / model.PageSize.Value;
-				}
-				return result;
-			}
-			catch (Exception e)
-			{
-				var result = new ErrorResultModel<PageModel<UserOutputModel>>();
-				LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ListUser", "", "", "鏌ヨ鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇�.", e);
-				result.ErrorMessage = "鏌ヨ鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇�.";
-				return result;
-			}
-		}
+        [Dependency]
+        public IMenuRepository MenuRepository { get; set; }
+        /// <summary>
+        /// 鏍规嵁宸ュ彿锛屽鍚嶆ā绯婃煡璇�   椤圭洰  鐢ㄦ埛id鏌ヨ
+        /// </summary>
+        /// <param name="model">鐢ㄦ埛淇℃伅</param>
+        /// <returns></returns>
+        public BaseResultModel<PageModel<UserOutputModel>> ListUser(UserInputModel model)
+        {
+            try
+            {
+                var result = new SuccessResultModel<PageModel<UserOutputModel>>();
+                result.Data = new PageModel<UserOutputModel>();
+                using (HandiConnection conn = UserRepository.CreateConnection())
+                {
+                    if (model.PageSize == null || model.PageNO == null)
+                    {
+                        model.PageNO = 1;
+                        model.PageSize = int.MaxValue;
+                    }
+                    result.Data.ListData = this.UserRepository.SelectUser(conn, model).ToList();
+                    result.Data.DataCount = this.UserRepository.CountUser(conn, model);
+                    result.Data.PageNO = model.PageNO;
+                    result.Data.PageSize = model.PageSize;
+                    result.Data.TotalPages = (result.Data.DataCount + model.PageSize.Value - 1) / model.PageSize.Value;
+                }
+                return result;
+            }
+            catch (Exception e)
+            {
+                var result = new ErrorResultModel<PageModel<UserOutputModel>>();
+                LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ListUser", "", "", "鏌ヨ鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇�.", e);
+                result.ErrorMessage = "鏌ヨ鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇�.";
+                return result;
+            }
+        }
 
-		/// <summary>
-		/// 鐧诲綍
-		/// </summary>
-		/// <param name="model">瀵嗙爜 璐﹀彿</param>
-		/// <returns></returns>
-		public BaseResultModel<UserOutputModel> Login(UserInputModel model)
-		{
-			var error = new ErrorResultModel<UserOutputModel>();
-			var testsms = new RecordInfoInputModel();
-			if (model.UserName == null || model.PassWord == null)
-			{
-				error.ErrorMessage = "璐﹀彿銆佸瘑鐮佷笉鑳戒负绌�.";
-				return error;
-			}
-			try
-			{
-				var result = new SuccessResultModel<UserOutputModel>();
-				using (HandiConnection conn = UserRepository.CreateConnection())
-				{
-					model.PageNO = 1;
-					model.PageSize = this.UserRepository.CountUser(conn, model);
-					var user = this.UserRepository.SelectUser(conn, model).Where(t => t.UserName == model.UserName);
-					if (user == null || user.Count() != 1)
-					{
-						error.ErrorMessage = "璐﹀彿涓嶅瓨鍦�.";
-						return error;
-					}
-					result.Data = user.FirstOrDefault();
-					string passWord = this.EncryptPassword(model.PassWord.Trim());
-					if (passWord != result.Data.PassWord)
-					{
-						error.ErrorMessage = "瀵嗙爜閿欒";
-						return error;
-					}
-					return result;
-				}
-			}
-			catch (Exception e)
-			{
-				var result = new ErrorResultModel<UserOutputModel>();
-				LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "Login", "", "", "鐢ㄦ埛鐧诲綍鏃跺彂鐢熼敊璇�.", e);
-				result.ErrorMessage = "鐢ㄦ埛鐧诲綍鏃跺彂鐢熼敊璇�.";
-				return result;
-			}
-		}
+        /// <summary>
+        /// 鐧诲綍
+        /// </summary>
+        /// <param name="model">瀵嗙爜 璐﹀彿</param>
+        /// <returns></returns>
+        public BaseResultModel<UserOutputModel> Login(UserInputModel model)
+        {
+            var error = new ErrorResultModel<UserOutputModel>();
+            var testsms = new RecordInfoInputModel();
+            if (model.UserName == null || model.PassWord == null)
+            {
+                error.ErrorMessage = "璐﹀彿銆佸瘑鐮佷笉鑳戒负绌�.";
+                return error;
+            }
+            try
+            {
+                var result = new SuccessResultModel<UserOutputModel>();
+                using (HandiConnection conn = UserRepository.CreateConnection())
+                {
+                    model.PageNO = 1;
+                    model.PageSize = this.UserRepository.CountUser(conn, model);
+                    var user = this.UserRepository.SelectUser(conn, model).Where(t => t.UserName == model.UserName);
+                    if (user == null || user.Count() != 1)
+                    {
+                        error.ErrorMessage = "璐﹀彿涓嶅瓨鍦�.";
+                        return error;
+                    }
+                    result.Data = user.FirstOrDefault();
+                    string passWord = this.EncryptPassword(model.PassWord.Trim());
+                    if (passWord != result.Data.PassWord)
+                    {
+                        error.ErrorMessage = "瀵嗙爜閿欒";
+                        return error;
+                    }
+                    return result;
+                }
+            }
+            catch (Exception e)
+            {
+                var result = new ErrorResultModel<UserOutputModel>();
+                LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "Login", "", "", "鐢ㄦ埛鐧诲綍鏃跺彂鐢熼敊璇�.", e);
+                result.ErrorMessage = "鐢ㄦ埛鐧诲綍鏃跺彂鐢熼敊璇�.";
+                return result;
+            }
+        }
 
-		/// <summary>
-		/// 鏍规嵁鐢ㄦ埛id鑾峰彇璇ョ敤鎴蜂俊鎭�
-		/// </summary>
-		/// <param name="UserID">鐢ㄦ埛id</param>
-		/// <returns></returns>
-		public BaseResultModel<UserOutputModel> GetUser(Guid UserID)
-		{
-			try
-			{
-				var result = new SuccessResultModel<UserOutputModel>();
-				using (HandiConnection conn = UserRepository.CreateConnection())
-				{
-					var model = new UserInputModel();
-					model.UserID = UserID;
-					model.PageNO = 1;
-					model.PageSize = 1;
-					result.Data = this.UserRepository.SelectUser(conn, model).FirstOrDefault();
-					if (result.Data == null)
-					{
-						var error = new ErrorResultModel<UserOutputModel>();
-						error.ErrorMessage = "鑾峰彇璇ョ敤鎴蜂俊鎭け璐�.";
-						return error;
-					}
-				}
-				return result;
-			}
-			catch (Exception e)
-			{
-				var result = new ErrorResultModel<UserOutputModel>();
-				LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "GetUser", "", "", "鑾峰彇璇ョ敤鎴蜂俊鎭椂鍙戠敓閿欒.", e);
-				result.ErrorMessage = "鑾峰彇璇ョ敤鎴蜂俊鎭椂鍙戠敓閿欒.";
-				return result;
-			}
-		}
+        /// <summary>
+        /// 鏍规嵁鐢ㄦ埛id鑾峰彇璇ョ敤鎴蜂俊鎭�
+        /// </summary>
+        /// <param name="UserID">鐢ㄦ埛id</param>
+        /// <returns></returns>
+        public BaseResultModel<UserOutputModel> GetUser(Guid UserID)
+        {
+            try
+            {
+                var result = new SuccessResultModel<UserOutputModel>();
+                using (HandiConnection conn = UserRepository.CreateConnection())
+                {
+                    var model = new UserInputModel();
+                    model.UserID = UserID;
+                    model.PageNO = 1;
+                    model.PageSize = 1;
+                    result.Data = this.UserRepository.SelectUser(conn, model).FirstOrDefault();
+                    if (result.Data == null)
+                    {
+                        var error = new ErrorResultModel<UserOutputModel>();
+                        error.ErrorMessage = "鑾峰彇璇ョ敤鎴蜂俊鎭け璐�.";
+                        return error;
+                    }
+                }
+                return result;
+            }
+            catch (Exception e)
+            {
+                var result = new ErrorResultModel<UserOutputModel>();
+                LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "GetUser", "", "", "鑾峰彇璇ョ敤鎴蜂俊鎭椂鍙戠敓閿欒.", e);
+                result.ErrorMessage = "鑾峰彇璇ョ敤鎴蜂俊鎭椂鍙戠敓閿欒.";
+                return result;
+            }
+        }
 
-		/// <summary>
-		/// 鍒涘缓鐢ㄦ埛
-		/// </summary>
-		/// <param name="model">鐢ㄦ埛淇℃伅</param>
-		/// <returns></returns>
-		public BaseResultModel<UserOutputModel> CreateUser(UserInputModel model)
-		{
-			var error = new ErrorResultModel<UserOutputModel>();
-			string ver = this.ParamVerification(model);
-			if (!string.IsNullOrWhiteSpace(ver))
-			{
-				error.ErrorMessage = ver;
-				return error;
-			}
-			try
-			{
-				var result = new SuccessResultModel<UserOutputModel>();
-				using (HandiConnection conn = UserRepository.CreateTransaction())
-				{
-					//楠岃瘉宸ュ彿鏄惁鍞竴
-					var verUserInput = new UserInputModel();
-					verUserInput.UserName = model.UserName;
-					verUserInput.PageNO = 1;
-					verUserInput.PageSize = int.MaxValue;
-					var veruserName = this.ListUser(verUserInput);
-					if (veruserName.IsSuccess)
-					{
-						var userl = veruserName.Data.ListData.Where(t => t.UserName == model.UserName.Replace(" ", "")).ToList();
-						if (userl.Count > 0)
-						{
-							error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�";
-							return error;
-						}
-					}
+        /// <summary>
+        /// 鍒涘缓鐢ㄦ埛
+        /// </summary>
+        /// <param name="model">鐢ㄦ埛淇℃伅</param>
+        /// <returns></returns>
+        public BaseResultModel<UserOutputModel> CreateUser(UserInputModel model)
+        {
+            var error = new ErrorResultModel<UserOutputModel>();
+            string ver = this.ParamVerification(model);
+            if (!string.IsNullOrWhiteSpace(ver))
+            {
+                error.ErrorMessage = ver;
+                return error;
+            }
+            try
+            {
+                var result = new SuccessResultModel<UserOutputModel>();
+                using (HandiConnection conn = UserRepository.CreateTransaction())
+                {
+                    //楠岃瘉宸ュ彿鏄惁鍞竴
+                    var verUserInput = new UserInputModel();
+                    verUserInput.UserName = model.UserName;
+                    verUserInput.PageNO = 1;
+                    verUserInput.PageSize = int.MaxValue;
+                    var veruserName = this.ListUser(verUserInput);
+                    if (veruserName.IsSuccess)
+                    {
+                        var userl = veruserName.Data.ListData.Where(t => t.UserName == model.UserName.Replace(" ", "")).ToList();
+                        if (userl.Count > 0)
+                        {
+                            error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�";
+                            return error;
+                        }
+                    }
 
-					string oldPassword = "111111";
-					string password = this.EncryptPassword(oldPassword);
-					//娣诲姞榛樿淇℃伅
-					model.PassWord = password;
-					model.UserID = Guid.NewGuid();
-					model.UserCompanyID = Guid.NewGuid();
-					model.UserRoleID = Guid.NewGuid();
-					model.GmtCreateDate = DateTime.Now;
-					model.GmtCreateUser = ApplicationContext.Current.UserName;
-					model.GmtModifiedDate = DateTime.Now;
-					model.GmtModifiedUser = ApplicationContext.Current.UserName;
-					//娣诲姞鐢ㄦ埛鍩烘湰淇℃伅
-					result.Data = this.UserRepository.InsertUser(conn, model);
-					if (result.Data == null)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "鍒涘缓鐢ㄦ埛澶辫触.";
-						return error;
-					}
-					//娣诲姞鐢ㄦ埛瑙掕壊
-					var userrole = this.UserRepository.InsertUserRole(conn, model);
-					if (userrole == null)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "鍒涘缓鐢ㄦ埛瑙掕壊澶辫触.";
-						return error;
-					}
-					//娣诲姞鐢ㄦ埛鍗曚綅
-					var usercompany = this.UserRepository.InsertUserCompany(conn, model);
-					if (usercompany == null)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "鍒涘缓鐢ㄦ埛閮ㄩ棬澶辫触.";
-						return error;
-					}
-					conn.TransCommit();
-					return result;
-				}
+                    string oldPassword = "111111";
+                    string password = this.EncryptPassword(oldPassword);
+                    //娣诲姞榛樿淇℃伅
+                    model.PassWord = password;
+                    model.UserID = Guid.NewGuid();
+                    model.UserCompanyID = Guid.NewGuid();
+                    model.UserRoleID = Guid.NewGuid();
+                    model.GmtCreateDate = DateTime.Now;
+                    model.GmtCreateUser = ApplicationContext.Current.UserName;
+                    model.GmtModifiedDate = DateTime.Now;
+                    model.GmtModifiedUser = ApplicationContext.Current.UserName;
+                    //娣诲姞鐢ㄦ埛鍩烘湰淇℃伅
+                    result.Data = this.UserRepository.InsertUser(conn, model);
+                    if (result.Data == null)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "鍒涘缓鐢ㄦ埛澶辫触.";
+                        return error;
+                    }
+                    //娣诲姞鐢ㄦ埛瑙掕壊
+                    var userrole = this.UserRepository.InsertUserRole(conn, model);
+                    if (userrole == null)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "鍒涘缓鐢ㄦ埛瑙掕壊澶辫触.";
+                        return error;
+                    }
+                    //娣诲姞鐢ㄦ埛鍗曚綅
+                    var usercompany = this.UserRepository.InsertUserCompany(conn, model);
+                    if (usercompany == null)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "鍒涘缓鐢ㄦ埛閮ㄩ棬澶辫触.";
+                        return error;
+                    }
+                    conn.TransCommit();
+                    return result;
+                }
 
-			}
-			catch (Exception e)
-			{
-				LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "CreateUser", "", "", "鍒涘缓鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e);
-				error.ErrorMessage = "鍒涘缓鐢ㄦ埛鏃跺彂鐢熼敊璇�.";
-				return error;
-			}
-		}
+            }
+            catch (Exception e)
+            {
+                LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "CreateUser", "", "", "鍒涘缓鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e);
+                error.ErrorMessage = "鍒涘缓鐢ㄦ埛鏃跺彂鐢熼敊璇�.";
+                return error;
+            }
+        }
 
-		/// <summary>
-		/// 淇敼鐢ㄦ埛
-		/// </summary>
-		/// <param name="model"></param>
-		/// <returns></returns>
-		public BaseResultModel<UserOutputModel> ModifyUser(UserInputModel model)
-		{
-			var error = new ErrorResultModel<UserOutputModel>();
-			string ver = this.ParamVerification(model);
-			if (!string.IsNullOrWhiteSpace(ver))
-			{
-				error.ErrorMessage = ver;
-				return error;
-			}
-			try
-			{
-				var result = new SuccessResultModel<UserOutputModel>();
-				using (HandiConnection conn = UserRepository.CreateTransaction())
-				{
-					//楠岃瘉宸ュ彿鏄惁鍞竴
-					var verUserInput = new UserInputModel();
-					verUserInput.UserName = model.UserName;
-					verUserInput.PageNO = 1;
-					verUserInput.PageSize = int.MaxValue;
-					var veruserName = this.ListUser(verUserInput);
-					if (veruserName.IsSuccess)
-					{
-						var userl = veruserName.Data.ListData.Where(t => t.UserName == model.UserName.Replace(" ", "")).ToList();
-						if (userl.Count > 1)
-						{
-							error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�";
-							return error;
-						}
-						if (userl.Count == 1)
-						{
-							//楠岃瘉閲嶅鐨勫伐鍙锋槸涓嶆槸鑷繁
-							userl = userl.Where(t => t.UserID == model.UserID).ToList();
-							if (userl.Count != 1)
-							{
-								error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�";
-								return error;
-							}
-						}
-					}
-					//鍒ゆ柇淇敼鐨勭敤鎴疯鑹诧紙鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁镐慨鏀逛负闈炵鐞嗗憳锛�
-					int roleCount = this.UserRepository.AdminCount(conn);
-					if (roleCount == 1)
-					{
-						//鏈€鍚庝竴涓鐞嗗憳楠岃瘉鏄笉鏄嚜宸�
-						var getuser = new UserInputModel();
-						getuser.UserID = model.UserID;
-						getuser.PageNO = 1;
-						int pagesize = this.UserRepository.CountUser(conn, getuser);
-						getuser.PageSize = pagesize;
-						var userinfo = this.UserRepository.SelectUser(conn, getuser).FirstOrDefault();
-						if (userinfo.Rolename == "绠$悊鍛�")
-						{
-							if (model.RoleID != userinfo.RoleID)
-							{
-								error.ErrorMessage = "璇ョ敤鎴锋槸鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁镐慨鏀�.";
-								return error;
-							}
-						}
-					}
-					model.GmtModifiedUser = ApplicationContext.Current.UserName;
-					model.GmtModifiedDate = DateTime.Now;
-					//淇敼鐢ㄦ埛淇℃伅
-					result.Data = this.UserRepository.UpdateUser(conn, model);
-					if (result.Data == null)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "淇敼鐢ㄦ埛淇℃伅澶辫触.";
-						return error;
-					}
-					//淇敼鐢ㄦ埛鍗曚綅淇℃伅
-					var userCompany = this.UserRepository.UpdateUserCompany(conn, model);
-					if (userCompany == null)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "淇敼鐢ㄦ埛鍗曚綅澶辫触.";
-						return error;
-					}
-					//淇敼鐢ㄦ埛瑙掕壊
-					var userRole = this.UserRepository.UpdateUserRole(conn, model);
-					if (userRole == null)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "淇敼鐢ㄦ埛瑙掕壊澶辫触.";
-						return error;
-					}
-					conn.TransCommit();
-					return result;
-				}
-			}
-			catch (Exception e)
-			{
-				LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ModifyUser", "", "", "淇敼鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e);
-				error.ErrorMessage = "淇敼鐢ㄦ埛鏃跺彂鐢熼敊璇�.";
-				return error;
-			}
-		}
+        /// <summary>
+        /// 淇敼鐢ㄦ埛
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public BaseResultModel<UserOutputModel> ModifyUser(UserInputModel model)
+        {
+            var error = new ErrorResultModel<UserOutputModel>();
+            string ver = this.ParamVerification(model);
+            if (!string.IsNullOrWhiteSpace(ver))
+            {
+                error.ErrorMessage = ver;
+                return error;
+            }
+            try
+            {
+                var result = new SuccessResultModel<UserOutputModel>();
+                using (HandiConnection conn = UserRepository.CreateTransaction())
+                {
+                    //楠岃瘉宸ュ彿鏄惁鍞竴
+                    var verUserInput = new UserInputModel();
+                    verUserInput.UserName = model.UserName;
+                    verUserInput.PageNO = 1;
+                    verUserInput.PageSize = int.MaxValue;
+                    var veruserName = this.ListUser(verUserInput);
+                    if (veruserName.IsSuccess)
+                    {
+                        var userl = veruserName.Data.ListData.Where(t => t.UserName == model.UserName.Replace(" ", "")).ToList();
+                        if (userl.Count > 1)
+                        {
+                            error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�";
+                            return error;
+                        }
+                        if (userl.Count == 1)
+                        {
+                            //楠岃瘉閲嶅鐨勫伐鍙锋槸涓嶆槸鑷繁
+                            userl = userl.Where(t => t.UserID == model.UserID).ToList();
+                            if (userl.Count != 1)
+                            {
+                                error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�";
+                                return error;
+                            }
+                        }
+                    }
+                    //鍒ゆ柇淇敼鐨勭敤鎴疯鑹诧紙鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁镐慨鏀逛负闈炵鐞嗗憳锛�
+                    int roleCount = this.UserRepository.AdminCount(conn);
+                    if (roleCount == 1)
+                    {
+                        //鏈€鍚庝竴涓鐞嗗憳楠岃瘉鏄笉鏄嚜宸�
+                        var getuser = new UserInputModel();
+                        getuser.UserID = model.UserID;
+                        getuser.PageNO = 1;
+                        int pagesize = this.UserRepository.CountUser(conn, getuser);
+                        getuser.PageSize = pagesize;
+                        var userinfo = this.UserRepository.SelectUser(conn, getuser).FirstOrDefault();
+                        if (userinfo.Rolename == "绠$悊鍛�")
+                        {
+                            if (model.RoleID != userinfo.RoleID)
+                            {
+                                error.ErrorMessage = "璇ョ敤鎴锋槸鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁镐慨鏀�.";
+                                return error;
+                            }
+                        }
+                    }
+                    model.GmtModifiedUser = ApplicationContext.Current.UserName;
+                    model.GmtModifiedDate = DateTime.Now;
+                    //淇敼鐢ㄦ埛淇℃伅
+                    result.Data = this.UserRepository.UpdateUser(conn, model);
+                    if (result.Data == null)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "淇敼鐢ㄦ埛淇℃伅澶辫触.";
+                        return error;
+                    }
+                    //淇敼鐢ㄦ埛鍗曚綅淇℃伅
+                    var userCompany = this.UserRepository.UpdateUserCompany(conn, model);
+                    if (userCompany == null)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "淇敼鐢ㄦ埛鍗曚綅澶辫触.";
+                        return error;
+                    }
+                    //淇敼鐢ㄦ埛瑙掕壊
+                    var userRole = this.UserRepository.UpdateUserRole(conn, model);
+                    if (userRole == null)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "淇敼鐢ㄦ埛瑙掕壊澶辫触.";
+                        return error;
+                    }
+                    conn.TransCommit();
+                    return result;
+                }
+            }
+            catch (Exception e)
+            {
+                LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ModifyUser", "", "", "淇敼鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e);
+                error.ErrorMessage = "淇敼鐢ㄦ埛鏃跺彂鐢熼敊璇�.";
+                return error;
+            }
+        }
 
-		/// <summary>
-		/// 鎵归噺瀵煎叆鐢ㄦ埛锛堝伐鍙�  濮撳悕   閮ㄩ棬锛堢紪鍙凤級   瑙掕壊   锛�
-		/// </summary>
-		/// <param name="models"></param>
-		/// <returns></returns>
-		public BaseResultModel<List<UserOutputModel>> ImportUser(List<UserInputModel> models)
-		{
-			//楠岃瘉鍙傛暟  
-			var error = new ErrorResultModel<List<UserOutputModel>>();
-			error.Data = new List<UserOutputModel>();
-			var nulllist = new List<UserInputModel>();
-			int len = models.Count();
-			for (int i = 0; i < len; i++)
-			{
-				int c=i;
-				//楠岃瘉excel涓棤閲嶅宸ュ彿
-				if (models[i].UserName == "" && models[i].RealName == "" && models[i].CompanyCode == "" && models[i].RoleName == "")
-				{
-					nulllist.Add(models[i]);
-					continue;
-				}
+        /// <summary>
+        /// 鎵归噺瀵煎叆鐢ㄦ埛锛堝伐鍙�  濮撳悕   閮ㄩ棬锛堢紪鍙凤級   瑙掕壊   锛�
+        /// </summary>
+        /// <param name="models"></param>
+        /// <returns></returns>
+        public BaseResultModel<List<UserOutputModel>> ImportUser(List<UserInputModel> models)
+        {
+            //楠岃瘉鍙傛暟  
+            var error = new ErrorResultModel<List<UserOutputModel>>();
+            error.Data = new List<UserOutputModel>();
+            var nulllist = new List<UserInputModel>();
+            int len = models.Count();
+            for (int i = 0; i < len; i++)
+            {
+                int c = i;
+                //楠岃瘉excel涓棤閲嶅宸ュ彿
+                if (models[i].UserName == "" && models[i].RealName == "" && models[i].CompanyCode == "" && models[i].RoleName == "")
+                {
+                    nulllist.Add(models[i]);
+                    continue;
+                }
 
-				int userNameCount = models.Where(a => a.UserName == models[i].UserName.Trim()).Count();
-				if (userNameCount > 1)
-				{
-					error.ErrorCode = "01";
-					error.ErrorMessage = "Excel涓瓨鍦ㄩ噸澶嶅伐鍙凤紝閲嶅宸ュ彿涓�" + models[i].UserName;
-					return error;
-				}
+                int userNameCount = models.Where(a => a.UserName == models[i].UserName.Trim()).Count();
+                if (userNameCount > 1)
+                {
+                    error.ErrorCode = "01";
+                    error.ErrorMessage = "Excel涓瓨鍦ㄩ噸澶嶅伐鍙凤紝閲嶅宸ュ彿涓�" + models[i].UserName;
+                    return error;
+                }
 
-			}
-			if (nulllist != null || nulllist.Count() > 0)
-			{
-				foreach (var item in nulllist)
-				{
-					models.Remove(item);
-				}
-			}
-			try
-			{
-				//楠岃瘉鍗曚綅缂栫爜锛岃鑹叉槸鍚﹀瓨鍦紙鍗曚綅缂栧彿鏄ā绯婃煡璇級
-				using (HandiConnection conn = UserRepository.CreateTransaction())
-				{
-					//鑾峰彇鍏ㄩ儴瑙掕壊
-					var allroleinput = new RoleInputModel();
-					allroleinput.PageNO = 1;
-					allroleinput.PageSize = int.MaxValue;
-					var allRole = this.RoleRepository.SelectRole(conn, allroleinput);
-					for (int i = 0; i < models.Count(); i++)
-					{
+            }
+            if (nulllist != null || nulllist.Count() > 0)
+            {
+                foreach (var item in nulllist)
+                {
+                    models.Remove(item);
+                }
+            }
+            try
+            {
+                //楠岃瘉鍗曚綅缂栫爜锛岃鑹叉槸鍚﹀瓨鍦紙鍗曚綅缂栧彿鏄ā绯婃煡璇級
+                using (HandiConnection conn = UserRepository.CreateTransaction())
+                {
+                    //鑾峰彇鍏ㄩ儴瑙掕壊
+                    var allroleinput = new RoleInputModel();
+                    allroleinput.PageNO = 1;
+                    allroleinput.PageSize = int.MaxValue;
+                    var allRole = this.RoleRepository.SelectRole(conn, allroleinput);
+                    for (int i = 0; i < models.Count(); i++)
+                    {
 
-						//楠岃瘉鍙傛暟涓嶄负绌�
-						if (models[i].UserName == "" && models[i].RealName == "" && models[i].CompanyCode == "" && models[i].RoleName == "")
-						{
-							error.Data.Add(this.UserInput2Output(models[i], "宸ュ彿銆佸鍚嶃€佸崟浣嶇紪鍙枫€佽鑹插悕蹇呭~."));
-							continue;
-						}
-						//楠岃瘉宸ュ彿鏄惁鍞竴
-						var verUserInput = new UserInputModel();
-						verUserInput.UserName = models[i].UserName;
-						verUserInput.PageNO = 1;
-						verUserInput.PageSize = int.MaxValue;
-						var veruserName = this.ListUser(verUserInput);
-						if (veruserName.IsSuccess)
-						{
-							var userl = veruserName.Data.ListData.Where(t => t.UserName == models[i].UserName.Replace(" ", "")).ToList();
-							if (userl.Count > 0)
-							{
-								error.Data.Add(this.UserInput2Output(models[i], "宸ュ彿閲嶅."));
-								continue;
-							}
-						}
+                        //楠岃瘉鍙傛暟涓嶄负绌�
+                        if (models[i].UserName == "" && models[i].RealName == "" && models[i].CompanyCode == "" && models[i].RoleName == "")
+                        {
+                            error.Data.Add(this.UserInput2Output(models[i], "宸ュ彿銆佸鍚嶃€佸崟浣嶇紪鍙枫€佽鑹插悕蹇呭~."));
+                            continue;
+                        }
+                        //楠岃瘉宸ュ彿鏄惁鍞竴
+                        var verUserInput = new UserInputModel();
+                        verUserInput.UserName = models[i].UserName;
+                        verUserInput.PageNO = 1;
+                        verUserInput.PageSize = int.MaxValue;
+                        var veruserName = this.ListUser(verUserInput);
+                        if (veruserName.IsSuccess)
+                        {
+                            var userl = veruserName.Data.ListData.Where(t => t.UserName == models[i].UserName.Replace(" ", "")).ToList();
+                            if (userl.Count > 0)
+                            {
+                                error.Data.Add(this.UserInput2Output(models[i], "宸ュ彿閲嶅."));
+                                continue;
+                            }
+                        }
 
-						//楠岃瘉鍗曚綅缂栧彿瀛樺湪锛堟牴鎹崟浣嶇紪鍙锋煡璇负妯$硦鏌ヨ锛�
-						var company = new CompanyInputModel();
-						company.CompanyCode = models[i].CompanyCode;
-						company.PageSize = int.MaxValue;
-						company.PageNO = 1;
-						var listCompany = this.CompanyRepository.SelectCompany(conn, company).Where(t => t.CompanyCode == models[i].CompanyCode);
-						if (listCompany.Count() < 1 || listCompany == null)
-						{
-							error.Data.Add(this.UserInput2Output(models[i], "涓嶅瓨鍦ㄨ鍗曚綅缂栧彿."));
-							continue;
-						}
-						//楠岃瘉瑙掕壊瀛樺湪
-						var role = new RoleInputModel();
-						role.RoleName = models[i].RoleName;
-						var listRole = this.RoleRepository.SelectRole(conn, role);
-					
-						if (listRole.Count < 1 || listRole == null)
-						{
-							error.Data.Add(this.UserInput2Output(models[i], "涓嶅瓨鍦ㄨ瑙掕壊."));
-							break;
-						}
-						error.Data.Add(this.UserInput2Output(models[i], ""));
-					}
-					var listError = error.Data.Where(t => t.Errormessage != "");
-					if (listError.Count() > 0)
-					{
-						return error;
-					}
+                        //楠岃瘉鍗曚綅缂栧彿瀛樺湪锛堟牴鎹崟浣嶇紪鍙锋煡璇负妯$硦鏌ヨ锛�
+                        var company = new CompanyInputModel();
+                        company.CompanyCode = models[i].CompanyCode;
+                        company.PageSize = int.MaxValue;
+                        company.PageNO = 1;
+                        var listCompany = this.CompanyRepository.SelectCompany(conn, company).Where(t => t.CompanyCode == models[i].CompanyCode);
+                        if (listCompany.Count() < 1 || listCompany == null)
+                        {
+                            error.Data.Add(this.UserInput2Output(models[i], "涓嶅瓨鍦ㄨ鍗曚綅缂栧彿."));
+                            continue;
+                        }
+                        //楠岃瘉瑙掕壊瀛樺湪
+                        var role = new RoleInputModel();
+                        role.RoleName = models[i].RoleName;
+                        var listRole = this.RoleRepository.SelectRole(conn, role);
 
+                        if (listRole.Count < 1 || listRole == null)
+                        {
+                            error.Data.Add(this.UserInput2Output(models[i], "涓嶅瓨鍦ㄨ瑙掕壊."));
+                            break;
+                        }
+                        error.Data.Add(this.UserInput2Output(models[i], ""));
+                    }
+                    var listError = error.Data.Where(t => t.Errormessage != "");
+                    if (listError.Count() > 0)
+                    {
+                        return error;
+                    }
 
-					//瀵煎叆
-					var result = new SuccessResultModel<List<UserOutputModel>>();
-				
-					foreach (var item in models)
-					{
-					
-						string oldPassword = "111111";
-						string password = this.EncryptPassword(oldPassword);
-						//娣诲姞榛樿淇℃伅
-						item.PassWord = password;
-						item.UserID = Guid.NewGuid();
-						item.UserCompanyID = Guid.NewGuid();
-						item.UserRoleID = Guid.NewGuid();
-						item.GmtCreateDate = DateTime.Now;
-						item.GmtCreateUser = ApplicationContext.Current.UserName;
-						item.GmtModifiedDate = DateTime.Now;
-						item.GmtModifiedUser = ApplicationContext.Current.UserName;
-						item.UserPhone = item.UserPhone == null ? "" : item.UserPhone;
-						item.Address = item.Address == null ? "" : item.Address;
-						//娣诲姞鐢ㄦ埛鍩烘湰淇℃伅
-						var user = this.UserRepository.InsertUser(conn, item);
-						if (user == null)
-						{
-							conn.TransRollback();
-							error.ErrorMessage = "鍒涘缓鐢ㄦ埛澶辫触.";
-							return error;
-						}
-						//娣诲姞鐢ㄦ埛瑙掕壊
-						item.RoleID = allRole.Where(t => t.RoleName == item.RoleName).FirstOrDefault().RoleID;
-						var userrole = this.UserRepository.InsertUserRole(conn, item);
-						if (userrole == null)
-						{
-							conn.TransRollback();
-							error.ErrorMessage = "鍒涘缓鐢ㄦ埛瑙掕壊澶辫触.";
-							return error;
-						}
-						//娣诲姞鐢ㄦ埛鍗曚綅
-						var scom = new CompanyInputModel();
-						scom.CompanyCode = item.CompanyCode;
-						scom.PageSize = int.MaxValue;
-						scom.PageNO = 1;
-						item.CompanyID = this.CompanyRepository.SelectCompany(conn, scom).Where(t => t.CompanyCode == item.CompanyCode).FirstOrDefault().CompanyID;
-						var usercompany = this.UserRepository.InsertUserCompany(conn, item);
-						if (usercompany == null)
-						{
-							conn.TransRollback();
-							error.ErrorMessage = "鍒涘缓鐢ㄦ埛閮ㄩ棬澶辫触.";
-							return error;
-						}
-					}
-					conn.TransCommit();
-					return result;
-				}
-			}
-			catch (Exception e)
-			{
-				LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ImportUser", "", "", "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e);
-				error.ErrorCode = "01";
-				error.ErrorMessage = "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.";
-				return error;
-			}
-		}
 
-		/// <summary>
-		/// 鍒犻櫎鐢ㄦ埛
-		/// </summary>
-		/// <param name="model"></param>
-		/// <returns></returns>
-		public BaseResultModel<int> DeleteUser(UserInputModel model)
-		{
-			var error = new ErrorResultModel<int>();
-			if (model.UserID == Guid.Empty)
-			{
-				error.ErrorMessage = "鐢ㄦ埛ID涓嶈兘涓虹┖.";
-				return error;
-			}
-			try
-			{
-				var result = new SuccessResultModel<int>();
-				using (HandiConnection conn = UserRepository.CreateTransaction())
-				{
-					//鍒ゆ柇鏈€鍚庝竴涓鐞嗗憳
-					if (model.RoleName == "绠$悊鍛�")
-					{
-						var adminCount = UserRepository.AdminCount(conn);
-						if (adminCount == 1)
-						{
-							error.ErrorMessage = "璇ョ敤鎴蜂负鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁稿垹闄�.";
-							return error;
-						}
-					}
-					//鍒ゆ柇鏈夋棤涓氬姟鍙戠敓
-					var userFilingCount = this.UserRepository.UserFilingCount(conn, model.UserID);
-					if (userFilingCount > 0)
-					{
-						error.ErrorMessage = "璇ョ敤鎴峰~鎶ヨ繃澶囨鐢宠涓嶅厑璁稿垹闄�.";
-						return error;
-					}
-					//鍒犻櫎鍗曚綅鎺堟潈
-					var delCompany = this.UserRepository.DeleteUserCompany(conn, model.UserCompanyID);
-					if (delCompany < 1)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "鍒犻櫎鐢ㄦ埛鍏宠仈鍗曚綅鏃跺け璐�.";
-						return error;
-					}
-					//鍒犻櫎瑙掕壊鎺堟潈
-					var delRole = this.UserRepository.DeleteUserRole(conn, model.UserRoleID);
-					if (delRole < 1)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "鍒犻櫎鐢ㄦ埛鍏宠仈瑙掕壊鏃跺け璐�.";
-						return error;
-					}
-					//鍒犻櫎鐢ㄦ埛
-					var delUser = this.UserRepository.DeleteUser(conn, model.UserID);
-					if (delUser < 1)
-					{
-						conn.TransRollback();
-						error.ErrorMessage = "鍒犻櫎鐢ㄦ埛淇℃伅澶辫触.";
-					}
-					conn.TransCommit();
-					return result;
-				}
-			}
-			catch (Exception e)
-			{
-				LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "DeleteUser", "", "", "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e);
-				error.ErrorCode = "";
-				error.ErrorMessage = "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.";
-				return error;
-			}
-		}
+                    //瀵煎叆
+                    var result = new SuccessResultModel<List<UserOutputModel>>();
 
-		#region  
-		/// <summary>
-		/// 鍙傛暟闈炵┖楠岃瘉
-		/// </summary>
-		/// <param name="model">鐢ㄦ埛淇℃伅</param>
-		/// <returns></returns>
-		private string ParamVerification(UserInputModel model)
-		{
-			model.UserEmail = model.UserEmail == null ? "" : model.UserEmail;
-			model.Address = model.Address == null ? "" : model.Address;
-			string error = "";
-			if (string.IsNullOrWhiteSpace(model.UserName) || string.IsNullOrEmpty(model.RealName) || string.IsNullOrEmpty(model.UserPhone))
-			{
-				error = "宸ュ彿濮撳悕蹇呭~.";
-			}
-			if (model.RoleID == Guid.Empty || model.CompanyID == Guid.Empty)
-			{
-				error = "鍗曚綅銆佽鑹插繀閫�.";
-			}
-			return error;
-		}
+                    foreach (var item in models)
+                    {
 
+                        string oldPassword = "111111";
+                        string password = this.EncryptPassword(oldPassword);
+                        //娣诲姞榛樿淇℃伅
+                        item.PassWord = password;
+                        item.UserID = Guid.NewGuid();
+                        item.UserCompanyID = Guid.NewGuid();
+                        item.UserRoleID = Guid.NewGuid();
+                        item.GmtCreateDate = DateTime.Now;
+                        item.GmtCreateUser = ApplicationContext.Current.UserName;
+                        item.GmtModifiedDate = DateTime.Now;
+                        item.GmtModifiedUser = ApplicationContext.Current.UserName;
+                        item.UserPhone = item.UserPhone == null ? "" : item.UserPhone;
+                        item.Address = item.Address == null ? "" : item.Address;
+                        //娣诲姞鐢ㄦ埛鍩烘湰淇℃伅
+                        var user = this.UserRepository.InsertUser(conn, item);
+                        if (user == null)
+                        {
+                            conn.TransRollback();
+                            error.ErrorMessage = "鍒涘缓鐢ㄦ埛澶辫触.";
+                            return error;
+                        }
+                        //娣诲姞鐢ㄦ埛瑙掕壊
+                        item.RoleID = allRole.Where(t => t.RoleName == item.RoleName).FirstOrDefault().RoleID;
+                        var userrole = this.UserRepository.InsertUserRole(conn, item);
+                        if (userrole == null)
+                        {
+                            conn.TransRollback();
+                            error.ErrorMessage = "鍒涘缓鐢ㄦ埛瑙掕壊澶辫触.";
+                            return error;
+                        }
+                        //娣诲姞鐢ㄦ埛鍗曚綅
+                        var scom = new CompanyInputModel();
+                        scom.CompanyCode = item.CompanyCode;
+                        scom.PageSize = int.MaxValue;
+                        scom.PageNO = 1;
+                        item.CompanyID = this.CompanyRepository.SelectCompany(conn, scom).Where(t => t.CompanyCode == item.CompanyCode).FirstOrDefault().CompanyID;
+                        var usercompany = this.UserRepository.InsertUserCompany(conn, item);
+                        if (usercompany == null)
+                        {
+                            conn.TransRollback();
+                            error.ErrorMessage = "鍒涘缓鐢ㄦ埛閮ㄩ棬澶辫触.";
+                            return error;
+                        }
+                    }
+                    conn.TransCommit();
+                    return result;
+                }
+            }
+            catch (Exception e)
+            {
+                LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ImportUser", "", "", "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e);
+                error.ErrorCode = "01";
+                error.ErrorMessage = "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.";
+                return error;
+            }
+        }
 
-		/// <summary>
-		/// 瀵嗙爜鍔犲瘑
-		/// </summary>
-		/// <param name="passwordAndSalt">鍘熷瘑鐮�</param>
-		/// <returns>鍔犲瘑鍚庣殑瀵嗙爜</returns>
-		private string EncryptPassword(string passwordAndSalt)
-		{
-			MD5 md5 = MD5.Create();
-			byte[] passwordAndSaltBytes = System.Text.Encoding.UTF8.GetBytes(passwordAndSalt);
-			byte[] hs = md5.ComputeHash(passwordAndSaltBytes);
-			StringBuilder sb = new StringBuilder();
-			foreach (byte b in hs)
-			{
-				sb.Append(b.ToString("x2"));
-			}
-			return sb.ToString();
-		}
+        /// <summary>
+        /// 鍒犻櫎鐢ㄦ埛
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public BaseResultModel<int> DeleteUser(UserInputModel model)
+        {
+            var error = new ErrorResultModel<int>();
+            if (model.UserID == Guid.Empty)
+            {
+                error.ErrorMessage = "鐢ㄦ埛ID涓嶈兘涓虹┖.";
+                return error;
+            }
+            try
+            {
+                var result = new SuccessResultModel<int>();
+                using (HandiConnection conn = UserRepository.CreateTransaction())
+                {
+                    //鍒ゆ柇鏈€鍚庝竴涓鐞嗗憳
+                    if (model.RoleName == "绠$悊鍛�")
+                    {
+                        var adminCount = UserRepository.AdminCount(conn);
+                        if (adminCount == 1)
+                        {
+                            error.ErrorMessage = "璇ョ敤鎴蜂负鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁稿垹闄�.";
+                            return error;
+                        }
+                    }
+                    //鍒ゆ柇鏈夋棤涓氬姟鍙戠敓
+                    var userFilingCount = this.UserRepository.UserFilingCount(conn, model.UserID);
+                    if (userFilingCount > 0)
+                    {
+                        error.ErrorMessage = "璇ョ敤鎴峰~鎶ヨ繃澶囨鐢宠涓嶅厑璁稿垹闄�.";
+                        return error;
+                    }
+                    //鍒犻櫎鍗曚綅鎺堟潈
+                    var delCompany = this.UserRepository.DeleteUserCompany(conn, model.UserCompanyID);
+                    if (delCompany < 1)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "鍒犻櫎鐢ㄦ埛鍏宠仈鍗曚綅鏃跺け璐�.";
+                        return error;
+                    }
+                    //鍒犻櫎瑙掕壊鎺堟潈
+                    var delRole = this.UserRepository.DeleteUserRole(conn, model.UserRoleID);
+                    if (delRole < 1)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "鍒犻櫎鐢ㄦ埛鍏宠仈瑙掕壊鏃跺け璐�.";
+                        return error;
+                    }
+                    //鍒犻櫎鐢ㄦ埛
+                    var delUser = this.UserRepository.DeleteUser(conn, model.UserID);
+                    if (delUser < 1)
+                    {
+                        conn.TransRollback();
+                        error.ErrorMessage = "鍒犻櫎鐢ㄦ埛淇℃伅澶辫触.";
+                    }
+                    conn.TransCommit();
+                    return result;
+                }
+            }
+            catch (Exception e)
+            {
+                LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "DeleteUser", "", "", "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e);
+                error.ErrorCode = "";
+                error.ErrorMessage = "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.";
+                return error;
+            }
+        }
 
-		private UserOutputModel UserInput2Output(UserInputModel model, string error)
-		{
-			var outModel = new UserOutputModel();
-			outModel.UserName = model.UserName;
-			outModel.RealName = model.RealName;
-			outModel.CompanyCode = model.CompanyCode;
-			outModel.Rolename = model.RoleName;
-			outModel.Address = model.Address == null ? "" : model.Address;
-			outModel.UserEmail = model.UserEmail == null ? "" : model.UserEmail;
-			outModel.Errormessage = error;
-			return outModel;
-		}
-		#endregion
-	}
+        #region  
+        /// <summary>
+        /// 鍙傛暟闈炵┖楠岃瘉
+        /// </summary>
+        /// <param name="model">鐢ㄦ埛淇℃伅</param>
+        /// <returns></returns>
+        private string ParamVerification(UserInputModel model)
+        {
+            model.UserEmail = model.UserEmail == null ? "" : model.UserEmail;
+            model.Address = model.Address == null ? "" : model.Address;
+            string error = "";
+            if (string.IsNullOrWhiteSpace(model.UserName) || string.IsNullOrEmpty(model.RealName) || string.IsNullOrEmpty(model.UserPhone))
+            {
+                error = "宸ュ彿濮撳悕蹇呭~.";
+            }
+            if (model.RoleID == Guid.Empty || model.CompanyID == Guid.Empty)
+            {
+                error = "鍗曚綅銆佽鑹插繀閫�.";
+            }
+            return error;
+        }
+
+
+        /// <summary>
+        /// 瀵嗙爜鍔犲瘑
+        /// </summary>
+        /// <param name="passwordAndSalt">鍘熷瘑鐮�</param>
+        /// <returns>鍔犲瘑鍚庣殑瀵嗙爜</returns>
+        private string EncryptPassword(string passwordAndSalt)
+        {
+            MD5 md5 = MD5.Create();
+            byte[] passwordAndSaltBytes = System.Text.Encoding.UTF8.GetBytes(passwordAndSalt);
+            byte[] hs = md5.ComputeHash(passwordAndSaltBytes);
+            StringBuilder sb = new StringBuilder();
+            foreach (byte b in hs)
+            {
+                sb.Append(b.ToString("x2"));
+            }
+            return sb.ToString();
+        }
+
+        private UserOutputModel UserInput2Output(UserInputModel model, string error)
+        {
+            var outModel = new UserOutputModel();
+            outModel.UserName = model.UserName;
+            outModel.RealName = model.RealName;
+            outModel.CompanyCode = model.CompanyCode;
+            outModel.Rolename = model.RoleName;
+            outModel.Address = model.Address == null ? "" : model.Address;
+            outModel.UserEmail = model.UserEmail == null ? "" : model.UserEmail;
+            outModel.Errormessage = error;
+            return outModel;
+        }
+
+        public BaseResultModel<UserOutputModel> ResetPwd(UserInputModel model)
+        {
+            if (model.UserID == null || model.UserID == Guid.Empty)
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage="UserID涓嶈兘涓虹┖"};
+            }
+
+            try
+            {
+                SuccessResultModel<UserOutputModel> result = new SuccessResultModel<UserOutputModel>();
+                using (HandiConnection conn = UserRepository.CreateConnection())
+                {
+                    UserOutputModel dataModel = UserRepository.ResetPwd(conn, model);
+                    result.Data = dataModel;
+                }
+                return result;
+            }
+            catch (Exception e)
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鏈嶅姟鍣ㄥ嚭閿欎簡"};
+            }
+        }
+
+        public BaseResultModel<UserOutputModel> EditPwd(UserInputModel model)
+        {
+            if (string.IsNullOrWhiteSpace(model.PassWord))
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鍘熷瘑鐮佷笉鑳戒负绌�"};
+            }
+            if (string.IsNullOrWhiteSpace(model.NewPwd))
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鏂板瘑鐮佷笉鑳戒负绌�" };
+            }
+            if (string.IsNullOrWhiteSpace(model.RepeatPwd))
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "閲嶅瀵嗙爜涓嶈兘涓虹┖" };
+            }
+            if (model.RepeatPwd != model.NewPwd)
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓€鑷�" };
+            }
+
+            model.PassWord = EncryptPassword(model.PassWord);
+            model.NewPwd = EncryptPassword(model.NewPwd);
+            model.RepeatPwd = EncryptPassword(model.RepeatPwd);
+            model.UserID = ApplicationContext.Current.UserID;
+
+            try
+            {
+                SuccessResultModel<UserOutputModel> result = new SuccessResultModel<UserOutputModel>();
+                using (HandiConnection conn = UserRepository.CreateConnection())
+                {
+                    UserOutputModel temp = UserRepository.SelectWithModel(conn,new UserOutputModel() { UserID = ApplicationContext.Current.UserID});
+                    if (temp.PassWord != model.PassWord)
+                    {
+                        return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鍘熷瘑鐮侀敊璇�"};
+                    }
+
+                    UserOutputModel dataModel = UserRepository.EditPwd(conn,model);
+                    result.Data = dataModel;
+                }
+                return result;
+            }
+            catch (Exception e)
+            {
+                return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鏈嶅姟鍣ㄥ嚭閿欏暒" };
+            }
+        }
+        #endregion
+    }
 }
diff --git a/SeaSky.QPFiling.DAL/User/IUserRepository.cs b/SeaSky.QPFiling.DAL/User/IUserRepository.cs
index e8759072815dbfd673bdb0b661511e660dddf87c..3ad93f3daecde0ea1bac0b5c123f2a7ee37c86e4 100644
--- a/SeaSky.QPFiling.DAL/User/IUserRepository.cs
+++ b/SeaSky.QPFiling.DAL/User/IUserRepository.cs
@@ -58,6 +58,22 @@ namespace SeaSky.QPFiling.DAL.User
 		/// <returns>鎴愬姛杩斿洖淇敼淇℃伅   澶辫触杩斿洖null</returns>
 		UserOutputModel UpdateUser(HandiConnection conn, UserInputModel model);
 
+        /// <summary>
+        /// 淇敼瀵嗙爜
+        /// </summary>
+        /// <param name="conn"></param>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        UserOutputModel EditPwd(HandiConnection conn, UserInputModel model);
+
+        /// <summary>
+        /// 閲嶇疆瀵嗙爜
+        /// </summary>
+        /// <param name="conn"></param>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        UserOutputModel ResetPwd(HandiConnection conn,UserInputModel model);
+
 		/// <summary>
 		/// 鏍规嵁鐢ㄦ埛id鏌ヨ璇ョ敤鎴峰妗堟潯鏁�
 		/// </summary>
diff --git a/SeaSky.QPFiling.DAL/User/UserRepository.cs b/SeaSky.QPFiling.DAL/User/UserRepository.cs
index f8384ca63b7cac2716aa6a5a34968f1111d1c28d..ca0636241cef68c85715adf5d3945667278f2b30 100644
--- a/SeaSky.QPFiling.DAL/User/UserRepository.cs
+++ b/SeaSky.QPFiling.DAL/User/UserRepository.cs
@@ -283,13 +283,45 @@ WHERE [UserID] = @UserID
 			}
 		}
 
-		/// <summary>
-		/// 鏇存柊鐢ㄦ埛
-		/// </summary>
-		/// <param name="conn"></param>
-		/// <param name="model">鐢ㄦ埛淇℃伅</param>
-		/// <returns>鎴愬姛杩斿洖淇敼淇℃伅   澶辫触杩斿洖null</returns>
-		public UserOutputModel UpdateUser(HandiConnection conn, UserInputModel model)
+        /// <summary>
+        /// 淇敼瀵嗙爜
+        /// </summary>
+        /// <param name="conn"></param>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public UserOutputModel EditPwd(HandiConnection conn, UserInputModel model)
+        {
+            string sql = @"update [tb_sys_user] set PassWord = @pwd where UserID = @id";
+            List<SqlParameter> param = new List<SqlParameter>() { new SqlParameter("pwd", model.NewPwd), new SqlParameter("id", model.UserID) };
+            using (var reader = DataHelper.ExecuteReader(conn, sql, param.ToArray()))
+            {
+                return reader.Read() ? this.GenerateEntity2Save(reader) : null;
+            }
+        }
+
+        /// <summary>
+        /// 閲嶇疆瀵嗙爜
+        /// </summary>
+        /// <param name="conn"></param>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public UserOutputModel ResetPwd(HandiConnection conn, UserInputModel model)
+        {
+            string sql = @"update [tb_sys_user] set PassWord = '96e79218965eb72c92a549dd5a330112' where UserID = @id";
+            List<SqlParameter> param = new List<SqlParameter>() {new SqlParameter("id", model.UserID) };
+            using (var reader = DataHelper.ExecuteReader(conn, sql, param.ToArray()))
+            {
+                return reader.Read() ? this.GenerateEntity2Save(reader) : null;
+            }
+        }
+
+        /// <summary>
+        /// 鏇存柊鐢ㄦ埛
+        /// </summary>
+        /// <param name="conn"></param>
+        /// <param name="model">鐢ㄦ埛淇℃伅</param>
+        /// <returns>鎴愬姛杩斿洖淇敼淇℃伅   澶辫触杩斿洖null</returns>
+        public UserOutputModel UpdateUser(HandiConnection conn, UserInputModel model)
 		{
 
 			string sqlText = @"
diff --git a/SeaSky.QPFiling.Model/User/UserInputModel.cs b/SeaSky.QPFiling.Model/User/UserInputModel.cs
index 9a3ce52ad223c68912b38519ab530a01fab92b3c..82203c4db2e92a79eb2b9afa2249ca70a5050510 100644
--- a/SeaSky.QPFiling.Model/User/UserInputModel.cs
+++ b/SeaSky.QPFiling.Model/User/UserInputModel.cs
@@ -14,5 +14,8 @@ namespace SeaSky.QPFiling.Model.User
 		public Guid UserRoleID { get; set; }
 		public string RoleName { get; set; }
 		public string CompanyCode { get; set; }
+
+        public string RepeatPwd { get; set; }
+        public string NewPwd { get; set; }
 	}
 }
diff --git a/SeaSky.QPFiling.Model/User/UserModel.cs b/SeaSky.QPFiling.Model/User/UserModel.cs
index 4b78ca9fe835e634a14892b0391a352a82cee84b..7f7b708df3895ac7d0388e05a20b307916c98de5 100644
--- a/SeaSky.QPFiling.Model/User/UserModel.cs
+++ b/SeaSky.QPFiling.Model/User/UserModel.cs
@@ -6,7 +6,7 @@ using System.Data;
 
 namespace SeaSky.QPFiling.Model.User
 {
-	[DBTableInfo("tb_User")]
+	[DBTableInfo("tb_sys_user")]
 	[Serializable]
 	public class UserModel : BasePageModel
 	{