diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/ErpEntity/ErpOrgDept.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/ErpEntity/ErpOrgDept.cs
new file mode 100644
index 00000000..0bcb7484
--- /dev/null
+++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/ErpEntity/ErpOrgDept.cs
@@ -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; }
+ ///
+ /// 修改时间
+ ///
+ public string MODIFIEDTIME { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
index 356f8607..b884365e 100644
--- a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
@@ -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(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;
}
+ ///
+ /// 同步部门
+ ///
+ ///
+ [HttpGet]
+ [AllowAnonymous]
+ public async Task SyncDept()
+ {
+ string msg = "";
+ try
+ {
+ int editCount = 0;
+ var erpdb = _db.AsTenant().GetConnection("erpdb");
+ List list = await erpdb.Queryable().ToListAsync();
+ List erpExtendFields = await _db.Queryable().Where(x=>x.table_name=="base_organize").ToListAsync();
+ List insertDepts = new List();
+ List insertExtendFields = new List();
+
+ 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()
+ .SetColumns(x => x.EnCode == erpOrgDept.CODE)
+ .SetColumns(x => x.FullName == erpOrgDept.NAME)
+ .Where(x => x.Id == erpExtendField.table_id)
+ .ExecuteCommandAsync();
+
+ await _db.Updateable()
+ .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;
+ }
+
///
/// 同步用户