1、解决在线开发明细最后一条删除不了的bug
2、解决在线开发明细新增时报主键重复的bug
This commit is contained in:
@@ -753,15 +753,15 @@ public class RunService : IRunService, ITransient
|
||||
dictionarySql.Clear();
|
||||
tableField.Add("ReturnIdentity", mainId);
|
||||
dictionarySql.Add("MainTableReturnIdentity", new List<Dictionary<string, object>>() { tableField });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//modify by zhoukeda 20230428 雪花id返回至传入参数中 开始
|
||||
if (templateInfo.FormModel.primaryKeyPolicy.Equals(1))
|
||||
{
|
||||
dataInput.data.Add("ReturnIdentity", mainId);
|
||||
}
|
||||
//modify by zhoukeda 20230428 雪花id返回至传入参数中 结束
|
||||
|
||||
|
||||
|
||||
// 拼接副表 sql
|
||||
if (templateInfo.AuxiliaryTableFieldsModelList.Any())
|
||||
@@ -823,7 +823,11 @@ public class RunService : IRunService, ITransient
|
||||
{
|
||||
if (child.Key.Equals("id") && child.Value.IsNotEmptyOrNull())
|
||||
{
|
||||
tableField[childPrimary.field] = child.Value;
|
||||
//modify by ly on 20230720 判断如果子表主键为空的把原主键值赋值给子表主键,直接复制会导致主键重复
|
||||
if(tableField[childPrimary.field].IsNull() || tableField[childPrimary.field].ToString().IsNullOrEmpty())
|
||||
{
|
||||
tableField[childPrimary.field] = child.Value;
|
||||
}
|
||||
}
|
||||
else if (child.Key.IsNotEmptyOrNull() && child.Value.IsNotEmptyOrNull() && child.Value.ToString() != "[]")
|
||||
{
|
||||
@@ -986,7 +990,7 @@ public class RunService : IRunService, ITransient
|
||||
|
||||
// 查找到该控件数据
|
||||
List<Dictionary<string, object>>? model = allDataMap[item].ToObject<List<Dictionary<string, object>>>();
|
||||
if (model != null && model.Count > 0)
|
||||
if (model != null && model.Count >= 0) //modify by ly on 20230720 将Count>0改为>=0,否则最后一条明细数据删除不掉
|
||||
{
|
||||
// 利用key去找模板
|
||||
FieldsModel? fieldsModel = templateInfo.FieldsModelList.Find(f => f.__vModel__ == item);
|
||||
@@ -1199,7 +1203,7 @@ public class RunService : IRunService, ITransient
|
||||
var oldTInfo = new TemplateParsingBase(oldFEntity.PropertyJson, oldFEntity.TableJson, (int)oldFEntity.FormType); // 旧模板
|
||||
var newTInfo = new TemplateParsingBase(newFEntity.PropertyJson, newFEntity.TableJson, (int)newFEntity.FormType); // 新模板
|
||||
|
||||
if(oldFEntity.FormType.Equals(1) || newFEntity.FormType.Equals(1))
|
||||
if (oldFEntity.FormType.Equals(1) || newFEntity.FormType.Equals(1))
|
||||
{
|
||||
oldTInfo.AllFieldsModel.ForEach(it =>
|
||||
{
|
||||
@@ -1689,7 +1693,7 @@ public class RunService : IRunService, ITransient
|
||||
Dictionary<string, object>? newChildData = new Dictionary<string, object>();
|
||||
foreach (KeyValuePair<string, object> item in childmap)
|
||||
{
|
||||
if(item.Key.Equals("id")) newChildData[item.Key] = childmap[item.Key];
|
||||
if (item.Key.Equals("id")) newChildData[item.Key] = childmap[item.Key];
|
||||
FieldsModel? childFieldsModel = childFieldsModelList.Where(c => c.__vModel__ == item.Key).FirstOrDefault();
|
||||
if (childFieldsModel != null && childFieldsModel.__vModel__.Equals(item.Key))
|
||||
{
|
||||
@@ -1999,7 +2003,7 @@ public class RunService : IRunService, ITransient
|
||||
/// <returns></returns>
|
||||
private string GetPrimary(DbLinkEntity link, string MainTableName)
|
||||
{
|
||||
// modified by PhilPan
|
||||
// modified by PhilPan
|
||||
var keys = _databaseService.GetPrimaries(link, MainTableName);
|
||||
if (keys.Count < 1) throw Oops.Oh(ErrorCode.D1402); // 主表未设置主键
|
||||
return keys.First();
|
||||
@@ -2464,7 +2468,7 @@ public class RunService : IRunService, ITransient
|
||||
}
|
||||
|
||||
// 子表字段为空 查询 处理.
|
||||
if (templateInfo.ChildTableFields.Any(x => x.Value.Contains(tName + "."))&&(dicList.ToJsonString().Contains("\"ConditionalType\":11") || dicList.ToJsonString().Contains("\"ConditionalType\":14")))
|
||||
if (templateInfo.ChildTableFields.Any(x => x.Value.Contains(tName + ".")) && (dicList.ToJsonString().Contains("\"ConditionalType\":11") || dicList.ToJsonString().Contains("\"ConditionalType\":14")))
|
||||
queryOrSqlList.Add(string.Format(" OR ( [{0}] NOT IN ( SELECT {1} FROM {2} ) ) ", primaryKey, templateInfo.AllTable.Where(x => x.table.Equals(tName)).First().tableField, tName));
|
||||
|
||||
if (!tableWhere.ContainsKey(tName)) tableWhere.Add(tName, new List<IConditionalModel>() { conList });
|
||||
@@ -2945,7 +2949,7 @@ public class RunService : IRunService, ITransient
|
||||
// 多选时为模糊查询
|
||||
if (model.multiple || model.searchMultiple)
|
||||
{
|
||||
var value = item.Value.ToString().Contains("[") ? item.Value.ToObject<List<object>>():new List<object>() { item.Value.ToString() };
|
||||
var value = item.Value.ToString().Contains("[") ? item.Value.ToObject<List<object>>() : new List<object>() { item.Value.ToString() };
|
||||
var addItems = new List<KeyValuePair<WhereType, ConditionalModel>>();
|
||||
for (int i = 0; i < value.Count; i++)
|
||||
{
|
||||
@@ -2987,7 +2991,7 @@ public class RunService : IRunService, ITransient
|
||||
var objIdList = new List<string>();
|
||||
if (item.Value.ToString().Contains("[")) objIdList = item.Value.ToObject<List<string>>();
|
||||
else objIdList.Add(item.Value.ToString());
|
||||
var rIdList = _visualDevRepository.AsSugarClient().Queryable<UserRelationEntity>().Where(x => objIdList.Select(xx=>xx.Replace("--user", string.Empty)).Contains(x.UserId)).Select(x => new { x.ObjectId, x.ObjectType }).ToList();
|
||||
var rIdList = _visualDevRepository.AsSugarClient().Queryable<UserRelationEntity>().Where(x => objIdList.Select(xx => xx.Replace("--user", string.Empty)).Contains(x.UserId)).Select(x => new { x.ObjectId, x.ObjectType }).ToList();
|
||||
rIdList.ForEach(x =>
|
||||
{
|
||||
if (x.ObjectType.Equals("Organize"))
|
||||
@@ -3193,7 +3197,7 @@ public class RunService : IRunService, ITransient
|
||||
var add = new KeyValuePair<WhereType, ConditionalModel>(i == 0 ? WhereType.And : WhereType.Or, new ConditionalModel
|
||||
{
|
||||
FieldName = item.Key,
|
||||
ConditionalType = model.multiple ? ConditionalType.Like: ConditionalType.Equal,
|
||||
ConditionalType = model.multiple ? ConditionalType.Like : ConditionalType.Equal,
|
||||
FieldValue = model.multiple ? value[i].ToJsonString() : value[i].ToString()
|
||||
});
|
||||
addItems.Add(add);
|
||||
@@ -3317,7 +3321,7 @@ public class RunService : IRunService, ITransient
|
||||
conModels.Add(new ConditionalModel { FieldName = item.Key, ConditionalType = ConditionalType.In, FieldValue = values });
|
||||
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
conModels.Add(new ConditionalCollections()
|
||||
{
|
||||
@@ -3527,7 +3531,7 @@ public class RunService : IRunService, ITransient
|
||||
dataRuleConditionalList = _visualDevRepository.AsSugarClient().Utilities.JsonToConditionalModels(pList.ToJsonString());
|
||||
dataRuleConditionalList = GetIConditionalModelListByTableName(dataRuleConditionalList, item.Key);
|
||||
var json = dataRuleConditionalList.ToJsonString().Replace(item.Key + ".", string.Empty);
|
||||
dataRuleConditionalList= _visualDevRepository.AsSugarClient().Utilities.JsonToConditionalModels(json);
|
||||
dataRuleConditionalList = _visualDevRepository.AsSugarClient().Utilities.JsonToConditionalModels(json);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3875,7 +3879,7 @@ public class RunService : IRunService, ITransient
|
||||
{
|
||||
Console.WriteLine(item.Value);
|
||||
Console.WriteLine(item.Key.Replace("jnpf_searchType_equals_", ""));
|
||||
if (item.Key.Contains("jnpf_searchType_equals_")) resList = resList.Where(x => x[item.Key.Replace("jnpf_searchType_equals_","")].ToString().Equals(item.Value)).ToList();
|
||||
if (item.Key.Contains("jnpf_searchType_equals_")) resList = resList.Where(x => x[item.Key.Replace("jnpf_searchType_equals_", "")].ToString().Equals(item.Value)).ToList();
|
||||
else resList = resList.Where(x => x[item.Key].ToString().Contains(item.Value)).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user