using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using FireBirdUtil.SqlUtils;
|
|
using Forks.JsonRpc.Client;
|
|
using Forks.JsonRpc.Client.Data;
|
|
using Utils.Datas;
|
|
using WeighBusiness.BO;
|
|
using WeighBusiness.Utils;
|
|
using WeighBusiness.Utils.SqlUtils;
|
|
|
|
namespace WeighBusiness.BL
|
|
{
|
|
public static class WpfUserBL
|
|
{
|
|
public static List<WpfUser> GetAllLocalWpfUserRowVersion()
|
|
{
|
|
return LocalQueryUtil.GetAllLocalWpfUserRowVersion();
|
|
}
|
|
|
|
|
|
public static bool Save(WpfUser wpfUser)
|
|
{
|
|
return Insert(wpfUser);
|
|
}
|
|
|
|
private static bool Insert(WpfUser wpfUser)
|
|
{
|
|
string insertSql = InsertUtil.GetInsertSql(TableNames.ERP员工,
|
|
new string[] { "WpfUser_Name", "WpfUser_ID", "Employee_Code", "Department_ID", "Employee_ID", "RowVersion" },
|
|
new string[] { wpfUser.WpfUser_Name, wpfUser.WpfUser_ID.ToString(), wpfUser.Employee_Code, DataTypeUtil.ToStringNullIfNull(wpfUser.Department_ID), DataTypeUtil.ToStringNullIfNull(wpfUser.Employee_ID),wpfUser.RowVersion });
|
|
|
|
bool success;
|
|
using (var she = new SqlHelperEx()) {
|
|
she.CreateTransaction();
|
|
she.ExecuteNonQuery(insertSql, out success);
|
|
if (!success)
|
|
she.Rollback();
|
|
else
|
|
she.Commit();
|
|
}
|
|
return success;
|
|
}
|
|
|
|
//public static bool Update(WpfUser wpfUser, Func<SqlHelperEx, WpfUser, bool> OperateInTransaction = null)
|
|
//{
|
|
// var oldWpfUser = Load(wpfUser.ID);
|
|
// IList<string> needUpdateItems = GetNeedUpdateItems(wpfUser, oldWpfUser);
|
|
|
|
// if (needUpdateItems.Count == 0)
|
|
// return true;
|
|
|
|
// string updateSql = UpdateUtil.GetUpdateString(TableNames.ERP员工, "ID", wpfUser.ID.ToString(), needUpdateItems.ToArray());
|
|
|
|
// bool success = true;
|
|
// using (var she = new SqlHelperEx()) {
|
|
// she.CreateTransaction();
|
|
// she.ExecuteNonQuery(updateSql, out success);
|
|
// if (!success) {
|
|
// she.Rollback();
|
|
// return false;
|
|
// }
|
|
|
|
// if (OperateInTransaction != null) {
|
|
// success = OperateInTransaction(she, wpfUser);
|
|
// }
|
|
// if (success)
|
|
// she.Commit();
|
|
// else
|
|
// she.Rollback();
|
|
// }
|
|
// return success;
|
|
//}
|
|
|
|
public static WpfUser Load(long wpfUserID)
|
|
{
|
|
return LocalQueryUtil.GetLocalWpfUser(wpfUserID);
|
|
}
|
|
|
|
//private static IList<string> GetNeedUpdateItems(WpfUser wpfUser, WpfUser oldWpfUser)
|
|
//{
|
|
// IList<string> updateItems = new List<string>();
|
|
// if (wpfUser.WpfUser_Name != oldWpfUser.WpfUser_Name) {
|
|
// updateItems.Add("WpfUser_Name");
|
|
// updateItems.Add(wpfUser.WpfUser_Name);
|
|
// }
|
|
// if (wpfUser.Employee_Code != oldWpfUser.RowVersion) {
|
|
// updateItems.Add("RowVersion");
|
|
// updateItems.Add(DataTypeUtil.ToStringEmptyIfNull(employee.RowVersion));
|
|
// }
|
|
// return updateItems;
|
|
//}
|
|
|
|
public static void Delete(long ID)
|
|
{
|
|
var sql = SqlUtil.GetDeleteSql(TableNames.ERP员工, "where WpfUser_Id=" + ID.ToString());
|
|
using (var she = new SqlHelperEx()) {
|
|
bool success;
|
|
she.CreateTransaction();
|
|
she.ExecuteNonQuery(sql, out success);
|
|
if (!success)
|
|
she.Rollback();
|
|
else
|
|
she.Commit();
|
|
}
|
|
}
|
|
|
|
public static void Delete()
|
|
{
|
|
var sql = SqlUtil.GetDeleteSql(TableNames.ERP员工);
|
|
using (var she = new SqlHelperEx())
|
|
{
|
|
bool success;
|
|
she.CreateTransaction();
|
|
she.ExecuteNonQuery(sql, out success);
|
|
if (!success)
|
|
she.Rollback();
|
|
else
|
|
she.Commit();
|
|
}
|
|
}
|
|
|
|
public static WpfUser LoadByCode(string code){
|
|
return LocalQueryUtil.GetLocalEmployeeByCode(code);
|
|
}
|
|
|
|
public static string OnLineLoadNameByCode(string code)
|
|
{
|
|
string wpfUserMethod = "/MainSystem/B3_HaoYue/Rpcs/RpcFun/GetWpfUserInfoByIds";
|
|
var wpfUsers = RpcFacade.Call<IList<RpcObject>>(wpfUserMethod, null,code);
|
|
if (wpfUsers.Count() > 0) {
|
|
return wpfUsers[0].Get<string>("Name");
|
|
}
|
|
return string.Empty;
|
|
}
|
|
|
|
public static void SyncWpfUser()
|
|
{
|
|
var method = "/MainSystem/B3_HaoYue/Rpcs/RpcFun/GetWpfUserInfoRowVersion";
|
|
var userVersion = RpcFacade.Call<List<RpcObject>>(method);
|
|
var oldUserVersion = WpfUserBL.GetAllLocalWpfUserRowVersion();
|
|
|
|
var needInsertUserID = new List<long?>();
|
|
var needDeleteAndInsertUserID = new List<long?>();
|
|
if (userVersion.Count > 0)
|
|
{
|
|
if (oldUserVersion == null || oldUserVersion.Count() <= 0)
|
|
{
|
|
userVersion.ForEach(x => needInsertUserID.Add(x.Get<long>("ID")));
|
|
}
|
|
else
|
|
{
|
|
foreach (var user in userVersion)
|
|
{
|
|
var user_ID = user.Get<long>("ID");
|
|
var oldUser = oldUserVersion.Where(x => x.WpfUser_ID == user_ID);
|
|
if (oldUser != null && oldUser.Count() > 0 && oldUser.FirstOrDefault().RowVersion != user.Get<string>("RowVersion"))
|
|
{
|
|
needDeleteAndInsertUserID.Add(user_ID);
|
|
}
|
|
else if (oldUser == null || oldUser.Count() <= 0)
|
|
{
|
|
needInsertUserID.Add(user_ID);
|
|
}
|
|
}
|
|
|
|
foreach (var oldVersion in oldUserVersion)
|
|
{
|
|
if (!userVersion.Any(x => x.Get<long>("ID") == oldVersion.WpfUser_ID))
|
|
{
|
|
WpfUserBL.Delete(oldVersion.WpfUser_ID);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
WpfUserBL.Delete();
|
|
}
|
|
|
|
|
|
if (needDeleteAndInsertUserID.Count() > 0)
|
|
{
|
|
foreach (var userID in needDeleteAndInsertUserID)
|
|
{
|
|
WpfUserBL.Delete(userID.Value);
|
|
needInsertUserID.Add(userID);
|
|
}
|
|
}
|
|
|
|
if (needInsertUserID.Count > 0)
|
|
{
|
|
string userMethod = "/MainSystem/B3_HaoYue/Rpcs/RpcFun/GetWpfUserInfoByIds";
|
|
var users = RpcFacade.Call<IList<RpcObject>>(userMethod, needInsertUserID.ToArray(),null);
|
|
if (users.Count() > 0)
|
|
{
|
|
foreach (var wpfUser in users)
|
|
{
|
|
var user = new WpfUser();
|
|
user.WpfUser_ID = wpfUser.Get<long>("ID");
|
|
user.WpfUser_Name = wpfUser.Get<string>("Name");
|
|
user.Employee_Code = wpfUser.Get<string>("Code");
|
|
user.Department_ID = wpfUser.Get<long?>("Department_ID");
|
|
user.Employee_ID = wpfUser.Get<long?>("Employee_ID");
|
|
user.RowVersion = wpfUser.Get<string>("RowVersion");
|
|
WpfUserBL.Save(user);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|