浏览代码

更新代码

chen_yjin 6 月之前
父节点
当前提交
79fba7dda9

+ 24 - 0
JLHHJSvr/Com/CreatMtrlPf.cs

@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using JLHHJSvr.Com.Model;
+using LJLib.Net.SPI.Com;
+
+namespace JLHHJSvr.Com
+{
+    public sealed class CreatMtrlPfRequest : ILJRequest<CreatMtrlPfResponse>
+    {
+        public string GetApiName()
+        {
+            return "CreatMtrlPf";
+        }
+        public string token { get; set; }
+        public int mattressid { get; set; }
+    }
+
+    public sealed class CreatMtrlPfResponse : LJResponse
+    {
+        public u_mattress mattress { get; set; }
+    }
+}

+ 29 - 0
JLHHJSvr/Com/GetComputeSpring.cs

@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using JLHHJSvr.Com.Model;
+using LJLib.Net.SPI.Com;
+
+namespace JLHHJSvr.Com
+{
+    public sealed class GetComputeSpringRequest : ILJRequest<GetComputeSpringResponse>
+    {
+        public string GetApiName()
+        {
+            return "GetComputeSpring";
+        }
+        public string token { get; set; }
+        public u_bednet bednet { get; set; }
+        public List<u_bednetmx> bednetMx { get; set; }
+    }
+
+    public sealed class GetComputeSpringResponse : LJResponse
+    {
+        public u_bednet bednet { get; set; }
+        public List<u_bednetmx> bednetMx { get; set; }
+        public List<replacement> replace { get; set; }
+        public List<replacement> formulas { get; set; }
+        public string message { get; set; }
+    }
+}

+ 4 - 2
JLHHJSvr/Com/GetERPMtrlTypeList.cs

@@ -15,11 +15,13 @@ namespace JLHHJSvr.Com
             return "GetERPMtrlTypeList";
         }
         public string token { get; set; }
+        public int? parentid { get; set; }
+        public byte? RecurionType { get; set; }
     }
 
     public sealed class GetERPMtrlTypeListResponse : LJResponse
     {
-        public List<u_mtrltype> list { get; set; }
-        public List<Recursion<u_mtrltype>> reList { get; set; }
+        public List<u_mtrltype> DataList { get; set; }
+        public List<Recursion2> RecurionList { get; set; }
     }
 }

+ 30 - 2
JLHHJSvr/Com/GetERPMtrldefList.cs

@@ -17,10 +17,38 @@ namespace JLHHJSvr.Com
         /// 登录token
         /// </summary>
         public string token { get; set; }
+        public int? mtrlid { get; set; }
+        public int? storageid { get; set; }
         /// <summary>
-        /// 单据id
+        /// 属性
         /// </summary>
-        public int? mtrlid { get; set; }
+        public int? mtrlprp { get; set; }
+        /// <summary>
+        /// 物料类别
+        /// </summary>
+        public int? mtrltypeid { get; set; }
+        public int? mtrlorigin { get; set; }
+        public int? isuse { get; set; }
+        public string keyword { get; set; }
+
+        public string mtrlname { get; set; }
+        public string mtrlcode { get; set; }
+        public string mtrlmode { get; set; }
+        public string mtrlsectype { get; set; }
+        public string zxmtrlmode { get; set; }
+        public string usermtrlmode { get; set; }
+        public string plancode { get; set; }
+
+        public int pageindex { get; set; }
+        public int pagesize { get; set; }
+        /// <summary>
+        /// 产品类别
+        /// </summary>
+        public string mtrltype { get; set; }
+        /// <summary>
+        /// 1-只返回重要字段
+        /// </summary>
+        public int simpleField { get; set; }
     }
 
     public sealed class GetERPMtrldefListResponse : LJResponse

+ 18 - 0
JLHHJSvr/Com/Model/Recursion2.cs

@@ -0,0 +1,18 @@
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JLHHJSvr.Com.Model
+{
+    public sealed class Recursion2
+    {
+        public string text { get; set; }
+        public int value { get; set; }
+        public List<Recursion2> children { get;set;}
+    }
+
+
+}

+ 35 - 0
JLHHJSvr/Com/Model/erp_mtrl_df.cs

@@ -0,0 +1,35 @@
+using System;
+using LJLib.DAL.SQL;
+
+namespace JLHHJSvr.Com.Model
+{
+    [PK(new[] { "mtrlid,pfcode" })]
+    public sealed class u_mtrl_pf
+    {
+        public int mtrlid { get; set; }
+        public string pfcode { get; set; }
+        public int ifdft { get; set; }
+        public int inuse { get; set; }
+
+
+        public string Dscrp { get; set; }
+        public int Ifdi { get; set; }
+        public DateTime opdate { get; set; }
+        public string opemp { get; set; }
+        public DateTime? moddate { get; set; }
+        public string modemp { get; set; }
+        public int flag { get; set; }
+        public DateTime? auditdate { get; set; }
+        public string auditemp { get; set; }
+        public int affirmflag { get; set; }
+        public string affirmemp { get; set; }
+        public DateTime? affirmdate { get; set; }
+        public int pftype { get; set; }
+        public int ifpzpf { get; set; }
+        public int if_saletask { get; set; }
+        public int wrkid { get; set; }
+        public int fjcnt { get; set; }
+        public string vercode { get; set; }
+
+    }
+}

+ 2 - 1
JLHHJSvr/Com/Model/erp_mtrldef.cs

@@ -8,7 +8,8 @@ namespace JLHHJSvr.Com.Model
 {
     [PK(new[] { "mtrlid" })]
     public sealed class erp_mtrldef
-    {
+	{
+		public int? rowNum { get; set; }
 		public int? mtrlid { get; set; }
 		public int? mtrltypeid { get; set; }
 		public string mtrltype { get; set; }

+ 72 - 0
JLHHJSvr/Com/Model/erp_prdpf.cs

@@ -0,0 +1,72 @@
+
+using LJLib.DAL.SQL;
+
+namespace JLHHJSvr.Com.Model
+{
+    [PK(new[] { "mtrlid,pfcode,pfgroup,SonMtrlid,wrkgrpid,sonpfcode" })]
+    public class u_PrdPF
+    {
+        public int? mtrlid { get; set; }
+        public string pfcode { get; set; }
+        public string pfgroup { get; set; }
+        public int? SonMtrlid { get; set; }
+        public byte? ifreputate { get; set; }
+        public byte? ifover { get; set; }
+        public decimal? updownrate { get; set; }
+        public decimal? Sonscale { get; set; }
+        public decimal? SonLoss { get; set; }
+        public decimal? SonDECLosS { get; set; }
+        public decimal? Sonahead { get; set; }
+        public string dscrp { get; set; }
+        public decimal? pfgroupqty { get; set; }
+        public string pfgroupmode { get; set; }
+        public string promode { get; set; }
+        public int? printid { get; set; }
+        public int? wrkgrpid { get; set; }
+        public string status { get; set; }
+        public string sonpfcode { get; set; }
+        public string woodcode { get; set; }
+        public string pcode { get; set; }
+        public byte? mtrlkind { get; set; }
+        public string pfklmode { get; set; }
+        public int? dipztype { get; set; }
+        public decimal? scllloss { get; set; }
+        public byte? dytype { get; set; }
+        public decimal? advancetime { get; set; }
+        public decimal? sclldecloss { get; set; }
+        public decimal? baseqty { get; set; }
+        public string SonLossstr { get; set; }
+        public decimal? buyarg { get; set; }
+        public byte? scllqtytype { get; set; }
+        public byte? if_follow { get; set; }
+        public decimal? lasthour { get; set; }
+        public int? modleid { get; set; }
+        public string modlename { get; set; }
+        public string wenli { get; set; }
+        public string fengbian { get; set; }
+        public string paikong { get; set; }
+        public string luoji { get; set; }
+        public string penyou { get; set; }
+        public string azcode { get; set; }
+        public string partname { get; set; }
+        public string sclldeclossstr { get; set; }
+        public string sonscale_str { get; set; }
+        public string mtrlname { get; set; }
+        public string mtrlmode { get; set; }
+        public string unit { get; set; }
+
+        public byte syncflag { get; set; }
+        #region 辅助
+        /// <summary>
+        /// 主物料
+        /// </summary>
+        public string mtrlcode { get; set; }
+        /// <summary>
+        /// 下级物料
+        /// </summary>
+        public string mtrlcode_son { get; set; }
+        public decimal? price_bj_notax { get; set; }
+        public string wrkgrpname { get; set; }
+        #endregion
+    }
+}

+ 16 - 0
JLHHJSvr/DataStore/web_bednet_arealist.xml

@@ -10,6 +10,14 @@ SELECT u_bednet_area.areaid
 	,u_bednet_area.area_5
 	,u_bednet_area.area_6
 	,u_bednet_area.area_7
+	,u_bednet_area.area_8
+	,u_bednet_area.area_9
+	,u_bednet_area.area_10
+	,u_bednet_area.area_11
+	,u_bednet_area.area_12
+	,u_bednet_area.area_13
+	,u_bednet_area.area_14
+	,u_bednet_area.area_15
 FROM u_bednet_area
   </selectstr>
   <where>
@@ -24,5 +32,13 @@ FROM u_bednet_area
     <field field="area_5" datatype="number">五区比例</field>
     <field field="area_6" datatype="number">六区比例</field>
     <field field="area_7" datatype="number">七区比例</field>
+	<field field="area_8" datatype="number">八区比例</field>
+	<field field="area_9" datatype="number">九区比例</field>
+	<field field="area_10" datatype="number">十区比例</field>
+	<field field="area_11" datatype="number">十一区比例</field>
+	<field field="area_12" datatype="number">十二区比例</field>
+	<field field="area_13" datatype="number">十三区比例</field>
+	<field field="area_14" datatype="number">十四区比例</field>
+	<field field="area_15" datatype="number">十五区比例</field>
   </displayfields>
 </select>

+ 3 - 0
JLHHJSvr/DataStore/web_configure_codemxlist.xml

@@ -35,6 +35,9 @@ INNER JOIN u_configure_code ON u_configure_codemx.pzid = u_configure_code.pzid
 	<when notnull="@typeid">
 		u_configure_code.typeid = @typeid 
 	</when>
+	<when notnull="@keyword">
+		u_configure_codemx.pzcodemx LIKE '%'+ @keyword + '%' OR u_configure_codemx.namemx LIKE '%'+ @keyword + '%'
+	</when>
   </where>
   <orderstr>
   </orderstr>

+ 6 - 1
JLHHJSvr/DataStore/web_mattress_interface.xml

@@ -94,7 +94,12 @@
 			u_mattress.creatmtrlqd_flag = @arg_creatmtrlqd_flag
 		</when>
 		<when notnull="@arg_search">
-			u_mattress.mattresscode like '%'+ @arg_search + '%' OR u_mattress.mattressrelcode like '%'+ @arg_search + '%' OR u_mattress.mattressname like '%'+ @arg_search + '%'
+			u_mattress.mattresscode like '%'+ @arg_search + '%' OR u_mattress.mattressrelcode like '%'+ @arg_search + '%'
+			OR u_mattress.mattressname like '%'+ @arg_search + '%' OR u_mattress.erp_mtrlengname like '%'+ @arg_search + '%'
+			OR u_mattress.erp_mtrlcode like '%'+ @arg_search + '%'
+		</when>
+		<when notnull="@arg_mattressid">
+			u_mattress.mattressid = @arg_mattressid
 		</when>
 	</where>
 	<displayfields>

+ 24 - 6
JLHHJSvr/DataStore/web_mattress_interfacelist.xml

@@ -61,19 +61,37 @@ FROM u_mattress
   </selectstr>
   <where>
 	<when>u_mattress.xd_flag = 1</when>
-	<when notnull="@arg_deptid">u_mattress.deptid=@arg_deptid</when>
-	<when notnull="@creatmtrlqd_flag">u_mattress.creatmtrlqd_flag = @creatmtrlqd_flag</when>
-	<when notnull="@creatmtrl_flag">u_mattress.creatmtrl_flag = @creatmtrl_flag</when>
-	<when notnull="@js2_flag">u_mattress.js2_flag = @js2_flag</when>
-	<when notnull="@js1_flag">u_mattress.js1_flag = @js1_flag</when>
-	<when notnull="@yw_flag">u_mattress.yw_flag = @yw_flag</when>
+	<when notnull="@arg_deptid">
+		u_mattress.deptid=@arg_deptid
+	</when>
+	<when notnull="@creatmtrlqd_flag" creatmtrlqd_flag!="-1">
+		u_mattress.creatmtrlqd_flag = @creatmtrlqd_flag
+	</when>
+	<when notnull="@creatmtrl_flag" creatmtrl_flag!="-1">
+		u_mattress.creatmtrl_flag = @creatmtrl_flag
+	</when>
+	<when notnull="@js2_flag" js2_flag!="-1">
+		u_mattress.js2_flag = @js2_flag
+	</when>
+	<when notnull="@js1_flag" js1_flag!="-1">
+		u_mattress.js1_flag = @js1_flag
+	</when>
+	<when notnull="@yw_flag" yw_flag!="-1">
+		u_mattress.yw_flag = @yw_flag
+	</when>
 	<when>
 		u_mattress.createby in ($$user_outrepstr$$)
 	</when>
 	<when>
 		u_mattress.deptid in ($$user_deptstr$$)
 	</when>
+	<when notnull="@arg_search">
+		u_mattress.mattresscode like '%'+ @arg_search + '%' OR u_mattress.mattressrelcode like '%'+ @arg_search + '%'
+		OR u_mattress.mattressname like '%'+ @arg_search + '%' OR u_mattress.erp_mtrlengname like '%'+ @arg_search + '%'
+		OR u_mattress.erp_mtrlcode like '%'+ @arg_search + '%'
+	</when>
   </where>
+  <orderstr>mattressid DESC</orderstr>
   <displayfields>
     <field field="pid" compute="getrow()">序</field>
     <field field="yw_flag" datatype="checkbox">业务审核</field>

+ 185 - 0
JLHHJSvr/Excutor/CreatMtrlPfExcutor.cs

@@ -0,0 +1,185 @@
+using System;
+using System.Collections.Generic;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using DirectService.Tools;
+using JLHHJSvr.BLL;
+using JLHHJSvr.Com;
+using JLHHJSvr.Com.Model;
+using JLHHJSvr.Helper;
+using JLHHJSvr.LJException;
+using JLHHJSvr.LJFramework.Tools;
+using JLHHJSvr.Tools;
+using LJLib.DAL.SQL;
+using LJLib.Net.SPI.Server;
+
+namespace JLHHJSvr.Excutor
+{
+    internal sealed class CreatMtrlPfExcutor : ExcutorBase<CreatMtrlPfRequest, CreatMtrlPfResponse>
+    {
+        Dictionary<string, object> replacements = new Dictionary<string, object>();
+
+        protected override void ExcuteInternal(CreatMtrlPfRequest request, object state, CreatMtrlPfResponse rslt)
+        {
+            var tokendata = BllHelper.GetToken(request.token);
+            if (tokendata == null)
+            {
+                rslt.ErrMsg = "会话已经中断,请重新登录";
+                return;
+            }
+            if (request.mattressid <= 0)
+            {
+                rslt.ErrMsg = "床垫id参数为空!";
+                return;
+            }
+
+            using (var con = new SqlConnection(GlobalVar.ConnectionString))
+            using (var cmd = con.CreateCommand())
+            {
+                con.Open();
+
+                var mattress = new u_mattress();
+                if (DbSqlHelper.SelectOne(cmd, "u_mattress", "mattressid = @mattressid", new Dictionary<string, object>() { { "mattressid", request.mattressid } }, mattress, "erp_mtrlid") != 1)
+                {
+                    rslt.ErrMsg = "床垫报价单匹配失败";
+                    return;
+                }
+                if (mattress.erp_mtrlid <= 0)
+                {
+                    rslt.ErrMsg = "床垫清单还没匹配L1成品";
+                    return;
+                }
+
+                using (var erp_con = new SqlConnection(BllHelper.GetERPConnectString(cmd)))
+                using (var erp_cmd = erp_con.CreateCommand())
+                {
+                    erp_con.Open();
+
+                    try
+                    {
+                        var erpMtrldef = new erp_mtrldef();
+                        if (DbSqlHelper.SelectOne(erp_cmd, "u_mtrldef", "mtrlid = @mtrlid", new Dictionary<string, object>() { { "mtrlid", mattress.erp_mtrlid } }, erpMtrldef, "") != 1)
+                        {
+                            throw new LJCommonException("erp中没有对应的物料,erp_mtrlid=" + mattress.erp_mtrlid);
+                        }
+
+                        var mattress_interface_qd_list = new List<u_mattress_interface_qd>();
+
+                        var selectStr = @"SELECT u_mattress_interface_qd.mattressid 
+	                                ,u_mattress_interface_qd.printid 
+	                                ,u_mattress_interface_qd.itemname 
+	                                ,u_mattress_interface_qd.bj_pzname 
+	                                ,u_mattress_interface_qd.bj_pzname_mx 
+	                                ,u_mattress_interface_qd.bj_pzname_mx_mx 
+	                                ,u_mattress_interface_qd.mtrlid 
+	                                ,u_mattress_interface_qd.erp_mtrlid 
+	                                ,u_mattress_interface_qd.useqty 
+	                                ,u_mattress_interface_qd.dscrp 
+	                                ,u_mtrl_price.name AS mtrlname
+	                                ,u_mattress_interface_qd.actual_useqty 
+	                                ,u_mattress_interface_qd.qd_actual_size 
+	                                ,u_mattress_interface_qd.qd_pfgroupqty 
+	                                ,u_mattress_interface_qd.wrkgrpid 
+	                                ,u_mattress_interface_qd.ss_rate 
+	                                ,u_mattress_interface_qd.ls_rate 
+	                                ,u_mattress_interface_qd.sh_rate 
+                                FROM u_mattress_interface_qd
+                                LEFT JOIN u_mtrl_price ON u_mtrl_price.mtrlid = u_mattress_interface_qd.mtrlid";
+                        var outputFields = "mattressid,printid,itemname,bj_pzname,bj_pzname_mx,bj_pzname_mx_mx,mtrlid,erp_mtrlid,useqty,dscrp,mtrlname,actual_useqty,qd_actual_size,qd_pfgroupqty,wrkgrpid,ss_rate,ls_rate,sh_rate";
+                        DbSqlHelper.SelectJoin(cmd, selectStr, "mattressid = @mattressid", new Dictionary<string, object>() { { "@mattressid", request.mattressid } }, "printid", outputFields, 0, 0, mattress_interface_qd_list);
+
+                        // 删除原来的清单主表
+                        erp_cmd.CommandText = @"DELETE u_mtrl_pf WHERE mtrlid = @mtrlid";
+                        erp_cmd.Parameters.Clear();
+                        erp_cmd.Parameters.AddWithValue("@mtrlid", mattress.erp_mtrlid.Value);
+                        erp_cmd.ExecuteNonQuery();
+
+                        var ll_temp_dftwrkgrpid = 0;
+
+                        var ErpMtrl = new erp_mtrldef() { mtrlid = mattress.erp_mtrlid };
+                        if (DbSqlHelper.SelectOne(erp_cmd, ErpMtrl, "dftwrkgrpid") == 1)
+                        {
+                            ll_temp_dftwrkgrpid = ErpMtrl.dftwrkgrpid.Value;
+                        }
+
+                        var mtrlpf = new u_mtrl_pf()
+                        {
+                            mtrlid = mattress.erp_mtrlid.Value,
+                            pfcode = "[常规]",
+                            ifdft = 1,
+                            inuse = 1,
+                            opemp = tokendata.usercode,
+                            opdate = DateTime.Now,
+                            flag = 1,
+                            auditdate = DateTime.Now,
+                            auditemp = tokendata.usercode,
+                            wrkid = ll_temp_dftwrkgrpid
+                        };
+                        var fields = "mtrlid,pfcode,ifdft,inuse,opemp,opdate,flag,auditdate,auditemp,wrkid";
+                        if (DbSqlHelper.Insert(cmd, mtrlpf, fields) != 1)
+                        {
+                            throw new LJCommonException(string.Format("物料编码[{0}]建立物料清单[{1}]失败", mattress.erp_mtrlid, mtrlpf.pfcode));
+                        }
+
+                        // 删除原来的清单主表
+                        erp_cmd.CommandText = @"DELETE u_PrdPF WHERE mtrlid = @mtrlid";
+                        erp_cmd.Parameters.Clear();
+                        erp_cmd.Parameters.AddWithValue("@mtrlid", mattress.erp_mtrlid.Value);
+                        erp_cmd.ExecuteNonQuery();
+
+                        var i = 0;
+                        var fields_prdpf = "mtrlid, pfcode, pfgroup, SonMtrlid, wrkgrpid, sonpfcode, dscrp, pfgroupqty, Sonscale, pfklmode, printid, azcode, promode, sonloss";
+                        foreach (var mx in mattress_interface_qd_list)
+                        {
+
+                            var ls_temp_pfgroup = mx.itemname + '-' + mx.bj_pzname;
+                            var ll_cnt_temp = 0;
+                            for(var j = 0; j < i - 1; j++)
+                            {
+                                if (ls_temp_pfgroup == mattress_interface_qd_list[j].itemname + '-' + mattress_interface_qd_list[j].bj_pzname)
+                                {
+                                    ll_cnt_temp++;
+                                }
+                            }
+                            if (ll_cnt_temp > 0)
+                            {
+                                ls_temp_pfgroup = ls_temp_pfgroup + (ll_cnt_temp).ToString();
+                            }
+
+                            string ls_azcode = i.ToString("D3");
+
+                            var prdpf = new u_PrdPF()
+                            {
+                                mtrlid = mattress.erp_mtrlid.Value,
+                                pfcode = "[常规]",
+                                pfgroup = ls_temp_pfgroup,
+                                SonMtrlid = mx.mtrlid,
+                                wrkgrpid = mx.wrkgrpid,
+                                sonpfcode = "[常规]",
+                                dscrp = mx.bj_pzname_mx_mx,
+                                pfgroupqty = mx.qd_pfgroupqty,
+                                Sonscale = mx.actual_useqty,
+                                pfklmode = mx.qd_actual_size,
+                                printid = mx.printid,
+                                azcode = ls_azcode,
+                                promode = mx.ss_rate.ToString(),
+                                SonLoss = mx.sh_rate
+                            };
+                            if (DbSqlHelper.Insert(cmd, prdpf, fields_prdpf) != 1)
+                            {
+                                throw new LJCommonException(string.Format("物料编码[{0}]建立物产品清单[{1}]失败", mattress.erp_mtrlid, i));
+                            }
+                            i++;
+                        }
+                    }
+                    catch (Exception e)
+                    {
+                        cmd.Transaction.Rollback();
+                        rslt.ErrMsg = e.Message;
+                    }
+                }
+            }
+        }
+    }
+}

+ 93 - 0
JLHHJSvr/Excutor/GetComputeSpringExcutor.cs

@@ -0,0 +1,93 @@
+using System;
+using System.Collections.Generic;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using DirectService.Tools;
+using JLHHJSvr.BLL;
+using JLHHJSvr.Com;
+using JLHHJSvr.Com.Model;
+using JLHHJSvr.Helper;
+using JLHHJSvr.LJException;
+using JLHHJSvr.LJFramework.Tools;
+using JLHHJSvr.Tools;
+using LJLib.DAL.SQL;
+using LJLib.Net.SPI.Server;
+
+namespace JLHHJSvr.Excutor
+{
+    internal sealed class GetComputeSpringExcutor : ExcutorBase<GetComputeSpringRequest, GetComputeSpringResponse>
+    {
+        Dictionary<string, object> replacements = new Dictionary<string, object>();
+
+        protected override void ExcuteInternal(GetComputeSpringRequest request, object state, GetComputeSpringResponse rslt)
+        {
+            var tokendata = BllHelper.GetToken(request.token);
+            if (tokendata == null)
+            {
+                rslt.ErrMsg = "会话已经中断,请重新登录";
+                return;
+            }
+            if (request.bednet == null)
+            {
+                rslt.ErrMsg = "缺少主表信息";
+                return;
+            }
+            if (request.bednet.bednettypeid <= 0)
+            {
+                rslt.ErrMsg = "请选择床网类型";
+                return;
+            }
+            if (request.bednetMx == null || !request.bednetMx.Any())
+            {
+                rslt.ErrMsg = "缺少报价明细";
+                return;
+            }
+            // 检查是否填写床网高度
+
+            foreach (var mx in request.bednetMx)
+            {
+                if (mx.bednet_height == null || mx.bednet_height <= 0)
+                {
+                    rslt.ErrMsg = "请填写床网高";
+                    return;
+                }
+                else
+                {
+                    request.bednet.mattress_height = mx.bednet_height;
+                }
+            }
+
+            using (var con = new SqlConnection(GlobalVar.ConnectionString))
+            using (var cmd = con.CreateCommand())
+            {
+                con.Open();
+
+                // 初始化属性
+                AutoInit.AutoInitS(cmd, request.bednet);
+
+                foreach (var mx in request.bednetMx)
+                {
+                    AutoInit.AutoInitS(cmd, mx);
+                }
+
+                var helper = HelperBase.GetHelper<BedNetHelper>(cmd,new HelperBase.Context() { tokendata = tokendata});
+
+                try
+                {
+                    helper.CalCulateSpringQty(request.bednet, request.bednetMx);
+                }
+                catch (Exception e)
+                {
+                    rslt.message = e.Message;
+                }
+                rslt.replace = helper.Replacements;
+
+                rslt.formulas = helper.FormulaReplacements;
+
+                rslt.bednet = request.bednet;
+                rslt.bednetMx = request.bednetMx;
+            }
+        }
+    }
+}

+ 93 - 11
JLHHJSvr/Excutor/GetERPMtrlTypeListExcutor.cs

@@ -7,8 +7,8 @@ using DirectService.Tools;
 using JLHHJSvr.BLL;
 using JLHHJSvr.Com;
 using JLHHJSvr.Com.Model;
-using JLHHJSvr.Helper;
 using JLHHJSvr.LJException;
+using JLHHJSvr.LJFramework.Tools;
 using JLHHJSvr.Tools;
 using LJLib.DAL.SQL;
 using LJLib.Net.SPI.Server;
@@ -26,20 +26,102 @@ namespace JLHHJSvr.Excutor
                 return;
             }
 
-            var erpHelper = HelperBase.GetHelper<ERPHelper>(null);
+            using (var con = new SqlConnection(GlobalVar.ConnectionString))
+            using (var cmd = con.CreateCommand())
+            {
+                con.Open();
 
-            var list = erpHelper.GetERPList<u_mtrltype>("GetL1Mtrltype",null);
+                using (var erp_con = new SqlConnection(BllHelper.GetERPConnectString(cmd)))
+                using (var erp_cmd = erp_con.CreateCommand())
+                {
+                    erp_con.Open();
 
-            var pk = new PkName()
-            {
-                MainField = "mtrltypeid",
-                MainName = "mtrltype",
-                ParentField = "parentid"
-            };
+                    var cusion = new menuRecursion();
+
+                    //var erpHelper = HelperBase.GetHelper<ERPHelper>(null);
+
+                    //var list = erpHelper.GetERPList<u_mtrltype>("GetL1Mtrltype", null);
+
+                    //var pk = new PkName()
+                    //{
+                    //    MainField = "mtrltypeid",
+                    //    MainName = "mtrltype",
+                    //    ParentField = "parentid"
+                    //};
+
+                    //ListEx.GetRecursions(list, pk, out var resultList);
+
+                    //rslt.reList = resultList;
+
+
+                    string MainField = "mtrltypeid";
+                    string MainName = "mtrltype";
+                    string ParentField = "parentid";
 
-            ListEx.GetRecursions(list, pk, out var resultList);
+                    //查看有权限类别的物料
+                    //var mtrltypeids = UserHelper.ParsePowerStr(cmd, tokendata.empid, "mtrltypestr");
 
-            rslt.reList = resultList;
+                    var selectStr = @"
+                    SELECT
+                        u_mtrltype.mtrltypeid,
+                        u_mtrltype.mtrltype,
+                        u_mtrltype.handtype,
+                        u_mtrltype.sonflag,
+                        u_mtrltype.parentid,
+                        u_mtrltype.mtrlprp,
+                        u_mtrltype.typecode,
+                        u_mtrltype.typecodestr
+                    FROM u_mtrltype";
+                    var outputFields = "mtrltypeid,mtrltype,handtype,sonflag,parentid,mtrlprp,typecode,typecodestr";
+
+                    var whereList = new List<string>();
+                    if (request.parentid != null)
+                    {
+                        whereList.Add("u_mtrltype.parentid = " + request.parentid.ToString());
+                    }
+                    //if (!string.IsNullOrEmpty(mtrltypeids))
+                    //{
+                    //    whereList.Add($"u_mtrldef.mtrltypeid IN {mtrltypeids}");
+                    //}
+
+                    List<u_mtrltype> DataList = new List<u_mtrltype>();
+                    DbSqlHelper.SelectJoin(erp_cmd, selectStr, ListEx.GetWhereStr(whereList), null, null, outputFields, 0, 0, DataList);
+
+
+                    if (request.RecurionType == 1)
+                    {
+                        // 转换成层级结构
+
+                        var allList = DataList;
+                        var List0 = allList.Where(t => t.parentid == 0).ToList();
+                        rslt.RecurionList = new List<Recursion2>();
+                        var RecurionList = new List<Recursion2>();
+
+                        foreach (var mx in List0)
+                        {
+                            var curion = new Recursion2() { text = mx.mtrltype, value = mx.mtrltypeid.Value };
+                            RecurionList.Add(curion);
+                        }
+
+                        var pk = new PkName()
+                        {
+                            MainField = MainField,
+                            MainName = MainName,
+                            ParentField = ParentField
+                        };
+                        var idList = new List<int>();
+                        idList.Add(0);
+                        cusion.GetRecursions(DataList, pk, RecurionList, idList);
+                        rslt.RecurionList = RecurionList;
+                    }
+                    else
+                    {
+                        // 完成列出数据
+                        rslt.DataList = new List<u_mtrltype>();
+                        rslt.DataList = DataList;
+                    }
+                }
+            }
         }
     }
 }

+ 140 - 9
JLHHJSvr/Excutor/GetERPMtrldefListExcutor.cs

@@ -10,7 +10,6 @@ using JLHHJSvr.Helper;
 using JLHHJSvr.LJException;
 using LJLib.DAL.SQL;
 using LJLib.Net.SPI.Server;
-using Newtonsoft.Json.Linq;
 
 namespace JLHHJSvr.Excutor
 {
@@ -25,17 +24,149 @@ namespace JLHHJSvr.Excutor
                 return;
             }
 
-            var erpHelper = HelperBase.GetHelper<ERPHelper>(null);
-
-            var parameters = new JObject();
-            if(request.mtrlid != null && request.mtrlid > 0)
+            using (var con = new SqlConnection(GlobalVar.ConnectionString))
+            using (var cmd = con.CreateCommand())
             {
-                parameters.Add("mtrlid", request.mtrlid);
-            }
+                con.Open();
+
+                using (var erp_con = new SqlConnection(BllHelper.GetERPConnectString(cmd)))
+                using (var erp_cmd = erp_con.CreateCommand())
+                {
+                    erp_con.Open();
+                    var mtrldefList = new List<erp_mtrldef>();
+
+                    var selectFields =
+                        "row_number() over (order by mtrlcode) as rowNum,u_mtrldef.mtrlid,mtrlcode,mtrlname,mtrlorigin,mtrltype," +
+                        "unit,mtrlmode,mtrlsectype,zxmtrlmode,ISNULL(noallocqty,0) AS noallocqty,u_storage.storagename,u_mtrldef.fjcnt,status_config,woodcode_config,pcode_config,statustype,woodcodetype,pcodetype,u_mtrldef.scid";
+                    var outputFields =
+                        "rowNum,mtrlid,mtrlcode,mtrlname,mtrlorigin,mtrltype,unit,mtrlmode,mtrlsectype,zxmtrlmode,noallocqty,storagename," +
+                        "fjcnt,status_config,woodcode_config,pcode_config,statustype,woodcodetype,pcodetype,scid";
+
+                    if (request.simpleField != 1)
+                    {
+                        selectFields +=
+                            ",handtype,mtrlengname,barcode,u_mtrldef.dscrp,issuliao,isuse,iflimitprice,net_weight,gross_weight,cubage,prdpackcode,opdate,opemp";
+                        outputFields +=
+                            ",handtype,mtrlengname,barcode,u_mtrldef.dscrp,issuliao,isuse,iflimitprice,net_weight,gross_weight,cubage,prdpackcode,opdate,opemp";
+                    }
+                    var selectStr = string.Format(@"
+                    SELECT {0}
+                    FROM   u_mtrldef
+                            LEFT OUTER JOIN (SELECT Sum(noallocqty) noallocqty
+                                                    ,mtrlid
+                                            FROM   u_mtrlware
+                                            GROUP  BY mtrlid) AS vvv_mtrlware
+                                        ON vvv_mtrlware.mtrlid = u_mtrldef.mtrlid 
+                            LEFT JOIN u_mtrl_storage on u_mtrl_storage.mtrlid = u_mtrldef.mtrlid and u_mtrl_storage.dft = 1
+                            LEFT OUTER JOIN u_storage on u_storage.scid = u_mtrldef.scid and u_storage.storageid = u_mtrl_storage.storageid",
+                        selectFields);
+
+                    var whereList = new List<string>();
+                    var parms = new Dictionary<string, object>();
+
+                    ////查看有权限类别的物料
+                    //var mtrltypeids = UserHelper.ParsePowerStr(cmd, tokenData.empid, "mtrltypestr");
+
+                    //if (!string.IsNullOrEmpty(mtrltypeids))
+                    //{
+                    //    whereList.Add($"u_mtrldef.mtrltypeid IN {mtrltypeids}");
+                    //}
 
-            var list = erpHelper.GetERPList<erp_mtrldef>("GetL1Mtrldef", parameters);
+                    if (request.mtrlid > 0)
+                    {
+                        whereList.Add("u_mtrldef.mtrlid = @mtrlid");
+                        parms.Add("@mtrlid", request.mtrlid);
+                    }
+                    else
+                    {
+                        if (request.mtrlprp != null && request.mtrlprp != -1)
+                        {
+                            whereList.Add("u_mtrldef.mtrlprp = @mtrlprp");
+                            parms.Add("@mtrlprp", request.mtrlprp);
+                        }
+                        if (request.mtrltypeid != null && request.mtrltypeid != -1)
+                        {
+                            whereList.Add("u_mtrldef.mtrltypeid = @mtrltypeid");
+                            parms.Add("@mtrltypeid", request.mtrltypeid);
+                        }
+                        if (request.storageid != null && request.storageid != -1)
+                        {
+                            whereList.Add(
+                                "EXISTS (SELECT mtrlwareid FROM u_mtrlware WHERE mtrlid = u_mtrldef.mtrlid AND storageid = @storageid)");
+                            parms.Add("@storageid", request.storageid);
+                        }
+                        if (request.mtrlorigin != null && request.mtrlorigin != -1)
+                        {
+                            whereList.Add("u_mtrldef.mtrlorigin = @mtrlorigin");
+                            parms.Add("@mtrlorigin", request.mtrlorigin);
+                        }
+                        if (request.isuse != null && request.isuse != -1)
+                        {
+                            whereList.Add("u_mtrldef.isuse = @isuse");
+                            parms.Add("@isuse", request.isuse);
+                        }
+                        if (!string.IsNullOrEmpty(request.keyword))
+                        {
+                            whereList.Add(@"(u_mtrldef.mtrlcode LIKE @keyword) 
+                                            OR (u_mtrldef.mtrlname LIKE @keyword) 
+                                            OR (u_mtrldef.mtrlmode LIKE @keyword) 
+                                            OR (u_mtrldef.mtrlsectype LIKE @keyword) 
+                                            OR (u_mtrldef.zxmtrlmode LIKE @keyword)
+                                            OR (u_mtrldef.usermtrlmode LIKE @keyword)
+                                            OR (u_mtrldef.plancode LIKE @keyword)");
+                            parms.Add("@keyword", "%" + request.keyword + "%");
+                        }
 
-            rslt.mtrldefList = list;
+                        if (!string.IsNullOrEmpty(request.mtrlcode))
+                        {
+                            whereList.Add("u_mtrldef.mtrlcode LIKE @mtrlcode");
+                            parms.Add("@mtrlcode", "%" + request.mtrlcode + "%");
+                        }
+
+                        if (!string.IsNullOrEmpty(request.mtrlname))
+                        {
+                            whereList.Add("u_mtrldef.mtrlname LIKE @mtrlname");
+                            parms.Add("@mtrlname", "%" + request.mtrlname + "%");
+                        }
+
+                        if (!string.IsNullOrEmpty(request.mtrlmode))
+                        {
+                            whereList.Add("u_mtrldef.mtrlmode LIKE @mtrlmode");
+                            parms.Add("@mtrlmode", "%" + request.mtrlmode + "%");
+                        }
+
+                        if (!string.IsNullOrEmpty(request.mtrlsectype))
+                        {
+                            whereList.Add("u_mtrldef.mtrlsectype LIKE @mtrlsectype");
+                            parms.Add("@mtrlsectype", "%" + request.mtrlsectype + "%");
+                        }
+
+                        if (!string.IsNullOrEmpty(request.zxmtrlmode))
+                        {
+                            whereList.Add("u_mtrldef.zxmtrlmode LIKE @zxmtrlmode");
+                            parms.Add("@zxmtrlmode", "%" + request.zxmtrlmode + "%");
+                        }
+
+                        if (!string.IsNullOrEmpty(request.usermtrlmode))
+                        {
+                            whereList.Add("u_mtrldef.usermtrlmode LIKE @usermtrlmode");
+                            parms.Add("@usermtrlmode", "%" + request.usermtrlmode + "%");
+                        }
+
+                        if (!string.IsNullOrEmpty(request.plancode))
+                        {
+                            whereList.Add("u_mtrldef.plancode LIKE @plancode");
+                            parms.Add("@plancode", "%" + request.plancode + "%");
+                        }
+                    }
+                    var whereStr = ListEx.GetWhereStr(whereList);
+                    var orderStr = "mtrlcode";
+                    DbSqlHelper.SelectJoin(erp_cmd, selectStr, whereStr, parms, orderStr, outputFields, request.pageindex,
+                        request.pagesize, mtrldefList);
+
+                    rslt.mtrldefList = mtrldefList;
+                }
+            }
         }
     }
 }

+ 1 - 2
JLHHJSvr/Excutor/SaveBedNetAreaExcutor.cs

@@ -48,17 +48,16 @@ namespace JLHHJSvr.Excutor
                 {
                     try
                     {
+                        var fields = "areaid,areaname,area_1,area_2,area_3,area_4,area_5,area_6,area_7,area_8,area_9,area_10,area_11,area_12,area_13,area_14,area_15";
                         if (request.area.areaid <= 0)
                         {
                             request.area.areaid = BllHelper.GetID(cmd, "u_bednet_area");
 
-                            var fields = @"areaid,areaname,area_1,area_2,area_3,area_4,area_5,area_6,area_7";
                             DbSqlHelper.Insert(cmd, "u_bednet_area", null, request.area, fields);
                         }
                         else
                         {
                             //修改
-                            var fields = @"areaname,area_1,area_2,area_3,area_4,area_5,area_6,area_7";
                             DbSqlHelper.Update(cmd, "u_bednet_area", null, request.area, "areaid", fields);
                         }
 

+ 3 - 73
JLHHJSvr/Excutor/SaveMattressBcpExcutor.cs

@@ -6,6 +6,7 @@ using System.Text;
 using JLHHJSvr.BLL;
 using JLHHJSvr.Com;
 using JLHHJSvr.Com.Model;
+using JLHHJSvr.Helper;
 using JLHHJSvr.LJException;
 using JLHHJSvr.Tools;
 using LJLib.DAL.SQL;
@@ -46,80 +47,9 @@ namespace JLHHJSvr.Excutor
                 {
                     try
                     {
-                        var dtNow = DateTime.Now;
+                        var helper = HelperBase.GetHelper<MattressHelper>(cmd, new HelperBase.Context() { tokendata = tokendata });
 
-                        var fields = @"billdate,semi_finished_type,semi_finished_code,semi_finished_name,dscrp,production_size,hemming_process,
-                                        hemmed_size,shrinkage_rate,elongation_rate,opemp,opdate,auditemp,auditdate";
-                        var fieldsMx = "billid,printid,mtrlid,formulaid,chastr,thickness,qty,erp_mtrlid,usenum,usedenom";
-
-                        if (request.mattress.billid <= 0)
-                        {
-                            //新建
-                            fields += ",billid,billcode";
-
-                            request.mattress.opdate = dtNow;
-                            request.mattress.opemp = tokendata.username;
-
-                            request.mattress.billid = BllHelper.GetID(cmd, "u_semi_finished_product");
-
-                            switch(request.mattress.semi_finished_type)
-                            {
-                                case 901:
-                                    request.mattress.billcode = "JM";
-                                    break;
-                                case 902:
-                                    request.mattress.billcode = "JD";
-                                    break;
-                                case 903:
-                                    request.mattress.billcode = "BC";
-                                    break;
-                                case 904:
-                                    request.mattress.billcode = "XC";
-                                    break;
-                                case 905:
-                                    request.mattress.billcode = "VC";
-                                    break;
-                            }
-
-                            // 编号-年月日+流水
-                            request.mattress.billcode = $"{request.mattress.billcode}-{dtNow.ToString("yyyyMMdd")}{(request.mattress.billid.Value % 10000).ToString("D4")}";
-
-                            DbSqlHelper.Insert(cmd, "u_semi_finished_product", null, request.mattress, fields);
-                        }
-                        else
-                        {
-                            //修改
-                            cmd.CommandText = @"DELETE FROM u_semi_finished_product_mx WHERE billid = @billid";
-                            cmd.Parameters.Clear();
-                            cmd.Parameters.AddWithValue("@billid", request.mattress.billid);
-                            cmd.ExecuteNonQuery();
-
-                            DbSqlHelper.Update(cmd, "u_semi_finished_product", null, request.mattress, "billid", fields);
-                        }
-
-                        var cnt = 0;
-                        foreach (var mx in request.mattress.mxlist)
-                        {
-                            AutoInit.AutoInitS(cmd, mx);
-
-                            mx.billid = request.mattress.billid;
-                            mx.printid = ++cnt;
-
-                            DbSqlHelper.Insert(cmd, "u_semi_finished_product_mx", null, mx, fieldsMx);
-                        }
-
-                        var hisprice = new u_his_price
-                        {
-                            bednetid_mattressid = request.mattress.billid,
-                            typeid = 2,
-                            cmpdate = dtNow,
-                            cmpemp = tokendata.username,
-                            nottax_dept_cost = 0,
-                            dept_cost = 0,
-                            foreign_cost = 0
-                        };
-                        var fieldsHs = "bednetid_mattressid, typeid, cmpdate, cmpemp, nottax_dept_cost, dept_cost, foreign_cost";
-                        DbSqlHelper.Insert(cmd, "u_his_price", null, hisprice, fieldsHs);
+                        helper.SaveMattressBcp(request.mattress);
 
                         cmd.Transaction.Commit();
 

+ 5 - 3
JLHHJSvr/GlobalVar/GlobalVar.cs

@@ -194,6 +194,7 @@ namespace JLHHJSvr
 
                 excutorManager.AddMap("GetComputeMattress", typeof(GetComputeMattressRequest), new GetComputeMattressExcutor());// 计算床垫报价
                 excutorManager.AddMap("GetComputeBednet", typeof(GetComputeBednetRequest), new GetComputeBednetExcutor());// 计算床网报价
+                excutorManager.AddMap("GetComputeSpring", typeof(GetComputeSpringRequest), new GetComputeSpringExcutor());// 计算弹簧数量
                 excutorManager.AddMap("CopyMattressAudited", typeof(CopyMattressAuditedRequest), new CopyMattressAuditedExcutor());// 复制审核床垫报价
                 excutorManager.AddMap("ReCalculateNoAudit", typeof(ReCalculateNoAuditRequest), new ReCalculateNoAuditExcutor());// 重算床垫报价
                 excutorManager.AddMap("ReCalculateBedNetNoAudit", typeof(ReCalculateBedNetNoAuditRequest), new ReCalculateBedNetNoAuditExcutor());// 重算床网报价
@@ -205,12 +206,13 @@ namespace JLHHJSvr
                 excutorManager.AddMap("SaveMattressInterface", typeof(SaveMattressInterfaceRequest), new SaveMattressInterfaceExcutor());// 床垫接口清单补充审核撤审
                 excutorManager.AddMap("RefreshMattressInterface", typeof(RefreshMattressInterfaceRequest), new RefreshMattressInterfaceExcutor());// 刷新床垫配置清单
                 excutorManager.AddMap("RefreshMattressInterfaceQd", typeof(RefreshMattressInterfaceQdRequest), new RefreshMattressInterfaceQdExcutor());// 刷新床垫清单
+                excutorManager.AddMap("CreatMtrlPf", typeof(CreatMtrlPfRequest), new CreatMtrlPfExcutor());// 生成L1清单
 
                 excutorManager.AddMap("GetERPMtrldefList", typeof(GetERPMtrldefListRequest), new GetERPMtrldefListExcutor());// 获取ERP物料资料
                 excutorManager.AddMap("GetERPConfigureList", typeof(GetERPConfigureListRequest), new GetERPConfigureListExcutor());// 获取ERP配置资料
-                excutorManager.AddMap("GetERPWrkGrpList", typeof(GetERPWrkGrpListRequest), new GetERPWrkGrpListExcutor());// 获取ERP配置资料
-                excutorManager.AddMap("GetERPMtrlTypeList", typeof(GetERPMtrlTypeListRequest), new GetERPMtrlTypeListExcutor());// 获取ERP配置资料
-                excutorManager.AddMap("GetMattressInterfaceList", typeof(GetMattressInterfaceListRequest), new GetMattressInterfaceListExcutor());// 获取ERP配置资料
+                excutorManager.AddMap("GetERPWrkGrpList", typeof(GetERPWrkGrpListRequest), new GetERPWrkGrpListExcutor());// 获取工组列表
+                excutorManager.AddMap("GetERPMtrlTypeList", typeof(GetERPMtrlTypeListRequest), new GetERPMtrlTypeListExcutor());// 获取ERP物料类型
+                excutorManager.AddMap("GetMattressInterfaceList", typeof(GetMattressInterfaceListRequest), new GetMattressInterfaceListExcutor());// 获取产品清单明细
             }
             catch (Exception ex)
             {

文件差异内容过多而无法显示
+ 104 - 12
JLHHJSvr/Helper/BedNetHelper.cs


+ 1 - 1
JLHHJSvr/Helper/CalculateHepler.cs

@@ -13,7 +13,7 @@ namespace JLHHJSvr.Helper
 {
     internal class CalculateHepler : HelperBase
     {
-        public static string ConvertToEnglishSymbols(string input)
+        public static string ConvertToEnglishSymbols(string input) 
         {
             input = input.Replace("(", "(")
                  .Replace(")", ")")

+ 9 - 6
JLHHJSvr/Helper/InterfaceHelper.cs

@@ -1010,20 +1010,23 @@ namespace JLHHJSvr.Helper
 
             return qdList;
         }
+        /// <summary>
+        /// wf_fine_erp_prdpf
+        /// </summary>
+        /// <param name="qdList"></param>
+        /// <param name="interfaceList"></param>
         public void MattressInterfaceFindERPPrdPf(List<u_mattress_interface_qd> qdList,List<u_mattress_interface> interfaceList)
         {
             foreach(var mx in qdList)
             {
-                if(mx.mtrlid != null && mx.mtrlid > 0 && (mx.erp_mtrlid == null || mx.erp_mtrlid <= 0))
+                // 带出有设置 的erp_mtrlid
+                if (mx.erp_mtrlid == 0 && mx.mtrlid != null && mx.mtrlid > 0)
                 {
                     var mtrldef = new u_mtrl_price() { mtrlid = mx.mtrlid };
-                    if(DbSqlHelper.SelectOne(cmd, mtrldef, "erp_mtrlid") == 1)
+                    if (DbSqlHelper.SelectOne(cmd, mtrldef, "erp_mtrlid") == 1)
                     {
                         mx.erp_mtrlid = mtrldef.erp_mtrlid;
-                    }
-                }else
-                {
-                    mx.erp_mtrlid = 0;
+                    } 
                 }
             }
 

文件差异内容过多而无法显示
+ 209 - 8
JLHHJSvr/Helper/MattressHelper.cs


+ 8 - 7
JLHHJSvr/JLHHJSvr.csproj

@@ -105,6 +105,7 @@
     <Compile Include="Com\GetBedNetVarList.cs" />
     <Compile Include="Com\GetBillList.cs" />
     <Compile Include="Com\GetCarList.cs" />
+    <Compile Include="Com\GetComputeSpring.cs" />
     <Compile Include="Com\GetERPMtrlTypeList.cs" />
     <Compile Include="Com\GetMattressImportDW2.cs" />
     <Compile Include="Com\GetMattressPackagMx.cs" />
@@ -116,7 +117,6 @@
     <Compile Include="Com\GetERPMtrldefList.cs" />
     <Compile Include="Com\GetERPWrkGrpList.cs" />
     <Compile Include="Com\GetFileByMd5.cs" />
-    <Compile Include="Com\GetMattressImportDW2.cs" />
     <Compile Include="Com\GetMattressInterfaceList.cs" />
     <Compile Include="Com\GetMtrlDefList.cs" />
     <Compile Include="Com\GetMtrlTypeList.cs" />
@@ -128,8 +128,11 @@
     <Compile Include="Com\MattressYWAudit.cs" />
     <Compile Include="Com\Model\ColumnItem.cs" />
     <Compile Include="Com\Model\erp_configure_code.cs" />
+    <Compile Include="Com\Model\erp_prdpf.cs" />
+    <Compile Include="Com\Model\erp_mtrl_df.cs" />
     <Compile Include="Com\Model\erp_mtrldef.cs" />
     <Compile Include="Com\Model\erp_sc_workgroup.cs" />
+    <Compile Include="Com\Model\Recursion2.cs" />
     <Compile Include="Com\Model\replacement.cs" />
     <Compile Include="Com\Model\Recursion.cs" />
     <Compile Include="Com\Model\sys_func_pwr.cs" />
@@ -151,7 +154,6 @@
     <Compile Include="Com\Model\u_mattress_interface_qd.cs" />
     <Compile Include="Com\Model\u_mattress_interface.cs" />
     <Compile Include="Com\Model\u_mattress_mx_mtrl.cs" />
-    <Compile Include="Com\Model\u_mtrl_price.cs" />
     <Compile Include="Com\Model\u_mattress.cs" />
     <Compile Include="Com\Model\u_mattress_formula.cs" />
     <Compile Include="Com\Model\u_mattress_type.cs" />
@@ -175,8 +177,6 @@
     <Compile Include="Com\SaveBedNet.cs" />
     <Compile Include="Com\SaveBedNetArea.cs" />
     <Compile Include="Com\SaveBedNetType.cs" />
-    <Compile Include="Com\Model\u_workmanship_add.cs" />
-    <Compile Include="Com\SaveBedNetType.cs" />
     <Compile Include="Com\SaveBedNetVar.cs" />
     <Compile Include="Com\SaveConfigureCode.cs" />
     <Compile Include="Com\SaveConfigureCodeMx.cs" />
@@ -187,6 +187,7 @@
     <Compile Include="Com\SaveMattress.cs" />
     <Compile Include="Com\SaveMattressBcp.cs" />
     <Compile Include="Com\SaveMattressFormula.cs" />
+    <Compile Include="Com\CreatMtrlPf.cs" />
     <Compile Include="Com\SaveMattressInterface.cs" />
     <Compile Include="Com\SaveMattressType.cs" />
     <Compile Include="Com\SaveMtrlDef.cs" />
@@ -222,7 +223,6 @@
     <Compile Include="Com\SetDwLayout.cs" />
     <Compile Include="Com\GetSysUserFileString.cs" />
     <Compile Include="Com\SetOption.cs" />
-    <Compile Include="Com\UpdateMtrldefPrice.cs" />
     <Compile Include="CRC64\CRC64.cs" />
     <Compile Include="DBA\DAL_SQLite\DbSqlHelper.cs" />
     <Compile Include="DBA\DAL_SQLite\SqlServerEngine.cs" />
@@ -284,6 +284,7 @@
     <Compile Include="Excutor\GetBedNetVarListExcutor.cs" />
     <Compile Include="Excutor\GetBillListExcutor.cs" />
     <Compile Include="Excutor\GetCarListExcutor.cs" />
+    <Compile Include="Excutor\GetComputeSpringExcutor.cs" />
     <Compile Include="Excutor\GetERPMtrlTypeListExcutor.cs" />
     <Compile Include="Excutor\GetMattressPackagMxExcutor.cs" />
     <Compile Include="Excutor\GetMattressImportDW2Excutor.cs" />
@@ -295,7 +296,6 @@
     <Compile Include="Excutor\GetERPMtrldefListExcutor.cs" />
     <Compile Include="Excutor\GetERPWrkGrpListExcutor.cs" />
     <Compile Include="Excutor\GetFileByMd5Excutor.cs" />
-    <Compile Include="Excutor\GetMattressImportDW2Excutor.cs" />
     <Compile Include="Excutor\GetMattressInterfaceListExcutor.cs" />
     <Compile Include="Excutor\GetMtrlDefListExcutor.cs" />
     <Compile Include="Excutor\GetMtrlTypeListExcutor.cs" />
@@ -333,6 +333,7 @@
     <Compile Include="Excutor\SaveMattressAuditingExcutor.cs" />
     <Compile Include="Excutor\SaveMattressBcpExcutor.cs" />
     <Compile Include="Excutor\SaveMattressFormulaExcutor.cs" />
+    <Compile Include="Excutor\CreatMtrlPfExcutor.cs" />
     <Compile Include="Excutor\SaveMattressInterfaceExcutor.cs" />
     <Compile Include="Excutor\SaveMattressTypeExcutor.cs" />
     <Compile Include="Excutor\SaveMtrlDefExcutor.cs" />
@@ -350,7 +351,6 @@
     <Compile Include="Excutor\GetSysUserFileStringExcutor.cs" />
     <Compile Include="Excutor\SetSysUserFileStringExcutor.cs" />
     <Compile Include="Excutor\SetOptionExcutor.cs" />
-    <Compile Include="Excutor\UpdateMtrldefPriceExcutor.cs" />
     <Compile Include="Helper\BedNetHelper.cs" />
     <Compile Include="Helper\ERPHelper.cs" />
     <Compile Include="Helper\InterfaceHelper.cs" />
@@ -360,6 +360,7 @@
     <Compile Include="LJFrameWork\LJLib.Method\SortedListEx.cs" />
     <Compile Include="LJFrameWork\Tools\LJExprParser.cs" />
     <Compile Include="LJFrameWork\Tools\LJHttpUtil.cs" />
+    <Compile Include="LJFrameWork\Tools\menuRecursion.cs" />
     <Compile Include="LJLib.HttpServer\IFileDBModel.cs" />
     <Compile Include="LJLib.HttpServer\SimpleHttpServer.cs" />
     <Compile Include="LJLib.HttpServer\LJHttpProcessor.cs" />

+ 47 - 0
JLHHJSvr/LJFrameWork/Tools/menuRecursion.cs

@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using JLHHJSvr.Com.Model;
+
+namespace JLHHJSvr.LJFramework.Tools
+{
+    public class menuRecursion
+    {
+        /// <summary>
+        /// 递归查询
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="TList">要查找的全部内容</param>
+        /// <param name="pkName">要查找内容的主ID,名称,父ID</param>
+        /// <param name="ReList">输出结构</param>
+        public void GetRecursions<T>(List<T> TList, PkName pkName, List<Recursion2> ReList, List<int> idList)
+        {
+            //if (pkName.MainField == string.Empty || pkName.MainName == string.Empty || pkName.ParentField == string.Empty)
+            //{
+            //    return;
+            //}
+
+            var NTList = TList.Where(t => idList.IndexOf((int)t.GetType().GetProperty(pkName.MainField).GetValue(t)) == -1).ToList();
+            foreach (var mx in ReList)
+            {
+                var parentid = mx.value;
+                var tmpList = NTList.Where(t => (int)t.GetType().GetProperty(pkName.ParentField).GetValue(t) == parentid).ToList();
+                if (tmpList.Count > 0)
+                {
+                    mx.children = new List<Recursion2>();
+                    foreach (var tmp in tmpList)
+                    {
+                        var Child = new Recursion2()
+                        {
+                            text = Convert.ToString(tmp.GetType().GetProperty(pkName.MainName).GetValue(tmp)),
+                            value = Convert.ToInt32(tmp.GetType().GetProperty(pkName.MainField).GetValue(tmp))
+                        };
+                        mx.children.Add(Child);
+                        idList.Add(Child.value);
+                    }
+                    GetRecursions(TList, pkName, mx.children, idList);
+                }
+            }
+        }
+    }
+}