public static void Test() { var s = FrameDLRObject.IsJsonArrayThen(@"[{ ""Name"":""3"", ""Value"":""3"" }]"); var xml = @"<xml><ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName> <FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName> <CreateTime>1408090651</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[pic_sysphoto]]></Event> <EventKey><![CDATA[6]]></EventKey> <SendPicsInfo><Count>1</Count> <PicList><item><PicMd5Sum><![CDATA[1b5f7c23b5bf75682a53e7b6d163e185]]></PicMd5Sum> </item> </PicList> </SendPicsInfo> </xml>"; XmlDocument doc = new XmlDocument(); doc.XmlResolver = null; doc.LoadXml(xml); var root = doc.FirstChild; var f = FrameDLRObject.CreateInstance(xml, EFFC.Frame.Net.Base.Constants.FrameDLRFlags.SensitiveCase); //var services = new ServiceCollection(); //services.AddNodeServices(options => { // options.LaunchWithDebugging = false; // options.ProjectPath = Path.Combine(ComFunc.GetProjectRoot(), "js"); //}); //var serviceProvider = services.BuildServiceProvider(); //var nodeServices = serviceProvider.GetRequiredService<INodeServices>(); //for (int i = 0; i < 1; i++) //{ // var dobj = FrameDLRObject.CreateInstance(); // dobj.id = "1100"; // var cc = new ConsoleL(); // var result = nodeServices.InvokeAsync<string>("addNumbers.js", cc).Result; // Console.WriteLine(result); //} }
object Use() { var items = ComFunc.UrlDecode(ComFunc.nvl(PostDataD.items)); var jsonstr = ComFunc.IsBase64Then(items); object[] parray = FrameDLRObject.IsJsonArrayThen(jsonstr); if (!IsValidBy("参数格式不正确", () => { var rtn = jsonstr != "" && parray != null; if (rtn) { foreach (dynamic item in parray) { if (ComFunc.nvl(item.hw_contract_no) != "" && ComFunc.nvl(item.prod_code_sale) != "" && IntStd.IsInt(item.quantity)) { rtn = rtn && true; } else { rtn = rtn && false; } } } return(rtn); })) { return(null); } var merge_parray = new Dictionary <string, int>(); foreach (dynamic pitem in parray) { var key = $"{pitem.hw_contract_no}|{pitem.prod_code_sale}"; if (merge_parray.ContainsKey(key)) { merge_parray[key] += IntStd.ParseStd(pitem.quantity).Value; } else { merge_parray[key] = IntStd.ParseStd(pitem.quantity).Value; } } lock (lockobj) { var up = DB.NewDBUnitParameter(); BeginTrans(); var rtnlist = new List <object>(); foreach (var pitem in merge_parray) { var splitstr = pitem.Key.Split("|"); var hw_contract_no = splitstr[0]; var prod_code_sale = splitstr[1]; var s = from t in DB.LamdaTable("hw_po", "a") join t2 in DB.LamdaTable("hw_po_line", "b") on t.hw_contract_no equals t2.hw_contract_no where t2.prod_code_sale == prod_code_sale && t2.hw_contract_no == hw_contract_no select t2; var result = DB.ExcuteLamda(up, s); if (!IsValidBy("资料无效或参数无效", () => result.QueryTable.RowLength > 0)) { return(null); } dynamic item = result.QueryData <FrameDLRObject>()[0]; if (!IsValidBy("核销数量不正确", () => IntStd.IsNotIntThen(item.freeze_quantity) >= pitem.Value)) { //RollBack(); return(null); } DB.QuickUpdate(up, "hw_po_line", new { freeze_quantity = IntStd.IsNotIntThen(item.freeze_quantity) - pitem.Value, used_quantity = IntStd.IsNotIntThen(item.used_quantity) + pitem.Value }, new { hw_contract_no = item.hw_contract_no, po_line_no = item.po_line_no }); } CommitTrans(); return("success"); } }