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; + } + /// /// 同步用户