同步部门

This commit is contained in:
2024-09-19 13:41:52 +08:00
parent 4ec0362634
commit 9c098c0a6f
2 changed files with 120 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
using SqlSugar;
namespace Tnb.ProductionMgr.Entities.Entity.ErpEntity
{
[SugarTable("ERP_ORG_DEPT")]
public class ErpOrgDept
{
public string PK_ORG { get; set; }
public string ID { get; set; }
public string CODE { get; set; }
public string NAME { get; set; }
public string VID { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public string MODIFIEDTIME { get; set; }
}
}

View File

@@ -965,6 +965,18 @@ namespace Tnb.ProductionMgr
result += e.Message;
}
try
{
string response6 = HttpUtils.RequestGet($"{config.value}/api/production/time-work/sync-dept");
AuthResponse authResponse6 = JsonConvert.DeserializeObject<AuthResponse>(response6);
result += ","+authResponse6.data.ToString();
}
catch (Exception e)
{
Log.Error(e.Message,e);
result += e.Message;
}
Log.Information($"基础数据同步结果:{result}");
BasSyncRecord basSyncRecord = new BasSyncRecord()
{
@@ -1528,6 +1540,96 @@ namespace Tnb.ProductionMgr
return msg;
}
/// <summary>
/// 同步部门
/// </summary>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<String> SyncDept()
{
string msg = "";
try
{
int editCount = 0;
var erpdb = _db.AsTenant().GetConnection("erpdb");
List<ErpOrgDept> list = await erpdb.Queryable<ErpOrgDept>().ToListAsync();
List<ErpExtendField> erpExtendFields = await _db.Queryable<ErpExtendField>().Where(x=>x.table_name=="base_organize").ToListAsync();
List<OrganizeEntity> insertDepts = new List<OrganizeEntity>();
List<ErpExtendField> insertExtendFields = new List<ErpExtendField>();
await _db.Ado.BeginTranAsync();
foreach (ErpOrgDept erpOrgDept in list)
{
if (erpExtendFields.All(x => x.cdptid != erpOrgDept.ID))
{
string id = SnowflakeIdHelper.NextId();
OrganizeEntity organizeEntity = new OrganizeEntity()
{
Id = id,
ParentId = WmsWareHouseConst.AdministratorOrgId,
Category = "department",
EnCode = erpOrgDept.CODE,
FullName = erpOrgDept.NAME,
SortCode = 0,
EnabledMark = 1,
OrganizeIdTree = $"24755469898005,25193668006933,{id}",
CreatorTime = DateTime.Now
};
ErpExtendField erpExtendField = new ErpExtendField()
{
table_id = organizeEntity.Id,
table_name = "base_organize",
cdptid = erpOrgDept.ID,
cdptvid = erpOrgDept.VID,
create_time = DateTime.Now,
erp_modify_time = erpOrgDept.MODIFIEDTIME,
};
insertDepts.Add(organizeEntity);
insertExtendFields.Add(erpExtendField);
}
else
{
ErpExtendField erpExtendField = erpExtendFields.Find(x => x.cdptid == erpOrgDept.ID);
if (erpOrgDept.MODIFIEDTIME != erpExtendField.erp_modify_time)
{
int updateRow = await _db.Updateable<OrganizeEntity>()
.SetColumns(x => x.EnCode == erpOrgDept.CODE)
.SetColumns(x => x.FullName == erpOrgDept.NAME)
.Where(x => x.Id == erpExtendField.table_id)
.ExecuteCommandAsync();
await _db.Updateable<ErpExtendField>()
.SetColumns(x => x.erp_modify_time == erpOrgDept.MODIFIEDTIME)
.Where(x => x.table_id == erpExtendField.table_id)
.ExecuteCommandAsync();
editCount += updateRow;
}
}
}
await _db.Insertable(insertDepts).ExecuteCommandAsync();
await _db.Insertable(insertExtendFields).ExecuteCommandAsync();
await _db.Ado.CommitTranAsync();
msg = $"新增供应商{insertDepts.Count}条,修改供应商{editCount}条";
}
catch (Exception e)
{
Log.Error(e.Message, e);
msg = e.Message;
await _db.Ado.RollbackTranAsync();
throw Oops.Bah(e.Message);
}
return msg;
}
/// <summary>
/// 同步用户