From bf76a846212e0aa3f36da7cdfe0e77fc6b878c8c Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 20 Jul 2023 14:42:31 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=A7=A3=E5=86=B3=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=98=8E=E7=BB=86=E6=9C=80=E5=90=8E=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=E5=88=A0=E9=99=A4=E4=B8=8D=E4=BA=86=E7=9A=84bug=202?= =?UTF-8?q?=E3=80=81=E8=A7=A3=E5=86=B3=E5=9C=A8=E7=BA=BF=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E6=96=B0=E5=A2=9E=E6=97=B6=E6=8A=A5=E4=B8=BB?= =?UTF-8?q?=E9=94=AE=E9=87=8D=E5=A4=8D=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- visualdev/Tnb.VisualDev/RunService.cs | 34 +++++++++++++++------------ 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/visualdev/Tnb.VisualDev/RunService.cs b/visualdev/Tnb.VisualDev/RunService.cs index 00545f6c..214bb0df 100644 --- a/visualdev/Tnb.VisualDev/RunService.cs +++ b/visualdev/Tnb.VisualDev/RunService.cs @@ -753,15 +753,15 @@ public class RunService : IRunService, ITransient dictionarySql.Clear(); tableField.Add("ReturnIdentity", mainId); dictionarySql.Add("MainTableReturnIdentity", new List>() { 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>? model = allDataMap[item].ToObject>>(); - 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? newChildData = new Dictionary(); foreach (KeyValuePair 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 /// 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() { conList }); @@ -2945,7 +2949,7 @@ public class RunService : IRunService, ITransient // 多选时为模糊查询 if (model.multiple || model.searchMultiple) { - var value = item.Value.ToString().Contains("[") ? item.Value.ToObject>():new List() { item.Value.ToString() }; + var value = item.Value.ToString().Contains("[") ? item.Value.ToObject>() : new List() { item.Value.ToString() }; var addItems = new List>(); for (int i = 0; i < value.Count; i++) { @@ -2987,7 +2991,7 @@ public class RunService : IRunService, ITransient var objIdList = new List(); if (item.Value.ToString().Contains("[")) objIdList = item.Value.ToObject>(); else objIdList.Add(item.Value.ToString()); - var rIdList = _visualDevRepository.AsSugarClient().Queryable().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().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(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(); } }