Browse Source

保存物料清单改成调业务后台接口SavePrdPf

shuiping150 4 months ago
parent
commit
68c787a7eb
2 changed files with 111 additions and 120 deletions
  1. 110 119
      JLHHJSvr/Excutor/CreatMtrlPfExcutor.cs
  2. 1 1
      JLHHJSvr/Helper/ERPHelper.cs

+ 110 - 119
JLHHJSvr/Excutor/CreatMtrlPfExcutor.cs

@@ -13,6 +13,7 @@ using JLHHJSvr.LJFramework.Tools;
 using JLHHJSvr.Tools;
 using LJLib.DAL.SQL;
 using LJLib.Net.SPI.Server;
+using Newtonsoft.Json.Linq;
 
 namespace JLHHJSvr.Excutor
 {
@@ -51,135 +52,125 @@ namespace JLHHJSvr.Excutor
                     return;
                 }
 
-                using (var erp_con = new SqlConnection(BllHelper.GetERPConnectString(cmd)))
-                using (var erp_cmd = erp_con.CreateCommand())
+                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);
+
+
+                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 l1Req = new SavePrdPfRequest()
                 {
-                    erp_con.Open();
-
-                    try
+                    mtrl_pf = new u_mtrl_pf()
                     {
-                        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();
+                        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
+                    },
+                    prdPfs = new List<u_PrdPF>()
+                };
+
+                var i = 0;
+                foreach (var mx in mattress_interface_qd_list)
+                {
 
-                        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)
                         {
-
-                            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++;
+                            ll_cnt_temp++;
                         }
                     }
-                    catch (Exception e)
+                    if (ll_cnt_temp > 0)
                     {
-                        cmd.Transaction.Rollback();
-                        rslt.ErrMsg = e.Message;
+                        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
+                    };
+                    l1Req.prdPfs.Add(prdpf);
+                    i++;
                 }
+
+                var l1Helper = HelperBase.GetHelper<ERPHelper>(cmd);
+                l1Helper.context = new HelperBase.Context() { tokendata = tokendata };
+                
+                l1Helper.CheckLogin();
+                l1Req.token = GlobalVar.ERP_TOKEN;
+
+                var l1Rslt = l1Helper.DoExecute("SavePrdPf", JObject.FromObject(l1Req));
+                rslt.ErrMsg = $"{l1Rslt.GetValue("ErrMsg")}";
             }
         }
+
+        /// <summary>
+        /// 保存物料清单请求参数,没有传入的参数按默认值
+        /// </summary>
+        private class SavePrdPfRequest
+        {
+            public string token { get; set; }
+            /// <summary>
+            /// 物料清单主表 mtrlid,pfcode,flag,affirmflag,Ifdft,inuse,wrkid
+            /// </summary>
+            public u_mtrl_pf mtrl_pf { get; set; }
+            /// <summary>
+            /// 物料清单明细表 mtrlid,pfcode,sonmtrlid,printid,wrkgrpid,sonpfcode,Sonscale,sonloss,sondecloss
+            /// pfgroup,dscrp,pfgroupqty,pfklmode,azcode,promode
+            /// </summary>
+            public List<u_PrdPF> prdPfs { get; set; }
+        }
     }
 }

+ 1 - 1
JLHHJSvr/Helper/ERPHelper.cs

@@ -43,7 +43,7 @@ namespace JLHHJSvr.Helper
                 throw new LJCommonException($"ERP登录失败: {ex.Message}");
             }
         }
-        private void CheckLogin()
+        public void CheckLogin()
         {
             if(GlobalVar.ERP_TOKEN == null || string.IsNullOrEmpty(GlobalVar.ERP_TOKEN))
             {