提交 836db932 authored 作者: 彭寒菲's avatar 彭寒菲

树形维护BUG修改,上传表格标准模板

上级 230d2c01
...@@ -21,6 +21,7 @@ using Kingdee.BOS.Core.Metadata.FormElement; ...@@ -21,6 +21,7 @@ using Kingdee.BOS.Core.Metadata.FormElement;
using Kingdee.BOS.Core.NetworkCtrl; using Kingdee.BOS.Core.NetworkCtrl;
using Kingdee.BOS.Core.Permission; using Kingdee.BOS.Core.Permission;
using Kingdee.BOS.Core.SqlBuilder; using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS.Log;
using Kingdee.BOS.Orm; using Kingdee.BOS.Orm;
using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Orm.Metadata.DataEntity; using Kingdee.BOS.Orm.Metadata.DataEntity;
...@@ -352,43 +353,58 @@ public class BomTree1 : AbstractMFGDynamicFormPlugIn ...@@ -352,43 +353,58 @@ public class BomTree1 : AbstractMFGDynamicFormPlugIn
var parameterDate = this.Model.ParameterData;//获取 物料清单-树形维护用户参数 var parameterDate = this.Model.ParameterData;//获取 物料清单-树形维护用户参数
char SplitStr = Convert.ToChar(parameterDate["SplitCode"]); char SplitStr = Convert.ToChar(parameterDate["SplitCode"]);
var strarry = txt.Split(SplitStr); var strarry = txt.Split(SplitStr);
string number = "";
string sqlParameter = ""; string sqlParameter = "";
string text1 = "";
string text2 = "";
if (strarry.Length > 0) if (strarry.Length > 0)
{ {
number = strarry[0];
var IsBomId = parameterDate["BomId"].ToString(); var IsBomId = parameterDate["BomId"].ToString();
if (IsBomId == "True")//BOM版本是否勾选 var Number = parameterDate["Number"].ToString();
var Name = parameterDate["Name"].ToString();
Logger.Info("IsBomId", "IsBomId");
if (Number == "False")//物料编码是否勾选
{ {
sqlParameter = $@"where FNUMBER='{number}'"; this.View.ShowErrMessage("用户参数中物料编码必须勾选!");
return;
} }
else else
{ {
sqlParameter = $@"where wlnumber='{number}'"; sqlParameter = $@"where wlnumber='{strarry[0]}'";
text1 = $@" ma.FNUMBER";
text2 = $@" wl.FNUMBER";
}
if (Name == "True")//物料名称是否勾选
{
sqlParameter = $@"where wlnumber='{strarry[0]}'";
text1 = $@" ma.FNUMBER+'{SplitStr}'+mc.FNAME";
text2 = $@" wl.FNUMBER+'{SplitStr}'+wlmc.FNAME";
}
if (IsBomId == "True")//BOM版本是否勾选
{
sqlParameter = $@"where wlnumber='{strarry[1]}'";
text1 = $@"b.FNUMBER+'{SplitStr}'+ ma.FNUMBER+'{SplitStr}'+mc.FNAME";
text2 = $@"bom.FNUMBER+'{SplitStr}'+ wl.FNUMBER+'{SplitStr}'+wlmc.FNAME";
} }
} }
if (number != "") if (sqlParameter != "" && text1 != "" && text2 != "")
{ {
string sql = $@"/*dialect*/with stepCTE AS ( string sql = $@"/*dialect*/with stepCTE AS (
select b.FMATERIALID as 父项物料, a.FMATERIALID as 子项物料,a.FID 父项BOMID,a.FENTRYID 子项ID,b.TreeValue 父项名称,b.wlnumber,(ma.FNUMBER+'*'+mc.FNAME) 子项名称, select b.FMATERIALID as 父项物料, a.FMATERIALID as 子项物料,a.FID 父项BOMID,a.FENTRYID 子项ID,b.TreeValue 父项名称,b.wlnumber,({text1}) 子项名称,
1 AS Lev from T_ENG_BOMCHILD a inner join 1 AS Lev from T_ENG_BOMCHILD a inner join
( select * from ( select * from
(select (wl.FNUMBER+'*'+wlmc.FNAME) TreeValue,wl.FNUMBER as wlnumber,bom.* from T_ENG_BOM bom (select ({text2}) TreeValue,wl.FNUMBER as wlnumber,bom.* from T_ENG_BOM bom
left join T_BD_MATERIAL wl on bom.FMATERIALID=wl.FMATERIALID left join T_BD_MATERIAL wl on bom.FMATERIALID=wl.FMATERIALID
left join T_BD_MATERIAL_l wlmc on wl.FMATERIALID=wlmc.FMATERIALID and bom.FMATERIALID=wlmc.FMATERIALID) left join T_BD_MATERIAL_l wlmc on wl.FMATERIALID=wlmc.FMATERIALID and bom.FMATERIALID=wlmc.FMATERIALID)
as T0 {sqlParameter}) b on a.FID=b.FID as T0 {sqlParameter}) b on a.FID=b.FID
inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
inner join T_BD_MATERIAL_L mc on a.FMATERIALID=mc.FMATERIALID inner join T_BD_MATERIAL_L mc on a.FMATERIALID=mc.FMATERIALID
union all union all
select c.f as 父项物料 ,c.z as 子项物料,c.FID 父项BOMID,c.FENTRYID 子项ID,c.TreeValue 父项名称,wlnumbe,c.子项名称,cte.Lev+1 from select c.f as 父项物料 ,c.z as 子项物料,c.FID 父项BOMID,c.FENTRYID 子项ID,c.TreeValue 父项名称,wlnumbe,c.子项名称,cte.Lev+1 from
( (
select a.FMATERIALID z ,b.FMATERIALID f,a.FID ,a.FENTRYID,b.TreeValue ,(ma.FNUMBER+'*'+mc.FNAME) 子项名称 ,b.wlnumber as wlnumbe select a.FMATERIALID z ,b.FMATERIALID f,a.FID ,a.FENTRYID,b.TreeValue ,({text1}) 子项名称 ,b.wlnumber as wlnumbe
from T_ENG_BOMCHILD a inner join from T_ENG_BOMCHILD a inner join
( select * from ( select * from
(select (wl.FNUMBER+'*'+wlmc.FNAME) TreeValue,wl.FNUMBER as wlnumber,bom.* from T_ENG_BOM bom (select ({text2}) TreeValue,wl.FNUMBER as wlnumber,bom.* from T_ENG_BOM bom
inner join T_BD_MATERIAL wl on bom.FMATERIALID=wl.FMATERIALID inner join T_BD_MATERIAL wl on bom.FMATERIALID=wl.FMATERIALID
inner join T_BD_MATERIAL_l wlmc on wl.FMATERIALID=wlmc.FMATERIALID and bom.FMATERIALID=wlmc.FMATERIALID) inner join T_BD_MATERIAL_l wlmc on wl.FMATERIALID=wlmc.FMATERIALID and bom.FMATERIALID=wlmc.FMATERIALID)
as T0 )b on a.FID=b.FID as T0 )b on a.FID=b.FID
...@@ -404,7 +420,8 @@ case f.FERPCLSID when '2' then '1' when '3' then '1' else '2' end FERPCLSID,w.F ...@@ -404,7 +420,8 @@ case f.FERPCLSID when '2' then '1' when '3' then '1' else '2' end FERPCLSID,w.F
left join t_BD_MaterialBase f on stepCTE.子项物料=f.FMATERIALID left join t_BD_MaterialBase f on stepCTE.子项物料=f.FMATERIALID
left join T_ENG_BOM b on stepCTE.父项BOMID=b.FID left join T_ENG_BOM b on stepCTE.父项BOMID=b.FID
left join T_BD_MATERIAL w on stepCTE.子项物料=w.FMATERIALID left join T_BD_MATERIAL w on stepCTE.子项物料=w.FMATERIALID
left join T_BD_MATERIAL_L l on stepCTE.子项物料=l.FMATERIALID "; left join T_BD_MATERIAL_L l on stepCTE.子项物料=l.FMATERIALID ";
Logger.Info("sql",sql);
DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
Dictionary<string, List<ChirdNode>> all = new Dictionary<string, List<ChirdNode>>();//所有 Dictionary<string, List<ChirdNode>> all = new Dictionary<string, List<ChirdNode>>();//所有
Dictionary<string, List<ChirdNode>> Examine = new Dictionary<string, List<ChirdNode>>();//未审核 Dictionary<string, List<ChirdNode>> Examine = new Dictionary<string, List<ChirdNode>>();//未审核
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论