表格翻译
parent
d03aa27f9e
commit
52515f3dfe
|
@ -16,6 +16,7 @@ using Newtonsoft.Json.Linq;
|
|||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Domain.Share.Management;
|
||||
using System.Text.Json.Nodes;
|
||||
using IRaCIS.Application.Contracts;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
|
@ -235,7 +236,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
|
||||
|
||||
var listIdentification = auditDatas.Select(x => x.Identification).ToList();
|
||||
var listIdentification = auditDatas.Select(x => x.Identification).Distinct().ToList();
|
||||
foreach (var item in auditDatas)
|
||||
{
|
||||
Dictionary<string, object> jsonDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(item.JsonStr);
|
||||
|
@ -703,12 +704,16 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
//DictionaryCode='' and EnumType='Dictionary' 是审核状态
|
||||
var list = await (from u in _frontAuditConfigRepository.Where(x => identificationList.Contains(x.Identification))
|
||||
join p in _frontAuditConfigRepository.Where(x => x.DictionaryCode!=null &&x.DictionaryCode!=string.Empty && x.EnumType == "Dictionary" && x.IsEnable) on u.Id equals p.ParentId
|
||||
join p in _frontAuditConfigRepository.Where(x => (x.DictionaryCode!=string.Empty && x.EnumType == "Dictionary" )||(x.DataType=="Table") && x.IsEnable) on u.Id equals p.ParentId
|
||||
select new
|
||||
{
|
||||
//前端展示类型
|
||||
//DataType=p.DataType,
|
||||
DataType=p.DataType,
|
||||
TableConfigJsonStr= p.TableConfigJsonStr,
|
||||
Key = p.Code,
|
||||
Code = p.DictionaryCode,
|
||||
Type = p.DictionaryType
|
||||
|
@ -721,22 +726,14 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
list.Add(new
|
||||
{
|
||||
//DataType="",
|
||||
DataType = string.Empty,
|
||||
TableConfigJsonStr = string.Empty,
|
||||
Key = "AuditState",
|
||||
Code = trialtype == TrialQCProcess.SingleAudit ? "AuditStatePE" : "AuditStateRC",
|
||||
Type = "Code",
|
||||
});
|
||||
}); ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
list = list.GroupBy(x => new { x.Key }, (key, lst) => new
|
||||
{
|
||||
Key = key.Key,
|
||||
Code = lst.Max(x => x.Code),
|
||||
Type = lst.Max(x => x.Type),
|
||||
}).ToList();
|
||||
|
||||
var jsonDataDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(jsonStr);
|
||||
foreach (var item in list)
|
||||
|
@ -749,11 +746,51 @@ namespace IRaCIS.Core.Application.Service
|
|||
continue;
|
||||
}
|
||||
var value = jsonDataDic[item.Key];
|
||||
|
||||
//翻译的是数组
|
||||
if (value.GetType() == typeof(JArray))
|
||||
{
|
||||
JArray arrays = (JArray)value;
|
||||
|
||||
|
||||
if (item.DataType == "Table")
|
||||
{
|
||||
var tableConfigList= JsonConvert.DeserializeObject<List<TableConfig>>(item.TableConfigJsonStr) ?? new List<TableConfig>();
|
||||
|
||||
|
||||
|
||||
var translateInfoList = tableConfigList.Where(t => t.IsNeedTransalate).Select(t => new { t.ColumnValue, t.TranslateDictionaryName }).Distinct().ToList();
|
||||
|
||||
var dictionaryNameList = translateInfoList.Select(t => t.TranslateDictionaryName).Distinct().ToList();
|
||||
|
||||
|
||||
var searchList = await _dictionaryRepository.Where(t => dictionaryNameList.Contains(t.Parent.Code) && t.ParentId != null && t.IsEnable).ProjectTo<BasicDicSelect>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
//翻译的字典数据
|
||||
var translateDataList= searchList.GroupBy(t => t.ParentCode).ToDictionary(g => g.Key, g => g.OrderBy(t => t.ShowOrder).ToList());
|
||||
|
||||
List<JObject> jsonList = new List<JObject>();
|
||||
foreach (JToken arraysItem in arrays)
|
||||
{
|
||||
var jsonObject = JObject.Parse(arraysItem.ToString());
|
||||
|
||||
foreach (var translateInfo in translateInfoList)
|
||||
{
|
||||
//Json 解析后 true 变为了True
|
||||
jsonObject[translateInfo.ColumnValue] = translateDataList[translateInfo.TranslateDictionaryName].Where(t => t.Code.ToLower() == jsonObject[translateInfo.ColumnValue].ToString().ToLower()).Select(t => t.ValueCN).FirstOrDefault();
|
||||
}
|
||||
|
||||
jsonList.Add(jsonObject);
|
||||
|
||||
}
|
||||
|
||||
jsonDataDic[item.Key] = JToken.FromObject(jsonList);
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (item.Type.ToLower() == FrontAudit.Id.GetDescription().ToLower())
|
||||
{
|
||||
List<Guid> guids = new List<Guid>();
|
||||
|
@ -835,12 +872,15 @@ namespace IRaCIS.Core.Application.Service
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
//翻译的是单个字段
|
||||
else
|
||||
{
|
||||
//通过字典项的Guid 翻译
|
||||
if (item.Type.ToLower() == FrontAudit.Id.GetDescription().ToLower())
|
||||
{
|
||||
Guid guid = Guid.Parse(value.ToString());
|
||||
jsonDataDic[item.Key] = await _dictionaryRepository.Where(x => guid == x.Id).Select(x => x.ValueCN).FirstOrDefaultAsync();
|
||||
jsonDataDic[item.Key] = await _dictionaryRepository.Where(x => x.Id== guid ).Select(x => x.ValueCN).FirstOrDefaultAsync();
|
||||
}
|
||||
else if (item.Type.ToLower() == FrontAudit.ChildGroup.GetDescription().ToLower())
|
||||
{
|
||||
|
@ -849,6 +889,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
value = b.ValueCN
|
||||
}).Select(x => x.value).FirstOrDefaultAsync();
|
||||
}
|
||||
//通过字典项的code 翻译 枚举或者 bool
|
||||
else
|
||||
{
|
||||
jsonDataDic[item.Key] = await _dictionaryRepository.Where(x => x.Code == item.Code).Join(_dictionaryRepository.Where(x => x.Code == value.ToString()), a => a.Id, b => b.ParentId, (a, b) => new
|
||||
|
|
Loading…
Reference in New Issue