Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624
  1. Imports System.Data.Common
  2. Imports System.Data.SqlClient
  3. Imports System.Net
  4. Imports System.Net.Http
  5. Imports LrGetToken
  6. Imports System.Text
  7. Imports Newtonsoft.Json
  8. Imports Newtonsoft.Json.Linq
  9. Imports System.Web
  10. Imports System.ServiceModel.Security
  11. Imports System.Web.UI.WebControls.WebParts
  12. Imports System.Web.UI.WebControls
  13. Public Class FrmTest
  14. Dim strAppSecret As String = ""
  15. Dim strAccessToken As String = ""
  16. Dim uId As String = ""
  17. Dim dt_global As New DataTable()
  18. Dim dt_global2 As New DataTable()
  19. Dim cmd As New SqlCommand
  20. Dim da As New SqlDataAdapter
  21. Dim dt As New DataTable
  22. Dim conn As New SqlConnection
  23. Dim sql As String = ""
  24. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  25. Dim updated_time As DateTime
  26. updated_time = DateTime.Now ' 你可以把它设置为具体的时间,或者从 Excel 中获取
  27. Dim updated_time_str As String = updated_time.ToString("yyyy-MM-dd HH:mm:ss")
  28. conn.ConnectionString = connstring
  29. conn.Open()
  30. sql = "select top(1) token,updated_time from hf_00_token order by updated_time desc"
  31. cmd.CommandText = sql
  32. cmd.Connection = conn
  33. cmd.ExecuteNonQuery()
  34. Dim my_result As String
  35. ' 获取返回结果
  36. If cmd.ExecuteScalar Is Nothing Then
  37. GetToken()
  38. ' 更新数据库或者存储新的 token
  39. sql = "insert into hf_00_token (token,updated_time) values('" & gAppToken & "','" & updated_time_str & "')"
  40. cmd.CommandText = sql
  41. If cmd.ExecuteNonQuery() = 1 Then
  42. MsgBox("取得新Token")
  43. Else
  44. MsgBox("发生异常")
  45. End If
  46. Else
  47. ' 获取 updated_time 和 token
  48. Using reader As SqlDataReader = cmd.ExecuteReader()
  49. If reader.HasRows Then
  50. reader.Read()
  51. gAppToken = reader("token").ToString()
  52. updated_time = Convert.ToDateTime(reader("updated_time"))
  53. End If
  54. End Using
  55. ' 如果没有返回 token,提示没有找到数据
  56. If gAppToken = "" Then
  57. MsgBox("No data found")
  58. Else
  59. ' 将 updated_time 加上 24 小时
  60. Dim token_expiry_time As DateTime = updated_time.AddHours(24)
  61. gTokenValidTime = token_expiry_time
  62. ' 对比 token 是否过期
  63. If token_expiry_time < DateTime.Now Then
  64. ' 如果过期,则重新获取 token
  65. MsgBox("Token 过期. 重新取得...")
  66. ' 在这里添加获取新的 token 的代码,例如调用一个方法来获取新的 token
  67. sql = "delete from hf_00_token"
  68. cmd.CommandText = sql
  69. cmd.ExecuteScalar()
  70. GetToken()
  71. ' 更新数据库或者存储新的 token
  72. sql = "insert into hf_00_token (token,updated_time) values('" & gAppToken & "','" & Now.ToString("yyyy-MM-dd HH:mm:ss") & "')"
  73. cmd.CommandText = sql
  74. If cmd.ExecuteNonQuery() = 1 Then
  75. MsgBox("Token更新完成")
  76. Else
  77. MsgBox("发生异常")
  78. End If
  79. Else
  80. ' 如果未过期,使用现有 token
  81. MsgBox("Token有效期:" & vbCrLf & gTokenValidTime)
  82. End If
  83. End If
  84. End If
  85. Me.DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  86. Me.dgv_detail.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  87. End Sub
  88. Private Sub GetToken()
  89. Dim xx As String = ConvertTimestampToDate(1742491933000)
  90. Dim clsX As New LrGetToken.clsGetToken()
  91. strAppSecret = clsX.GetAppSecretB(gClientID, gClientSecret, gAppkey, gInstanceID)
  92. If strAppSecret = "" Then
  93. Exit Sub
  94. End If
  95. Dim jo As JObject = JsonConvert.DeserializeObject(strAppSecret)
  96. strAppSecret = jo("data")(0).Item("appSecret")
  97. gAppToken = clsX.GetToken(gClientID, gClientSecret, gAppkey, strAppSecret)
  98. jo = JsonConvert.DeserializeObject(gAppToken)
  99. gAppToken = jo("data").Item("app-token")
  100. strAccessToken = jo("data").Item("access_token")
  101. uId = jo("data").Item("uid")
  102. TextBox1.Text = gAppToken
  103. TextBox4.Text = New Random().Next(100000000, 999999999)
  104. TextBox3.Text = Int((DateTime.Now.ToLocalTime() - DateTime.Parse("1970-01-01").ToLocalTime()).TotalSeconds)
  105. End Sub
  106. Private Sub btnGetMtrl_Click(sender As Object, e As EventArgs) Handles btnGetMtrl.Click
  107. Dim clsX As New LrGetToken.LrGetMtrlDatum
  108. Dim strJson As String = clsX.GetDatum(gClientID, gClientSecret, gAppkey, strAppSecret, gAppToken, "", "", "jdy/v2/bd/material", 1, 100)
  109. BindJsonToDataGridView(strJson)
  110. End Sub
  111. Private Sub btnGetDept_Click(sender As Object, e As EventArgs) Handles btnGetDept.Click '-----部门列表
  112. Dim clsX As New LrGetToken.LrGetMtrlDatum
  113. ' Dim strJson As String = clsX.GetDatum(clientID, clientSecret, appkey, strAppSecret, strAppToken, "", "", "jdy/v2/bd/department", 1, 100)
  114. End Sub
  115. Private Sub btnGetEmp_Click(sender As Object, e As EventArgs) Handles btnGetEmp.Click
  116. Dim clsX As New LrGetToken.LrGetMtrlDatum
  117. ' Dim strJson As String = clsX.GetDatum(clientID, clientSecret, appkey, strAppSecret, strAppToken, "", "", "jdy/v2/bd/emp", 1, 100)
  118. End Sub
  119. Private Sub btnGetUnits_Click(sender As Object, e As EventArgs) Handles btnGetUnits.Click '-
  120. Dim clsX As New LrGetToken.LrGetMtrlDatum
  121. ' Dim strJson As String = clsX.GetDatum(clientID, clientSecret, appkey, strAppSecret, strAppToken, "", "", "jdy/v2/bd/measure_unit", 1, 100)
  122. End Sub
  123. Private Sub btnGetLoc_Click(sender As Object, e As EventArgs) Handles btnGetLoc.Click
  124. Dim clsX As New LrGetToken.LrGetMtrlDatum
  125. ' Dim strJson As String = clsX.GetDatum(clientID, clientSecret, appkey, strAppSecret, strAppToken, "", "", "jdy/v2/bd/spaces", 1, 100)
  126. End Sub
  127. Private Sub btnSaveInStk_Click(sender As Object, e As EventArgs) Handles btnSaveInStk.Click
  128. Dim clsX As New LrGetToken.clsGetToken
  129. Dim strJson As String = clsX.SaveBill(gClientID, gClientSecret, gAppToken)
  130. End Sub
  131. 'Private Sub btnGetMtrlDetail_Click(sender As Object, e As EventArgs) Handles btnGetMtrlDetail.Click '-----物料详情
  132. ' Dim clsX As New LrGetToken.LrGetMtrlDatum
  133. ' Dim paramLst As New List(Of LrGetToken.LrParam)
  134. ' Dim param As New LrGetToken.LrParam()
  135. ' param.pKey = "id" : param.pValue = DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells("id").Value
  136. ' paramLst.Add(param)
  137. ' Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/bd/material_detail")
  138. ' Dim token As JToken = JToken.Parse(strJson)
  139. ' Dim clsXX As New LrGetToken.NodeAdder
  140. ' clsXX.AddNode(token, TreeView1.Nodes)
  141. ' ' 显示 TreeView
  142. ' TreeView1.ExpandAll()
  143. ' TreeView1.Visible = True
  144. ' ' dgv_detail.DataSource = dt_global2
  145. 'End Sub
  146. Public Class ImageData 'EmployeeBean
  147. Public Property PWidth As Integer
  148. Public Property PHeight As Integer
  149. Public Property BImagePath As String
  150. Public Property SavePath As String
  151. Public Property Data As String
  152. End Class
  153. Private Sub btnIcMoBill_Click(sender As Object, e As EventArgs) Handles btnIcMoBill.Click '-生产工单
  154. Dim clsX As New LrGetToken.LrGetMtrlDatum
  155. Dim paramLst As New List(Of LrGetToken.LrParam)
  156. Dim param As New LrGetToken.LrParam()
  157. param = New LrGetToken.LrParam()
  158. param.pKey = "bill_close_state" : param.pValue = "C"
  159. paramLst.Add(param)
  160. param = New LrGetToken.LrParam()
  161. param.pKey = "bill_status" : param.pValue = "C"
  162. paramLst.Add(param)
  163. param = New LrGetToken.LrParam()
  164. param.pKey = "end_date" : param.pValue = "2024-08-16"
  165. paramLst.Add(param)
  166. param = New LrGetToken.LrParam()
  167. param.pKey = "page_size" : param.pValue = "100"
  168. paramLst.Add(param)
  169. param = New LrGetToken.LrParam()
  170. param.pKey = "start_date" : param.pValue = "2024-08-16"
  171. paramLst.Add(param)
  172. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gClientSecret, paramLst, "jdy/v2/pm/mo_taskbill")
  173. End Sub
  174. Private Sub btnGetMoLst_Click(sender As Object, e As EventArgs) Handles btnGetMoLst.Click '-----生产工单详情'-
  175. Dim clsX As New LrGetToken.LrGetMtrlDatum
  176. Dim paramLst As New List(Of LrGetToken.LrParam)
  177. Dim param As New LrGetToken.LrParam()
  178. param = New LrGetToken.LrParam()
  179. param.pKey = "number" : param.pValue = "SCRW-20240820-00002"
  180. paramLst.Add(param)
  181. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gClientSecret, paramLst, "jdy/v2/pm/mo_taskbill_detail")
  182. End Sub
  183. Private Sub btnGetInStkLst_Click(sender As Object, e As EventArgs) '-----入库单列表 OK的
  184. Dim clsX As New LrGetToken.LrGetMtrlDatum
  185. Dim paramLst As New List(Of LrGetToken.LrParam)
  186. Dim param As New LrGetToken.LrParam()
  187. param = New LrGetToken.LrParam()
  188. param.pKey = "bill_status" : param.pValue = ""
  189. paramLst.Add(param)
  190. param = New LrGetToken.LrParam()
  191. param.pKey = "end_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  192. paramLst.Add(param)
  193. param = New LrGetToken.LrParam()
  194. param.pKey = "page" : param.pValue = "1"
  195. paramLst.Add(param)
  196. param = New LrGetToken.LrParam()
  197. param.pKey = "page_size" : param.pValue = "100"
  198. paramLst.Add(param)
  199. param = New LrGetToken.LrParam()
  200. param.pKey = "start_date" : param.pValue = dtp_start.Value.ToString("yyyy-MM-dd")
  201. paramLst.Add(param)
  202. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/inv_product")
  203. Product_in_detail(strJson)
  204. DataGridView1.DataSource = dt_global
  205. End Sub
  206. Private Sub btnGetInStkDetail_Click(sender As Object, e As EventArgs) '-----入库单明细 OK的
  207. 'Dim clsX As New LrGetToken.LrGetMtrlDatum
  208. 'Dim paramLst As New List(Of LrGetToken.LrParam)
  209. 'Dim param As New LrGetToken.LrParam()
  210. ''param = New LrGetToken.LrParam()
  211. ''param.pKey = "id" : param.pValue = "2151573134136962048"
  212. ''paramLst.Add(param)
  213. 'param = New LrGetToken.LrParam()
  214. 'param.pKey = "start_date" : param.pValue = dtp_start.Value.ToString("yyyy-MM-dd")
  215. 'paramLst.Add(param)
  216. 'param = New LrGetToken.LrParam()
  217. 'param.pKey = "end_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  218. 'paramLst.Add(param)
  219. 'Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/inv_product_detail")
  220. 'product_in_detail(strJson)
  221. End Sub
  222. Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged
  223. End Sub
  224. Private Sub DataGridView1_CellMouseUp(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseUp
  225. End Sub
  226. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '--------订单列表
  227. Dim sql As String = ""
  228. sql = "delete from hf_00_orders_main"
  229. cmd.CommandText = sql
  230. cmd.Connection = conn
  231. cmd.ExecuteNonQuery()
  232. sql = "delete from hf_00_orders_detail"
  233. cmd.CommandText = sql
  234. cmd.Connection = conn
  235. cmd.ExecuteNonQuery()
  236. Dim clsX As New LrGetToken.LrGetMtrlDatum
  237. Dim paramLst As New List(Of LrGetToken.LrParam)
  238. Dim param As New LrGetToken.LrParam()
  239. 'param = New LrGetToken.LrParam()
  240. 'param.pKey = "bill_close_state" : param.pValue = "C"
  241. 'paramLst.Add(param)
  242. param = New LrGetToken.LrParam()
  243. param.pKey = "end_bill_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  244. paramLst.Add(param)
  245. param = New LrGetToken.LrParam()
  246. param.pKey = "page" : param.pValue = 1
  247. paramLst.Add(param)
  248. param = New LrGetToken.LrParam()
  249. param.pKey = "page_size" : param.pValue = 100
  250. paramLst.Add(param)
  251. param = New LrGetToken.LrParam()
  252. param.pKey = "start_bill_date" : param.pValue = dtp_start.Value.ToString("yyyy-MM-dd")
  253. paramLst.Add(param)
  254. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/sal_order")
  255. BindJsonToDataGridView(strJson)
  256. End Sub
  257. Private Sub BindJsonToDataGridView(jsonStr As String)
  258. Dim order_id As String = ""
  259. Dim order_no As String = ""
  260. 'Dim card As String = ""
  261. Dim cust_id As String = ""
  262. Dim cust_name As String = ""
  263. Dim bill_date As String = ""
  264. Dim cust_number As String = ""
  265. Dim bill_close_state As String = ""
  266. Dim io_status As String = ""
  267. Dim real_io_status As String = ""
  268. Try
  269. ' 解析 JSON 数据
  270. Dim jsonData As JObject = JObject.Parse(jsonStr)
  271. 'Dim dt As New DataTable()
  272. ' 获取 total_page
  273. Dim totalPage As Integer = jsonData("data")("total_page")
  274. dt_global = New DataTable()
  275. ' 尝试获取 "rows"(方法1)
  276. Dim rows1 As JArray = Nothing
  277. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  278. rows1 = jsonData("data")("rows")
  279. End If
  280. ' 尝试获取 "data"(方法2)
  281. Dim rows2 As JObject = Nothing
  282. If jsonData("data") IsNot Nothing Then
  283. rows2 = jsonData("data")
  284. End If
  285. ' 处理方法1: 解析 "rows" (JArray)
  286. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  287. ' 取第一条数据的字段作为列名
  288. For Each prop As JProperty In rows1(0)
  289. dt_global.Columns.Add(prop.Name)
  290. Next
  291. ' 添加数据
  292. For Each item As JObject In rows1
  293. Dim row As DataRow = dt_global.NewRow()
  294. For Each prop As JProperty In item.Properties()
  295. row(prop.Name) = prop.Value.ToString()
  296. Next
  297. dt_global.Rows.Add(row)
  298. Next
  299. ElseIf rows2 IsNot Nothing Then
  300. ' 处理方法2: 解析 "material_entity" (JArray)
  301. Dim materialArray As JArray = rows2("material_entity")
  302. If materialArray IsNot Nothing AndAlso materialArray.Count > 0 Then
  303. ' 取第一条数据的字段作为列名
  304. For Each prop As JProperty In materialArray(0)
  305. dt_global.Columns.Add(prop.Name)
  306. Next
  307. ' 添加数据
  308. For Each item As JObject In materialArray
  309. Dim row As DataRow = dt_global.NewRow()
  310. For Each prop As JProperty In item.Properties()
  311. row(prop.Name) = prop.Value.ToString()
  312. Next
  313. dt_global.Rows.Add(row)
  314. Next
  315. Else
  316. MessageBox.Show("material_entity 为空,无法转换 DataTable")
  317. End If
  318. Else
  319. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  320. End If
  321. ' 绑定 DataGridView
  322. DataGridView1.DataSource = dt_global
  323. ' 获取数据库连接
  324. Dim conn As New SqlConnection(connstring)
  325. conn.Open()
  326. Dim sql As String = ""
  327. Dim clsX As New LrGetToken.LrGetMtrlDatum
  328. ' 遍历每一页的 rows
  329. For page As Integer = 1 To totalPage
  330. ' 更新 "page" 和 "page_size"
  331. Dim paramLst As New List(Of LrGetToken.LrParam)
  332. Dim param As New LrGetToken.LrParam()
  333. 'param.pKey = "bill_close_state"
  334. 'param.pValue = "C"
  335. 'paramLst.Add(param)
  336. param = New LrGetToken.LrParam()
  337. param.pKey = "page"
  338. param.pValue = page
  339. paramLst.Add(param)
  340. param = New LrGetToken.LrParam()
  341. param.pKey = "page_size"
  342. param.pValue = 100
  343. paramLst.Add(param)
  344. ' 调用 API 获取每页数据详请
  345. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/sal_order")
  346. Dim pageData As JObject = JObject.Parse(strJson)
  347. ' 获取当前页的 rows 数据
  348. Dim pageRows As JArray = pageData("data")("rows")
  349. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  350. ' 插入每页数据到数据库
  351. Dim dt_order As New DataTable
  352. dt_order.Columns.Add("id", GetType(String))
  353. dt_order.Columns.Add("bill_no", GetType(String))
  354. dt_order.Columns.Add("bill_date", GetType(DateTime))
  355. dt_order.Columns.Add("customer_id", GetType(String))
  356. dt_order.Columns.Add("customer_name", GetType(String))
  357. dt_order.Columns.Add("customer_number", GetType(String))
  358. dt_order.Columns.Add("bill_close_state", GetType(String))
  359. dt_order.Columns.Add("io_status", GetType(String))
  360. dt_order.Columns.Add("real_io_status", GetType(String))
  361. For Each item As JObject In pageRows
  362. dt_order.Rows.Add(item("id").ToString(), item("bill_no").ToString(), item("bill_date").ToString(), item("customer_id").ToString(), item("customer_name").ToString(), item("customer_number").ToString(), item("bill_close_state").ToString(), item("io_status").ToString(), item("real_io_status").ToString())
  363. Next
  364. ' 插入到数据库
  365. Using connection As New SqlConnection(connstring)
  366. connection.Open()
  367. Using bulkCopy As New SqlBulkCopy(connection)
  368. bulkCopy.DestinationTableName = "hf_00_orders_main"
  369. ' 4. 映射字段
  370. bulkCopy.ColumnMappings.Add("id", "id")
  371. bulkCopy.ColumnMappings.Add("bill_no", "bill_no")
  372. bulkCopy.ColumnMappings.Add("bill_date", "bill_date")
  373. bulkCopy.ColumnMappings.Add("customer_id", "customer_id")
  374. bulkCopy.ColumnMappings.Add("customer_name", "customer_name")
  375. bulkCopy.ColumnMappings.Add("customer_number", "customer_number")
  376. bulkCopy.ColumnMappings.Add("bill_close_state", "bill_close_state")
  377. bulkCopy.ColumnMappings.Add("io_status", "io_status")
  378. bulkCopy.ColumnMappings.Add("real_io_status", "real_io_status")
  379. Try
  380. ' 5. 执行批量插入
  381. bulkCopy.WriteToServer(dt_order)
  382. Console.WriteLine("数据批量插入成功!")
  383. Catch ex As Exception
  384. Console.WriteLine("插入数据失败:" & ex.Message)
  385. End Try
  386. End Using
  387. End Using
  388. End If
  389. Next
  390. Dim sql_detail As String = "select * from hf_00_orders_main" '----------------------------每张订单
  391. Dim cmd1 As New SqlCommand(sql_detail, conn)
  392. Dim da As New SqlDataAdapter
  393. Dim dt As New DataTable
  394. da.SelectCommand = cmd1
  395. da.Fill(dt)
  396. For x As Integer = 0 To dt.Rows.Count - 1 '--------------------每张订单写入明细
  397. order_id = dt.Rows(x).Item("id")
  398. order_no = dt.Rows(x).Item("bill_no")
  399. Dim paramLst11 As New List(Of LrGetToken.LrParam)
  400. Dim param11 As New LrGetToken.LrParam()
  401. param11.pKey = "id"
  402. param11.pValue = dt.Rows(x).Item(0)
  403. paramLst11.Add(param11)
  404. Dim percents As String = ""
  405. Dim card As String = “”
  406. ' 调用 API 获取每页数据详请
  407. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst11, "jdy/v2/scm/sal_order_detail")
  408. Dim pageData As JObject = JObject.Parse(strJson)
  409. ' 获取 remark 字段
  410. Dim remark As String = pageData("data")("remark").ToString()
  411. ' 获取 material_entity 数组
  412. Dim materialEntities As JArray = pageData("data")("material_entity")
  413. ' 遍历所有行
  414. For Each materialEntity As JObject In materialEntities
  415. ' 提取每一行的数据
  416. Dim materialName As String = materialEntity("material_name").ToString()
  417. Dim materialNumber As String = materialEntity("material_number").ToString()
  418. Dim stockName As String = materialEntity("stock_name").ToString()
  419. Dim price As Double = Convert.ToDouble(materialEntity("price"))
  420. Dim qty As Integer = Convert.ToInt32(materialEntity("qty"))
  421. Dim comment As String = materialEntity("comment").ToString()
  422. Dim deliveryDate As String = materialEntity("delivery_date").ToString()
  423. Dim customEntityName As String = percents
  424. Dim card_no As String
  425. If materialEntity("custom_entity_field") IsNot Nothing Then
  426. ' 确保 "custom_entity_field" 是一个数组
  427. If materialEntity("custom_entity_field").Type = JTokenType.Array Then
  428. Dim customEntity As JArray = materialEntity("custom_entity_field")
  429. ' 继续处理数组内容
  430. ElseIf materialEntity("custom_entity_field").Type = JTokenType.Object Then
  431. Dim customEntity As JObject = materialEntity("custom_entity_field")
  432. ' 访问自定义字段
  433. If customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name") IsNot Nothing Then
  434. Dim customFieldName As String = customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name").ToString()
  435. percents = customFieldName '-------打尺
  436. Else
  437. Console.WriteLine("字段 '3t1q2jkjahvn2_name' 不存在。")
  438. End If
  439. If customEntity("custom_entity_field__1__4mrjiazczldljia6") IsNot Nothing Then
  440. card_no = customEntity("custom_entity_field__1__4mrjiazczldljia6").ToString() '----卡号
  441. ' card = card_no
  442. Else
  443. Console.WriteLine("字段 'custom_entity_field__1__4mrjiazczldljia6' 不存在。")
  444. End If
  445. End If
  446. Else
  447. Console.WriteLine("material 对象中没有 'custom_entity_field' 字段。")
  448. End If
  449. Dim card1 As String = card_no
  450. Dim query As String = "
  451. INSERT INTO hf_00_orders_detail
  452. (material_name, material_number, stock_name, price, qty, comment, delivery_date, custom_entity_name, remark,card,order_id,order_no)
  453. VALUES (@material_name, @material_number, @stock_name, @price, @qty, @comment, @delivery_date, @custom_entity_name, @remark,@card,@order_id,@order_no)"
  454. Try
  455. ' 创建数据库连接
  456. Using connection As New SqlConnection(connstring)
  457. connection.Open()
  458. ' 创建 SQL 命令
  459. Using cmd As New SqlCommand(query, connection)
  460. ' 添加参数并传递变量值
  461. cmd.Parameters.AddWithValue("@material_name", materialName)
  462. cmd.Parameters.AddWithValue("@material_number", materialNumber)
  463. cmd.Parameters.AddWithValue("@stock_name", stockName)
  464. cmd.Parameters.AddWithValue("@price", price)
  465. cmd.Parameters.AddWithValue("@qty", qty)
  466. cmd.Parameters.AddWithValue("@comment", comment)
  467. cmd.Parameters.AddWithValue("@delivery_date", deliveryDate)
  468. cmd.Parameters.AddWithValue("@custom_entity_name", customEntityName)
  469. cmd.Parameters.AddWithValue("@remark", remark)
  470. cmd.Parameters.AddWithValue("@card", card1)
  471. cmd.Parameters.AddWithValue("@order_id", order_id)
  472. cmd.Parameters.AddWithValue("@order_no", order_no)
  473. ' 执行插入操作
  474. cmd.ExecuteNonQuery()
  475. End Using
  476. End Using
  477. ' MessageBox.Show("数据已成功插入!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information)
  478. Catch ex As Exception
  479. MessageBox.Show("插入数据时出错:" & ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
  480. End Try
  481. Next
  482. '' 获取当前页的 rows 数据
  483. 'Dim pageRows As JArray = pageData("data")("rows")
  484. 'If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  485. ' ' 插入每页数据到数据库
  486. ' For Each item As JObject In pageRows
  487. ' Dim id As String = item("id").ToString()
  488. ' Dim bill_no As String = item("bill_no").ToString()
  489. ' ' 获取其他字段
  490. ' ' ...
  491. ' ' 插入到数据库
  492. ' sql = "INSERT INTO hf_00_orders_main (id, bill_no) VALUES (@id, @bill_no)"
  493. ' Dim cmd11 As New SqlCommand(sql, conn)
  494. ' cmd11.Parameters.AddWithValue("@id", id)
  495. ' cmd11.Parameters.AddWithValue("@bill_no", bill_no)
  496. ' ' 添加其他参数
  497. ' cmd1.ExecuteNonQuery()
  498. ' Next
  499. 'End If
  500. Next
  501. 'Dim paramLst1 As New List(Of LrGetToken.LrParam)
  502. 'Dim param1 As New LrGetToken.LrParam()
  503. 'param1.pKey = "id"
  504. 'param1.pValue = "C"
  505. 'paramLst1.Add(param1)
  506. 'Dim strJson_detail As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst1, "jdy/v2/scm/sal_order_detail")
  507. conn.Close()
  508. Catch ex As Exception
  509. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  510. End Try
  511. MsgBox("")
  512. End Sub
  513. Private Sub db_in(jsonstr As String)
  514. Dim order_id As String = ""
  515. Dim order_no As String = ""
  516. 'Dim card As String = ""
  517. Dim cust_id As String = ""
  518. Dim cust_name As String = ""
  519. Dim bill_date As String = ""
  520. Dim cust_number As String = ""
  521. Dim bill_close_state As String = ""
  522. Dim io_status As String = ""
  523. Dim real_io_status As String = ""
  524. Try
  525. ' 解析 JSON 数据
  526. Dim jsonData As JObject = JObject.Parse(jsonstr)
  527. 'Dim dt As New DataTable()
  528. ' 获取 total_page
  529. Dim totalPage As Integer = jsonData("data")("total_page")
  530. dt_global = New DataTable()
  531. ' 尝试获取 "rows"(方法1)
  532. Dim rows1 As JArray = Nothing
  533. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  534. rows1 = jsonData("data")("rows")
  535. End If
  536. ' 尝试获取 "data"(方法2)
  537. Dim rows2 As JObject = Nothing
  538. If jsonData("data") IsNot Nothing Then
  539. rows2 = jsonData("data")
  540. End If
  541. ' 处理方法1: 解析 "rows" (JArray)
  542. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  543. ' 取第一条数据的字段作为列名
  544. For Each prop As JProperty In rows1(0)
  545. dt_global.Columns.Add(prop.Name)
  546. Next
  547. ' 添加数据
  548. For Each item As JObject In rows1
  549. Dim row As DataRow = dt_global.NewRow()
  550. For Each prop As JProperty In item.Properties()
  551. row(prop.Name) = prop.Value.ToString()
  552. Next
  553. dt_global.Rows.Add(row)
  554. Next
  555. ElseIf rows2 IsNot Nothing Then
  556. '' 处理方法2: 解析 "material_entity" (JArray)
  557. 'Dim materialArray As JArray = rows2("material_entity")
  558. 'If materialArray IsNot Nothing AndAlso materialArray.Count > 0 Then
  559. ' ' 取第一条数据的字段作为列名
  560. ' For Each prop As JProperty In materialArray(0)
  561. ' dt_global.Columns.Add(prop.Name)
  562. ' Next
  563. ' ' 添加数据
  564. ' For Each item As JObject In materialArray
  565. ' Dim row As DataRow = dt_global.NewRow()
  566. ' For Each prop As JProperty In item.Properties()
  567. ' row(prop.Name) = prop.Value.ToString()
  568. ' Next
  569. ' dt_global.Rows.Add(row)
  570. ' Next
  571. 'Else
  572. ' MessageBox.Show("material_entity 为空,无法转换 DataTable")
  573. 'End If
  574. Else
  575. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  576. End If
  577. ' 绑定 DataGridView
  578. DataGridView1.DataSource = dt_global
  579. ' 获取数据库连接
  580. Dim conn As New SqlConnection(connstring)
  581. conn.Open()
  582. Dim sql As String = ""
  583. Dim clsX As New LrGetToken.LrGetMtrlDatum
  584. ' 遍历每一页的 rows
  585. For page As Integer = 1 To totalPage
  586. ' 更新 "page" 和 "page_size"
  587. Dim paramLst As New List(Of LrGetToken.LrParam)
  588. Dim param As New LrGetToken.LrParam()
  589. 'param.pKey = "bill_close_state"
  590. 'param.pValue = "C"
  591. 'paramLst.Add(param)
  592. param = New LrGetToken.LrParam()
  593. param.pKey = "page"
  594. param.pValue = page
  595. paramLst.Add(param)
  596. param = New LrGetToken.LrParam()
  597. param.pKey = "page_size"
  598. param.pValue = 100
  599. paramLst.Add(param)
  600. ' 调用 API 获取每页数据详请
  601. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/inv_tfinc")
  602. Dim pageData As JObject = JObject.Parse(strJson)
  603. ' 获取当前页的 rows 数据
  604. Dim pageRows As JArray = pageData("data")("rows")
  605. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  606. ' 插入每页数据到数据库
  607. Dim dt_order As New DataTable
  608. dt_order.Columns.Add("bill_no", GetType(String))
  609. dt_order.Columns.Add("bill_date", GetType(DateTime))
  610. dt_order.Columns.Add("dept_name", GetType(String))
  611. dt_order.Columns.Add("out_dept_name", GetType(String))
  612. dt_order.Columns.Add("customer_number", GetType(String))
  613. dt_order.Columns.Add("bill_status", GetType(String))
  614. For Each item As JObject In pageRows
  615. dt_order.Rows.Add(item("id").ToString(), item("bill_no").ToString(), item("bill_date").ToString(), item("customer_id").ToString(), item("customer_name").ToString(), item("customer_number").ToString(), item("bill_close_state").ToString(), item("io_status").ToString(), item("real_io_status").ToString())
  616. Next
  617. ' 插入到数据库
  618. Using connection As New SqlConnection(connstring)
  619. connection.Open()
  620. Using bulkCopy As New SqlBulkCopy(connection)
  621. bulkCopy.DestinationTableName = "hf_00_orders_main"
  622. ' 4. 映射字段
  623. bulkCopy.ColumnMappings.Add("id", "id")
  624. bulkCopy.ColumnMappings.Add("bill_no", "bill_no")
  625. bulkCopy.ColumnMappings.Add("bill_date", "bill_date")
  626. bulkCopy.ColumnMappings.Add("customer_id", "customer_id")
  627. bulkCopy.ColumnMappings.Add("customer_name", "customer_name")
  628. bulkCopy.ColumnMappings.Add("customer_number", "customer_number")
  629. bulkCopy.ColumnMappings.Add("bill_close_state", "bill_close_state")
  630. bulkCopy.ColumnMappings.Add("io_status", "io_status")
  631. bulkCopy.ColumnMappings.Add("real_io_status", "real_io_status")
  632. Try
  633. ' 5. 执行批量插入
  634. bulkCopy.WriteToServer(dt_order)
  635. Console.WriteLine("数据批量插入成功!")
  636. Catch ex As Exception
  637. Console.WriteLine("插入数据失败:" & ex.Message)
  638. End Try
  639. End Using
  640. End Using
  641. End If
  642. Next
  643. Dim sql_detail As String = "select * from hf_00_orders_main" '----------------------------每张订单
  644. Dim cmd1 As New SqlCommand(sql_detail, conn)
  645. Dim da As New SqlDataAdapter
  646. Dim dt As New DataTable
  647. da.SelectCommand = cmd1
  648. da.Fill(dt)
  649. For x As Integer = 0 To dt.Rows.Count - 1 '--------------------每张订单写入明细
  650. order_id = dt.Rows(x).Item("id")
  651. order_no = dt.Rows(x).Item("bill_no")
  652. Dim paramLst11 As New List(Of LrGetToken.LrParam)
  653. Dim param11 As New LrGetToken.LrParam()
  654. param11.pKey = "id"
  655. param11.pValue = dt.Rows(x).Item(0)
  656. paramLst11.Add(param11)
  657. Dim percents As String = ""
  658. Dim card As String = “”
  659. ' 调用 API 获取每页数据详请
  660. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst11, "jdy/v2/scm/sal_order_detail")
  661. Dim pageData As JObject = JObject.Parse(strJson)
  662. ' 获取 remark 字段
  663. Dim remark As String = pageData("data")("remark").ToString()
  664. ' 获取 material_entity 数组
  665. Dim materialEntities As JArray = pageData("data")("material_entity")
  666. ' 遍历所有行
  667. For Each materialEntity As JObject In materialEntities
  668. ' 提取每一行的数据
  669. Dim materialName As String = materialEntity("material_name").ToString()
  670. Dim materialNumber As String = materialEntity("material_number").ToString()
  671. Dim stockName As String = materialEntity("stock_name").ToString()
  672. Dim price As Double = Convert.ToDouble(materialEntity("price"))
  673. Dim qty As Integer = Convert.ToInt32(materialEntity("qty"))
  674. Dim comment As String = materialEntity("comment").ToString()
  675. Dim deliveryDate As String = materialEntity("delivery_date").ToString()
  676. Dim customEntityName As String = percents
  677. Dim card_no As String
  678. If materialEntity("custom_entity_field") IsNot Nothing Then
  679. ' 确保 "custom_entity_field" 是一个数组
  680. If materialEntity("custom_entity_field").Type = JTokenType.Array Then
  681. Dim customEntity As JArray = materialEntity("custom_entity_field")
  682. ' 继续处理数组内容
  683. ElseIf materialEntity("custom_entity_field").Type = JTokenType.Object Then
  684. Dim customEntity As JObject = materialEntity("custom_entity_field")
  685. ' 访问自定义字段
  686. If customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name") IsNot Nothing Then
  687. Dim customFieldName As String = customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name").ToString()
  688. percents = customFieldName '-------打尺
  689. Else
  690. Console.WriteLine("字段 '3t1q2jkjahvn2_name' 不存在。")
  691. End If
  692. If customEntity("custom_entity_field__1__4mrjiazczldljia6") IsNot Nothing Then
  693. card_no = customEntity("custom_entity_field__1__4mrjiazczldljia6").ToString() '----卡号
  694. ' card = card_no
  695. Else
  696. Console.WriteLine("字段 'custom_entity_field__1__4mrjiazczldljia6' 不存在。")
  697. End If
  698. End If
  699. Else
  700. Console.WriteLine("material 对象中没有 'custom_entity_field' 字段。")
  701. End If
  702. Dim card1 As String = card_no
  703. Dim query As String = "
  704. INSERT INTO hf_00_orders_detail
  705. (material_name, material_number, stock_name, price, qty, comment, delivery_date, custom_entity_name, remark,card,order_id,order_no)
  706. VALUES (@material_name, @material_number, @stock_name, @price, @qty, @comment, @delivery_date, @custom_entity_name, @remark,@card,@order_id,@order_no)"
  707. Try
  708. ' 创建数据库连接
  709. Using connection As New SqlConnection(connstring)
  710. connection.Open()
  711. ' 创建 SQL 命令
  712. Using cmd As New SqlCommand(query, connection)
  713. ' 添加参数并传递变量值
  714. cmd.Parameters.AddWithValue("@material_name", materialName)
  715. cmd.Parameters.AddWithValue("@material_number", materialNumber)
  716. cmd.Parameters.AddWithValue("@stock_name", stockName)
  717. cmd.Parameters.AddWithValue("@price", price)
  718. cmd.Parameters.AddWithValue("@qty", qty)
  719. cmd.Parameters.AddWithValue("@comment", comment)
  720. cmd.Parameters.AddWithValue("@delivery_date", deliveryDate)
  721. cmd.Parameters.AddWithValue("@custom_entity_name", customEntityName)
  722. cmd.Parameters.AddWithValue("@remark", remark)
  723. cmd.Parameters.AddWithValue("@card", card1)
  724. cmd.Parameters.AddWithValue("@order_id", order_id)
  725. cmd.Parameters.AddWithValue("@order_no", order_no)
  726. ' 执行插入操作
  727. cmd.ExecuteNonQuery()
  728. End Using
  729. End Using
  730. ' MessageBox.Show("数据已成功插入!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information)
  731. Catch ex As Exception
  732. MessageBox.Show("插入数据时出错:" & ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
  733. End Try
  734. Next
  735. '' 获取当前页的 rows 数据
  736. 'Dim pageRows As JArray = pageData("data")("rows")
  737. 'If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  738. ' ' 插入每页数据到数据库
  739. ' For Each item As JObject In pageRows
  740. ' Dim id As String = item("id").ToString()
  741. ' Dim bill_no As String = item("bill_no").ToString()
  742. ' ' 获取其他字段
  743. ' ' ...
  744. ' ' 插入到数据库
  745. ' sql = "INSERT INTO hf_00_orders_main (id, bill_no) VALUES (@id, @bill_no)"
  746. ' Dim cmd11 As New SqlCommand(sql, conn)
  747. ' cmd11.Parameters.AddWithValue("@id", id)
  748. ' cmd11.Parameters.AddWithValue("@bill_no", bill_no)
  749. ' ' 添加其他参数
  750. ' cmd1.ExecuteNonQuery()
  751. ' Next
  752. 'End If
  753. Next
  754. 'Dim paramLst1 As New List(Of LrGetToken.LrParam)
  755. 'Dim param1 As New LrGetToken.LrParam()
  756. 'param1.pKey = "id"
  757. 'param1.pValue = "C"
  758. 'paramLst1.Add(param1)
  759. 'Dim strJson_detail As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst1, "jdy/v2/scm/sal_order_detail")
  760. conn.Close()
  761. Catch ex As Exception
  762. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  763. End Try
  764. MsgBox("")
  765. End Sub
  766. Private Sub Product_in(jsonStr As String)
  767. Dim order_id As String = ""
  768. Dim order_no As String = ""
  769. 'Dim card As String = ""
  770. Dim cust_id As String = ""
  771. Dim cust_name As String = ""
  772. ' Dim bill_date As String = ""
  773. Dim cust_number As String = ""
  774. Dim bill_close_state As String = ""
  775. Dim io_status As String = ""
  776. Dim real_io_status As String = ""
  777. Try
  778. ' 解析 JSON 数据
  779. Dim jsonData As JObject = JObject.Parse(jsonStr)
  780. 'Dim dt As New DataTable()
  781. ' 获取 total_page
  782. Dim totalPage As Integer = jsonData("data")("total_page")
  783. dt_global = New DataTable()
  784. ' 尝试获取 "rows"(方法1)
  785. Dim rows1 As JArray = Nothing
  786. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  787. rows1 = jsonData("data")("rows")
  788. End If
  789. ' 尝试获取 "data"(方法2)
  790. Dim rows2 As JObject = Nothing
  791. If jsonData("data") IsNot Nothing Then
  792. rows2 = jsonData("data")
  793. End If
  794. ' 处理方法1: 解析 "rows" (JArray)
  795. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  796. ' 取第一条数据的字段作为列名
  797. For Each prop As JProperty In rows1(0)
  798. dt_global.Columns.Add(prop.Name)
  799. Next
  800. ' 添加数据
  801. For Each item As JObject In rows1
  802. Dim row As DataRow = dt_global.NewRow()
  803. For Each prop As JProperty In item.Properties()
  804. row(prop.Name) = prop.Value.ToString()
  805. Next
  806. dt_global.Rows.Add(row)
  807. Next
  808. ElseIf rows2 IsNot Nothing Then
  809. Else
  810. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  811. End If
  812. ' 绑定 DataGridView
  813. DataGridView1.DataSource = dt_global
  814. ' 获取数据库连接
  815. Dim conn As New SqlConnection(connstring)
  816. conn.Open()
  817. Dim sql As String = ""
  818. Dim clsX As New LrGetToken.LrGetMtrlDatum
  819. ' 遍历每一页的 rows
  820. For page As Integer = 1 To totalPage
  821. Dim paramLst As New List(Of LrGetToken.LrParam)
  822. Dim param As New LrGetToken.LrParam()
  823. 'param.pKey = "bill_close_state"
  824. 'param.pValue = "C"
  825. 'paramLst.Add(param)
  826. param = New LrGetToken.LrParam()
  827. param.pKey = "end_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  828. paramLst.Add(param)
  829. param = New LrGetToken.LrParam()
  830. param.pKey = "page" : param.pValue = page
  831. paramLst.Add(param)
  832. param = New LrGetToken.LrParam()
  833. param.pKey = "page_size" : param.pValue = 100
  834. paramLst.Add(param)
  835. param = New LrGetToken.LrParam()
  836. param.pKey = "start_date" : param.pValue = dtp_start.Value.ToString("yyyy-MM-dd")
  837. paramLst.Add(param)
  838. ' 调用 API 获取每页数据详请
  839. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/inv_product")
  840. Dim pageData As JObject = JObject.Parse(strJson)
  841. ' 获取当前页的 rows 数据
  842. Dim pageRows As JArray = pageData("data")("rows")
  843. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  844. ' 插入每页数据到数据库
  845. Dim dt_order As New DataTable
  846. dt_order.Columns.Add("id", GetType(String))
  847. dt_order.Columns.Add("bill_no", GetType(String))
  848. dt_order.Columns.Add("bill_date", GetType(Date))
  849. dt_order.Columns.Add("remark", GetType(String))
  850. For Each item As JObject In pageRows
  851. ' 确保日期类型正确,防止Null错误
  852. Dim billDate As DateTime = If(item("bill_date") IsNot Nothing, Convert.ToDateTime(item("bill_date")), DateTime.MinValue)
  853. ' 处理可能为Null的字段,使用默认值或空字符串
  854. dt_order.Rows.Add(
  855. If(item("id") IsNot Nothing, item("id").ToString(), ""),
  856. If(item("bill_no") IsNot Nothing, item("bill_no").ToString(), ""),
  857. billDate,
  858. If(item("remark") IsNot Nothing, item("remark").ToString(), "")
  859. )
  860. Next
  861. ' 插入到数据库
  862. Using connection As New SqlConnection(connstring)
  863. connection.Open()
  864. Using bulkCopy As New SqlBulkCopy(connection)
  865. bulkCopy.DestinationTableName = "hf_00_k3_product_in"
  866. ' 4. 映射字段
  867. bulkCopy.ColumnMappings.Add("id", "id")
  868. bulkCopy.ColumnMappings.Add("bill_no", "bill_no")
  869. bulkCopy.ColumnMappings.Add("bill_date", "bill_date")
  870. bulkCopy.ColumnMappings.Add("remark", "remark")
  871. Try
  872. ' 5. 执行批量插入
  873. DataGridView1.DataSource = dt_order
  874. bulkCopy.WriteToServer(dt_order)
  875. Console.WriteLine("数据批量插入成功!")
  876. Catch ex As Exception
  877. MsgBox("插入数据失败:" & ex.Message)
  878. End Try
  879. End Using
  880. End Using
  881. End If
  882. Next
  883. Dim sql_detail As String = "select * from hf_00_k3_product_in" '----------------------------每张订单
  884. Dim cmd1 As New SqlCommand(sql_detail, conn)
  885. Dim da As New SqlDataAdapter
  886. Dim dt As New DataTable
  887. da.SelectCommand = cmd1
  888. da.Fill(dt)
  889. For x As Integer = 0 To dt.Rows.Count - 1 '--------------------每张订单写入明细
  890. order_id = dt.Rows(x).Item("id")
  891. order_no = dt.Rows(x).Item("bill_no")
  892. Dim paramLst11 As New List(Of LrGetToken.LrParam)
  893. Dim param11 As New LrGetToken.LrParam()
  894. param11.pKey = "id"
  895. param11.pValue = dt.Rows(x).Item(0)
  896. paramLst11.Add(param11)
  897. Dim percents As String = ""
  898. ' 调用 API 获取每页数据详请
  899. Dim strJson1 As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst11, "jdy/v2/scm/inv_product_detail")
  900. Dim pageData As JObject = JObject.Parse(strJson1)
  901. ' 获取 material_entity 数组
  902. Dim materialEntities As JArray = pageData("data")("material_entity")
  903. Dim mydata As JObject = pageData("data")
  904. Dim bill_date1 As String = mydata("bill_date").ToString()
  905. Dim bill_no1 As String = mydata("bill_no").ToString()
  906. Dim bill_type_name As String = mydata("bill_type_name").ToString()
  907. ' 遍历所有行
  908. For Each materialEntity As JObject In materialEntities
  909. ' 提取每一行的数据
  910. Dim materialName As String = materialEntity("material_name").ToString()
  911. Dim materialNumber As String = materialEntity("material_number").ToString()
  912. Dim stockName As String = materialEntity("stock_name").ToString()
  913. Dim batch_no As String = materialEntity("batch_no").ToString()
  914. Dim qty As Double = Convert.ToDecimal(materialEntity("qty"))
  915. Dim aux_qty As Double = Convert.ToDecimal(materialEntity("aux_qty"))
  916. Dim comment As String = materialEntity("comment").ToString()
  917. Dim unit_id As String = materialEntity("unit_id").ToString()
  918. Dim query As String = "
  919. INSERT INTO hf_00_k3_product_in_detail
  920. (bill_date,bill_no,materialName, materialNumber, stockName, batch_no, qty, aux_qty, comment,bill_type_name,unit_id)
  921. VALUES
  922. (@bill_date,@bill_no,@material_name, @material_number, @stock_name, @batch_no, @qty, @aux_qty, @comment,@bill_type_name,@unit_id);
  923. "
  924. Try
  925. ' 创建数据库连接
  926. Using connection As New SqlConnection(connstring)
  927. connection.Open()
  928. ' 创建 SQL 命令
  929. Using cmd As New SqlCommand(query, connection)
  930. ' 添加参数并传递变量值
  931. cmd.Parameters.AddWithValue("@bill_date", bill_date1)
  932. cmd.Parameters.AddWithValue("@bill_no", bill_no1)
  933. cmd.Parameters.AddWithValue("@material_name", materialName)
  934. cmd.Parameters.AddWithValue("@material_number", materialNumber)
  935. cmd.Parameters.AddWithValue("@stock_name", stockName)
  936. cmd.Parameters.AddWithValue("@batch_no", batch_no) ' Updated to match batch_no column
  937. cmd.Parameters.AddWithValue("@qty", qty)
  938. cmd.Parameters.AddWithValue("@aux_qty", aux_qty) ' Added aux_qty
  939. cmd.Parameters.AddWithValue("@comment", comment)
  940. cmd.Parameters.AddWithValue("@bill_type_name", bill_type_name)
  941. cmd.Parameters.AddWithValue("@unit_id", unit_id)
  942. ' 执行插入操作
  943. cmd.ExecuteNonQuery()
  944. End Using
  945. End Using
  946. ' MessageBox.Show("数据已成功插入!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information)
  947. Catch ex As Exception
  948. MessageBox.Show("插入数据时出错:" & ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
  949. End Try
  950. Next
  951. '' 获取当前页的 rows 数据
  952. 'Dim pageRows As JArray = pageData("data")("rows")
  953. 'If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  954. ' ' 插入每页数据到数据库
  955. ' For Each item As JObject In pageRows
  956. ' Dim id As String = item("id").ToString()
  957. ' Dim bill_no As String = item("bill_no").ToString()
  958. ' ' 获取其他字段
  959. ' ' ...
  960. ' ' 插入到数据库
  961. ' sql = "INSERT INTO hf_00_orders_main (id, bill_no) VALUES (@id, @bill_no)"
  962. ' Dim cmd11 As New SqlCommand(sql, conn)
  963. ' cmd11.Parameters.AddWithValue("@id", id)
  964. ' cmd11.Parameters.AddWithValue("@bill_no", bill_no)
  965. ' ' 添加其他参数
  966. ' cmd1.ExecuteNonQuery()
  967. ' Next
  968. 'End If
  969. Next
  970. 'Dim paramLst1 As New List(Of LrGetToken.LrParam)
  971. 'Dim param1 As New LrGetToken.LrParam()
  972. 'param1.pKey = "id"
  973. 'param1.pValue = "C"
  974. 'paramLst1.Add(param1)
  975. 'Dim strJson_detail As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst1, "jdy/v2/scm/sal_order_detail")
  976. conn.Close()
  977. Catch ex As Exception
  978. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  979. End Try
  980. MsgBox("")
  981. End Sub
  982. Private Sub Product_in_detail(jsonStr As String)
  983. Dim order_id As String = ""
  984. Dim order_no As String = ""
  985. 'Dim card As String = ""
  986. Dim cust_id As String = ""
  987. Dim cust_name As String = ""
  988. Dim bill_date As String = ""
  989. Dim cust_number As String = ""
  990. Dim bill_close_state As String = ""
  991. Dim io_status As String = ""
  992. Dim real_io_status As String = ""
  993. Try
  994. ' 解析 JSON 数据
  995. Dim jsonData As JObject = JObject.Parse(jsonStr)
  996. 'Dim dt As New DataTable()
  997. ' 获取 total_page
  998. Dim totalPage As Integer = jsonData("data")("total_page")
  999. dt_global = New DataTable()
  1000. ' 尝试获取 "rows"(方法1)
  1001. Dim rows1 As JArray = Nothing
  1002. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  1003. rows1 = jsonData("data")("rows")
  1004. End If
  1005. ' 尝试获取 "data"(方法2)
  1006. Dim rows2 As JObject = Nothing
  1007. If jsonData("data") IsNot Nothing Then
  1008. rows2 = jsonData("data")
  1009. End If
  1010. ' 处理方法1: 解析 "rows" (JArray)
  1011. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  1012. ' 取第一条数据的字段作为列名
  1013. For Each prop As JProperty In rows1(0)
  1014. dt_global.Columns.Add(prop.Name)
  1015. Next
  1016. ' 添加数据
  1017. For Each item As JObject In rows1
  1018. Dim row As DataRow = dt_global.NewRow()
  1019. For Each prop As JProperty In item.Properties()
  1020. row(prop.Name) = prop.Value.ToString()
  1021. Next
  1022. dt_global.Rows.Add(row)
  1023. Next
  1024. ElseIf rows2 IsNot Nothing Then
  1025. Else
  1026. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  1027. End If
  1028. ' 绑定 DataGridView
  1029. DataGridView1.DataSource = dt_global
  1030. ' 获取数据库连接
  1031. Dim conn As New SqlConnection(connstring)
  1032. conn.Open()
  1033. Dim sql As String = ""
  1034. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1035. ' 遍历每一页的 rows
  1036. For page As Integer = 1 To totalPage
  1037. Dim paramLst As New List(Of LrGetToken.LrParam)
  1038. Dim param As New LrGetToken.LrParam()
  1039. 'param.pKey = "bill_close_state"
  1040. 'param.pValue = "C"
  1041. 'paramLst.Add(param)
  1042. param = New LrGetToken.LrParam()
  1043. param.pKey = "end_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  1044. paramLst.Add(param)
  1045. param = New LrGetToken.LrParam()
  1046. param.pKey = "page" : param.pValue = page
  1047. paramLst.Add(param)
  1048. param = New LrGetToken.LrParam()
  1049. param.pKey = "page_size" : param.pValue = 100
  1050. paramLst.Add(param)
  1051. param = New LrGetToken.LrParam()
  1052. param.pKey = "start_date" : param.pValue = dtp_start.Value.ToString("yyyy-MM-dd")
  1053. paramLst.Add(param)
  1054. ' 调用 API 获取每页数据详请
  1055. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/inv_product")
  1056. Dim pageData As JObject = JObject.Parse(strJson)
  1057. ' 获取当前页的 rows 数据
  1058. Dim pageRows As JArray = pageData("data")("rows")
  1059. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  1060. ' 插入每页数据到数据库
  1061. Dim dt_order As New DataTable
  1062. dt_order.Columns.Add("id", GetType(String))
  1063. dt_order.Columns.Add("bill_no", GetType(String))
  1064. dt_order.Columns.Add("bill_date", GetType(DateTime))
  1065. dt_order.Columns.Add("remark", GetType(String))
  1066. For Each item As JObject In pageRows
  1067. dt_order.Rows.Add(item("id").ToString(), item("bill_no").ToString(), item("bill_date").ToString(), item("remark").ToString())
  1068. Next
  1069. ' 插入到数据库
  1070. Using connection As New SqlConnection(connstring)
  1071. connection.Open()
  1072. Using bulkCopy As New SqlBulkCopy(connection)
  1073. bulkCopy.DestinationTableName = "hf_00_k3_product_in"
  1074. ' 4. 映射字段
  1075. bulkCopy.ColumnMappings.Add("id", "id")
  1076. bulkCopy.ColumnMappings.Add("bill_no", "bill_no")
  1077. bulkCopy.ColumnMappings.Add("bill_date", "bill_date")
  1078. bulkCopy.ColumnMappings.Add("remark", "remark")
  1079. Try
  1080. ' 5. 执行批量插入
  1081. bulkCopy.WriteToServer(dt_order)
  1082. Console.WriteLine("数据批量插入成功!")
  1083. Catch ex As Exception
  1084. Console.WriteLine("插入数据失败:" & ex.Message)
  1085. End Try
  1086. End Using
  1087. End Using
  1088. End If
  1089. Next
  1090. Dim sql_detail As String = "select * from hf_00_k3_product_in" '----------------------------每张订单
  1091. Dim cmd1 As New SqlCommand(sql_detail, conn)
  1092. Dim da As New SqlDataAdapter
  1093. Dim dt As New DataTable
  1094. da.SelectCommand = cmd1
  1095. da.Fill(dt)
  1096. For x As Integer = 0 To dt.Rows.Count - 1 '--------------------每张订单写入明细
  1097. order_id = dt.Rows(x).Item("id")
  1098. order_no = dt.Rows(x).Item("bill_no")
  1099. Dim paramLst11 As New List(Of LrGetToken.LrParam)
  1100. Dim param11 As New LrGetToken.LrParam()
  1101. param11.pKey = "id"
  1102. param11.pValue = dt.Rows(x).Item(0)
  1103. paramLst11.Add(param11)
  1104. Dim percents As String = ""
  1105. Dim card As String = “”
  1106. ' 调用 API 获取每页数据详请
  1107. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst11, "jdy/v2/scm/sal_order_detail")
  1108. Dim pageData As JObject = JObject.Parse(strJson)
  1109. ' 获取 remark 字段
  1110. Dim remark As String = pageData("data")("remark").ToString()
  1111. ' 获取 material_entity 数组
  1112. Dim materialEntities As JArray = pageData("data")("material_entity")
  1113. For Each material As JObject In materialEntities
  1114. ' 确保 "custom_entity_field" 存在于 material 中
  1115. If material("custom_entity_field") IsNot Nothing Then
  1116. ' 确保 "custom_entity_field" 是一个数组
  1117. If material("custom_entity_field").Type = JTokenType.Array Then
  1118. Dim customEntity As JArray = material("custom_entity_field")
  1119. ' 继续处理数组内容
  1120. ElseIf material("custom_entity_field").Type = JTokenType.Object Then
  1121. Dim customEntity As JObject = material("custom_entity_field")
  1122. ' 访问自定义字段
  1123. If customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name") IsNot Nothing Then
  1124. Dim customFieldName As String = customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name").ToString()
  1125. percents = customFieldName '-------打尺
  1126. Else
  1127. Console.WriteLine("字段 '3t1q2jkjahvn2_name' 不存在。")
  1128. End If
  1129. If customEntity("custom_entity_field__1__4mrjiazczldljia6") IsNot Nothing Then
  1130. Dim card_no As String = customEntity("custom_entity_field__1__4mrjiazczldljia6").ToString() '----卡号
  1131. card = card_no
  1132. Else
  1133. Console.WriteLine("字段 'custom_entity_field__1__4mrjiazczldljia6' 不存在。")
  1134. End If
  1135. End If
  1136. Else
  1137. Console.WriteLine("material 对象中没有 'custom_entity_field' 字段。")
  1138. End If
  1139. Next
  1140. ' 遍历所有行
  1141. For Each materialEntity As JObject In materialEntities
  1142. ' 提取每一行的数据
  1143. Dim materialName As String = materialEntity("material_name").ToString()
  1144. Dim materialNumber As String = materialEntity("material_number").ToString()
  1145. Dim stockName As String = materialEntity("stock_name").ToString()
  1146. Dim price As Double = Convert.ToDouble(materialEntity("price"))
  1147. Dim qty As Integer = Convert.ToInt32(materialEntity("qty"))
  1148. Dim comment As String = materialEntity("comment").ToString()
  1149. Dim deliveryDate As String = materialEntity("delivery_date").ToString()
  1150. Dim customEntityName As String = percents
  1151. Dim query As String = "
  1152. INSERT INTO hf_00_orders_detail
  1153. (material_name, material_number, stock_name, price, qty, comment, delivery_date, custom_entity_name, remark,card,order_id,order_no)
  1154. VALUES (@material_name, @material_number, @stock_name, @price, @qty, @comment, @delivery_date, @custom_entity_name, @remark,@card,@order_id,@order_no)"
  1155. Try
  1156. ' 创建数据库连接
  1157. Using connection As New SqlConnection(connstring)
  1158. connection.Open()
  1159. ' 创建 SQL 命令
  1160. Using cmd As New SqlCommand(query, connection)
  1161. ' 添加参数并传递变量值
  1162. cmd.Parameters.AddWithValue("@material_name", materialName)
  1163. cmd.Parameters.AddWithValue("@material_number", materialNumber)
  1164. cmd.Parameters.AddWithValue("@stock_name", stockName)
  1165. cmd.Parameters.AddWithValue("@price", price)
  1166. cmd.Parameters.AddWithValue("@qty", qty)
  1167. cmd.Parameters.AddWithValue("@comment", comment)
  1168. cmd.Parameters.AddWithValue("@delivery_date", deliveryDate)
  1169. cmd.Parameters.AddWithValue("@custom_entity_name", customEntityName)
  1170. cmd.Parameters.AddWithValue("@remark", remark)
  1171. cmd.Parameters.AddWithValue("@card", card)
  1172. cmd.Parameters.AddWithValue("@order_id", order_id)
  1173. cmd.Parameters.AddWithValue("@order_no", order_no)
  1174. ' 执行插入操作
  1175. cmd.ExecuteNonQuery()
  1176. End Using
  1177. End Using
  1178. ' MessageBox.Show("数据已成功插入!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information)
  1179. Catch ex As Exception
  1180. MessageBox.Show("插入数据时出错:" & ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
  1181. End Try
  1182. Next
  1183. '' 获取当前页的 rows 数据
  1184. 'Dim pageRows As JArray = pageData("data")("rows")
  1185. 'If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  1186. ' ' 插入每页数据到数据库
  1187. ' For Each item As JObject In pageRows
  1188. ' Dim id As String = item("id").ToString()
  1189. ' Dim bill_no As String = item("bill_no").ToString()
  1190. ' ' 获取其他字段
  1191. ' ' ...
  1192. ' ' 插入到数据库
  1193. ' sql = "INSERT INTO hf_00_orders_main (id, bill_no) VALUES (@id, @bill_no)"
  1194. ' Dim cmd11 As New SqlCommand(sql, conn)
  1195. ' cmd11.Parameters.AddWithValue("@id", id)
  1196. ' cmd11.Parameters.AddWithValue("@bill_no", bill_no)
  1197. ' ' 添加其他参数
  1198. ' cmd1.ExecuteNonQuery()
  1199. ' Next
  1200. 'End If
  1201. Next
  1202. 'Dim paramLst1 As New List(Of LrGetToken.LrParam)
  1203. 'Dim param1 As New LrGetToken.LrParam()
  1204. 'param1.pKey = "id"
  1205. 'param1.pValue = "C"
  1206. 'paramLst1.Add(param1)
  1207. 'Dim strJson_detail As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst1, "jdy/v2/scm/sal_order_detail")
  1208. conn.Close()
  1209. Catch ex As Exception
  1210. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  1211. End Try
  1212. MsgBox("")
  1213. End Sub
  1214. Private Sub Get_json_order_detail(jsonstr As String)
  1215. End Sub
  1216. Private Sub PopulateDataTableFromTreeView()
  1217. Try
  1218. ' 创建 DataTable
  1219. Dim dt_global2 As New DataTable()
  1220. ' 从 TreeView 获取节点名称
  1221. Dim nodeNames As New List(Of String)()
  1222. ' 递归遍历 TreeView 获取节点名称
  1223. For Each node As TreeNode In TreeView1.Nodes
  1224. PopulateNodeNames(node, nodeNames)
  1225. Next
  1226. ' 确保 DataTable 中有每个字段对应的列
  1227. For Each nodeName As String In nodeNames
  1228. If Not dt_global2.Columns.Contains(nodeName) Then
  1229. dt_global2.Columns.Add(nodeName)
  1230. End If
  1231. Next
  1232. ' 遍历 TreeView 中的每个节点
  1233. For Each node As TreeNode In TreeView1.Nodes
  1234. ' 创建一个新行
  1235. Dim row As DataRow = dt_global2.NewRow()
  1236. ' 填充行数据
  1237. FillRowWithNodeData(node, row)
  1238. ' 添加该行到 DataTable
  1239. dt_global2.Rows.Add(row)
  1240. Next
  1241. ' 绑定到 DataGridView
  1242. dgv_detail.DataSource = dt_global2
  1243. Catch ex As Exception
  1244. MessageBox.Show("错误: " & ex.Message)
  1245. End Try
  1246. End Sub
  1247. Private Sub PopulateNodeNames(node As TreeNode, ByRef nodeNames As List(Of String))
  1248. ' 递归遍历节点并获取所有节点的名称
  1249. If Not nodeNames.Contains(node.Text) Then
  1250. nodeNames.Add(node.Text)
  1251. End If
  1252. For Each childNode As TreeNode In node.ChildNodes
  1253. PopulateNodeNames(childNode, nodeNames)
  1254. Next
  1255. End Sub
  1256. Private Sub FillRowWithNodeData(node As TreeNode, row As DataRow)
  1257. ' 对节点没有子节点的,存储值
  1258. If node.ChildNodes.Count = 0 Then
  1259. ' 如果节点是最后一个值,将其用 "{...}" 包裹
  1260. If node.Text.Contains("{") Then
  1261. row(node.Text) = "{" & node.Text & "}"
  1262. Else
  1263. row(node.Text) = node.Text
  1264. End If
  1265. End If
  1266. ' 对节点有子节点的,递归填充子节点数据
  1267. For Each childNode As TreeNode In node.ChildNodes
  1268. ' 递归填充子节点数据
  1269. FillRowWithNodeData(childNode, row)
  1270. Next
  1271. End Sub
  1272. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '---商品收发明细表
  1273. 'Dim sql As String = ""
  1274. 'sql = "delete from hf_00_k3_realtime_stock"
  1275. 'cmd.CommandText = sql
  1276. 'cmd.Connection = conn
  1277. 'cmd.ExecuteNonQuery()
  1278. 'sql = "delete from hf_00_orders_detail"
  1279. 'cmd.CommandText = sql
  1280. 'cmd.Connection = conn
  1281. 'cmd.ExecuteNonQuery()
  1282. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1283. Dim paramLst As New List(Of LrGetToken.LrParam)
  1284. Dim param As New LrGetToken.LrParam()
  1285. 'param = New LrGetToken.LrParam()
  1286. 'param.pKey = "bill_close_state" : param.pValue = "C"
  1287. 'paramLst.Add(param)
  1288. param = New LrGetToken.LrParam()
  1289. param.pKey = "end_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  1290. paramLst.Add(param)
  1291. param = New LrGetToken.LrParam()
  1292. param.pKey = "filter_material_id" : param.pValue = "1863167288438514688"
  1293. paramLst.Add(param)
  1294. param = New LrGetToken.LrParam()
  1295. param.pKey = "filter_stock_id" : param.pValue = "1844877444239115264"
  1296. paramLst.Add(param)
  1297. param = New LrGetToken.LrParam()
  1298. param.pKey = "page" : param.pValue = 1 '------page
  1299. paramLst.Add(param)
  1300. param = New LrGetToken.LrParam()
  1301. param.pKey = "page_size" : param.pValue = 100 '------page_size
  1302. paramLst.Add(param)
  1303. param = New LrGetToken.LrParam()
  1304. param.pKey = "start_date" : param.pValue = dtp_start.Value.ToString("yyyy-MM-dd")
  1305. paramLst.Add(param)
  1306. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/inv_detail")
  1307. inv_io(strJson)
  1308. End Sub
  1309. Function ConvertTimestampToDate(timeStamp As Long) As String
  1310. Dim dt As DateTime = New DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)
  1311. dt = dt.AddMilliseconds(timeStamp)
  1312. Return dt.ToString("yyyy-MM-dd HH:mm:ss")
  1313. End Function
  1314. Private Sub txtappKey_TextChanged(sender As Object, e As EventArgs) Handles txtappKey.TextChanged
  1315. End Sub
  1316. Public Function GetSignature(request As APIRequest, nonce As String, timestamp As String) As String
  1317. Dim querySign As String = GetQueryString(request, True)
  1318. Dim my_sign As String = ""
  1319. Dim sb As New StringBuilder()
  1320. sb.Append(request.Method.ToString().ToUpper())
  1321. sb.Append(ControlChars.NewLine)
  1322. sb.Append(PathEncode(request.Path))
  1323. sb.Append(ControlChars.NewLine)
  1324. sb.Append(querySign)
  1325. sb.Append(ControlChars.NewLine)
  1326. sb.Append("x-api-nonce:" & nonce)
  1327. sb.Append(ControlChars.NewLine)
  1328. sb.Append("x-api-timestamp:" & timestamp)
  1329. sb.Append(ControlChars.NewLine)
  1330. ' my_sign = SHAHelper.HmacSHA256(_clientSecret, sb.ToString())
  1331. ' Return SHAHelper.HmacSHA256(_clientSecret, sb.ToString())
  1332. End Function
  1333. Private Shared Function GetQueryString(request As APIRequest, Optional doubleEncode As Boolean = False) As String
  1334. Dim querySign As String = String.Empty
  1335. If request.Params IsNot Nothing AndAlso request.Params.Keys IsNot Nothing Then
  1336. For Each key As String In request.Params.Keys
  1337. If doubleEncode Then
  1338. querySign &= "&" & key.ToString() & "=" & HttpUtility.UrlEncode(HttpUtility.UrlEncode(request.Params(key))).Replace("+", "%20")
  1339. Else
  1340. querySign &= "&" & key.ToString() & "=" & HttpUtility.UrlEncode(request.Params(key)).Replace("+", "%20")
  1341. End If
  1342. Next
  1343. querySign = querySign.TrimStart("&"c)
  1344. End If
  1345. Return querySign
  1346. End Function
  1347. Private Shared Function PathEncode(path As String) As String
  1348. path = HttpUtility.UrlEncode("/" & path.TrimStart("/"c)).Replace("%2f", "%2F").Replace("%2d", "%2D").Replace("(", "%28").Replace(")", "%29")
  1349. Return path
  1350. End Function
  1351. Private Sub DataGridView1_LostFocus(sender As Object, e As EventArgs) Handles DataGridView1.LostFocus
  1352. TreeView1.Visible = False
  1353. End Sub
  1354. Private Sub Button3_Click(sender As Object, e As EventArgs) '-----订单明细
  1355. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1356. Dim paramLst As New List(Of LrGetToken.LrParam)
  1357. Dim param As New LrGetToken.LrParam()
  1358. param = New LrGetToken.LrParam()
  1359. param.pKey = "id" : param.pValue = DataGridView1.CurrentRow.Cells("id").Value.ToString()
  1360. paramLst.Add(param)
  1361. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/sal_order_detail")
  1362. Dim token As JToken = JToken.Parse(strJson)
  1363. Dim clsXX As New LrGetToken.NodeAdder
  1364. clsXX.AddNode(token, TreeView1.Nodes)
  1365. ' 显示 TreeView
  1366. TreeView1.ExpandAll()
  1367. TreeView1.Visible = True
  1368. ' PopulateDataTableFromTreeView()
  1369. 'BindJsonToDataGridView22(strJson)
  1370. End Sub
  1371. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click '---产品入库
  1372. Dim sql As String = ""
  1373. sql = "delete from hf_00_k3_product_in where bill_date BETWEEN '" & dtp_start.Value & "' and '" & dtp_end.Value & "'"
  1374. cmd.CommandText = sql
  1375. cmd.Connection = conn
  1376. cmd.ExecuteNonQuery()
  1377. sql = "delete hf_00_k3_product_in_detail where bill_date BETWEEN '" & dtp_start.Value & "' and '" & dtp_end.Value & "'"
  1378. cmd.CommandText = sql
  1379. cmd.Connection = conn
  1380. cmd.ExecuteNonQuery()
  1381. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1382. Dim paramLst As New List(Of LrGetToken.LrParam)
  1383. Dim param As New LrGetToken.LrParam()
  1384. 'param = New LrGetToken.LrParam()
  1385. 'param.pKey = "bill_close_state" : param.pValue = "C"
  1386. 'paramLst.Add(param)
  1387. param = New LrGetToken.LrParam()
  1388. param.pKey = "end_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  1389. paramLst.Add(param)
  1390. param = New LrGetToken.LrParam()
  1391. param.pKey = "page" : param.pValue = 1
  1392. paramLst.Add(param)
  1393. param = New LrGetToken.LrParam()
  1394. param.pKey = "page_size" : param.pValue = 100
  1395. paramLst.Add(param)
  1396. param = New LrGetToken.LrParam()
  1397. param.pKey = "start_date" : param.pValue = dtp_start.Value.ToString("yyyy-MM-dd")
  1398. paramLst.Add(param)
  1399. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/inv_product")
  1400. Product_in(strJson)
  1401. End Sub
  1402. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
  1403. '-------库存查询
  1404. Dim sql As String = ""
  1405. sql = "delete from hf_00_k3_realtime_stock"
  1406. cmd.CommandText = sql
  1407. cmd.Connection = conn
  1408. cmd.ExecuteNonQuery()
  1409. 'sql = "delete from hf_00_orders_detail"
  1410. 'cmd.CommandText = sql
  1411. 'cmd.Connection = conn
  1412. 'cmd.ExecuteNonQuery()
  1413. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1414. Dim paramLst As New List(Of LrGetToken.LrParam)
  1415. Dim param As New LrGetToken.LrParam()
  1416. 'param = New LrGetToken.LrParam()
  1417. 'param.pKey = "bill_close_state" : param.pValue = "C"
  1418. 'paramLst.Add(param)
  1419. 'param = New LrGetToken.LrParam()
  1420. 'param.pKey = "end_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  1421. 'paramLst.Add(param)
  1422. param = New LrGetToken.LrParam()
  1423. param.pKey = "page" : param.pValue = 1 '------page
  1424. paramLst.Add(param)
  1425. param = New LrGetToken.LrParam()
  1426. param.pKey = "page_size" : param.pValue = 1000 '------page_size
  1427. paramLst.Add(param)
  1428. param = New LrGetToken.LrParam()
  1429. param.pKey = "show_batch_no_kf_period" : param.pValue = "1"
  1430. paramLst.Add(param)
  1431. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/inv/inv_inventory_ims")
  1432. query_stock(strJson)
  1433. End Sub
  1434. Private Sub query_stock(stringJson As String)
  1435. Dim order_id As String = ""
  1436. Dim order_no As String = ""
  1437. 'Dim card As String = ""
  1438. Dim cust_id As String = ""
  1439. Dim cust_name As String = ""
  1440. Dim bill_date As String = ""
  1441. Dim cust_number As String = ""
  1442. Dim bill_close_state As String = ""
  1443. Dim io_status As String = ""
  1444. Dim real_io_status As String = ""
  1445. Try
  1446. ' 解析 JSON 数据
  1447. Dim jsonData As JObject = JObject.Parse(stringJson)
  1448. 'Dim dt As New DataTable()
  1449. ' 获取 total_page
  1450. Dim totalPage As Integer = jsonData("data")("total_page")
  1451. dt_global = New DataTable()
  1452. ' 尝试获取 "rows"(方法1)
  1453. Dim rows1 As JArray = Nothing
  1454. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  1455. rows1 = jsonData("data")("rows")
  1456. End If
  1457. ' 尝试获取 "data"(方法2)
  1458. Dim rows2 As JObject = Nothing
  1459. If jsonData("data") IsNot Nothing Then
  1460. rows2 = jsonData("data")
  1461. End If
  1462. ' 处理方法1: 解析 "rows" (JArray)
  1463. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  1464. ' 取第一条数据的字段作为列名
  1465. For Each prop As JProperty In rows1(0)
  1466. dt_global.Columns.Add(prop.Name)
  1467. Next
  1468. ' 添加数据
  1469. For Each item As JObject In rows1
  1470. Dim row As DataRow = dt_global.NewRow()
  1471. For Each prop As JProperty In item.Properties()
  1472. row(prop.Name) = prop.Value.ToString()
  1473. Next
  1474. dt_global.Rows.Add(row)
  1475. Next
  1476. ElseIf rows2 IsNot Nothing Then
  1477. Else
  1478. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  1479. End If
  1480. ' 绑定 DataGridView
  1481. DataGridView1.DataSource = dt_global
  1482. ' 获取数据库连接
  1483. Dim conn As New SqlConnection(connstring)
  1484. conn.Open()
  1485. Dim sql As String = ""
  1486. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1487. ' 遍历每一页的 rows
  1488. For page As Integer = 1 To totalPage
  1489. Dim paramLst As New List(Of LrGetToken.LrParam)
  1490. Dim param As New LrGetToken.LrParam()
  1491. 'param.pKey = "bill_close_state"
  1492. 'param.pValue = "C"
  1493. 'paramLst.Add(param)
  1494. param = New LrGetToken.LrParam()
  1495. param.pKey = "page" : param.pValue = page
  1496. paramLst.Add(param)
  1497. param = New LrGetToken.LrParam()
  1498. param.pKey = "page_size" : param.pValue = 1000
  1499. paramLst.Add(param)
  1500. param = New LrGetToken.LrParam()
  1501. param.pKey = "show_batch_no_kf_period" : param.pValue = "1"
  1502. paramLst.Add(param)
  1503. ' 调用 API 获取每页数据详请
  1504. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/inv/inv_inventory_ims")
  1505. Dim pageData As JObject = JObject.Parse(strJson)
  1506. ' 获取当前页的 rows 数据
  1507. Dim pageRows As JArray = pageData("data")("rows")
  1508. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  1509. ' 插入每页数据到数据库
  1510. Dim dt_order As New DataTable
  1511. dt_order.Columns.Add("material_id", GetType(String))
  1512. dt_order.Columns.Add("material_number", GetType(String))
  1513. dt_order.Columns.Add("material_name", GetType(String))
  1514. dt_order.Columns.Add("stock_number", GetType(String))
  1515. dt_order.Columns.Add("stockid_name", GetType(String))
  1516. dt_order.Columns.Add("aux_unit_id", GetType(String))
  1517. dt_order.Columns.Add("qty", GetType(String))
  1518. dt_order.Columns.Add("batch_no", GetType(String))
  1519. For Each item As JObject In pageRows
  1520. dt_order.Rows.Add(item("material_id").ToString(), item("material_number").ToString(), item("material_name").ToString(), item("stock_number").ToString(), item("stockid_name").ToString(), item("aux_unit_id").ToString(), item("qty").ToString(), item("batch_no").ToString())
  1521. Next
  1522. ' 插入到数据库
  1523. Using connection As New SqlConnection(connstring)
  1524. connection.Open()
  1525. Using bulkCopy As New SqlBulkCopy(connection)
  1526. bulkCopy.DestinationTableName = "hf_00_k3_realtime_stock"
  1527. ' 4. 映射字段
  1528. bulkCopy.ColumnMappings.Add("material_id", "material_id")
  1529. bulkCopy.ColumnMappings.Add("material_number", "material_number")
  1530. bulkCopy.ColumnMappings.Add("material_name", "material_category_name")
  1531. bulkCopy.ColumnMappings.Add("stock_number", "stock_number")
  1532. bulkCopy.ColumnMappings.Add("stockid_name", "stockid_name")
  1533. bulkCopy.ColumnMappings.Add("aux_unit_id", "aux_unit_id")
  1534. bulkCopy.ColumnMappings.Add("qty", "qty")
  1535. bulkCopy.ColumnMappings.Add("batch_no", "batch_no")
  1536. Try
  1537. ' 5. 执行批量插入
  1538. bulkCopy.WriteToServer(dt_order)
  1539. MsgBox("数据批量插入成功!")
  1540. Catch ex As Exception
  1541. MsgBox("插入数据失败:" & ex.Message)
  1542. End Try
  1543. End Using
  1544. End Using
  1545. End If
  1546. Next
  1547. Dim sql_detail As String = "select * from hf_00_k3_realtime_stock" '----------------------------每张订单
  1548. Dim cmd1 As New SqlCommand(sql_detail, conn)
  1549. Dim da As New SqlDataAdapter
  1550. Dim dt As New DataTable
  1551. da.SelectCommand = cmd1
  1552. da.Fill(dt)
  1553. For x As Integer = 0 To dt.Rows.Count - 1 '--------------------每张订单写入明细
  1554. order_id = dt.Rows(x).Item("id")
  1555. order_no = dt.Rows(x).Item("bill_no")
  1556. Dim paramLst11 As New List(Of LrGetToken.LrParam)
  1557. Dim param11 As New LrGetToken.LrParam()
  1558. param11.pKey = "id"
  1559. param11.pValue = dt.Rows(x).Item(0)
  1560. paramLst11.Add(param11)
  1561. Dim percents As String = ""
  1562. Dim card As String = ""
  1563. ' 调用 API 获取每页数据详请
  1564. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst11, "jdy/v2/scm/sal_order_detail")
  1565. Dim pageData As JObject = JObject.Parse(strJson)
  1566. ' 获取 remark 字段
  1567. Dim remark As String = pageData("data")("remark").ToString()
  1568. ' 获取 material_entity 数组
  1569. Dim materialEntities As JArray = pageData("data")("material_entity")
  1570. For Each material As JObject In materialEntities
  1571. ' 确保 "custom_entity_field" 存在于 material 中
  1572. If material("custom_entity_field") IsNot Nothing Then
  1573. ' 确保 "custom_entity_field" 是一个数组
  1574. If material("custom_entity_field").Type = JTokenType.Array Then
  1575. Dim customEntity As JArray = material("custom_entity_field")
  1576. ' 继续处理数组内容
  1577. ElseIf material("custom_entity_field").Type = JTokenType.Object Then
  1578. Dim customEntity As JObject = material("custom_entity_field")
  1579. ' 访问自定义字段
  1580. If customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name") IsNot Nothing Then
  1581. Dim customFieldName As String = customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name").ToString()
  1582. percents = customFieldName '-------打尺
  1583. Else
  1584. Console.WriteLine("字段 '3t1q2jkjahvn2_name' 不存在。")
  1585. End If
  1586. If customEntity("custom_entity_field__1__4mrjiazczldljia6") IsNot Nothing Then
  1587. Dim card_no As String = customEntity("custom_entity_field__1__4mrjiazczldljia6").ToString() '----卡号
  1588. card = card_no
  1589. Else
  1590. Console.WriteLine("字段 'custom_entity_field__1__4mrjiazczldljia6' 不存在。")
  1591. End If
  1592. End If
  1593. Else
  1594. Console.WriteLine("material 对象中没有 'custom_entity_field' 字段。")
  1595. End If
  1596. Next
  1597. ' 遍历所有行
  1598. For Each materialEntity As JObject In materialEntities
  1599. ' 提取每一行的数据
  1600. Dim materialName As String = materialEntity("material_name").ToString()
  1601. Dim materialNumber As String = materialEntity("material_number").ToString()
  1602. Dim stockName As String = materialEntity("stock_name").ToString()
  1603. Dim price As Double = Convert.ToDouble(materialEntity("price"))
  1604. Dim qty As Integer = Convert.ToInt32(materialEntity("qty"))
  1605. Dim comment As String = materialEntity("comment").ToString()
  1606. Dim deliveryDate As String = materialEntity("delivery_date").ToString()
  1607. Dim customEntityName As String = percents
  1608. Dim query As String = "
  1609. INSERT INTO hf_00_orders_detail
  1610. (material_name, material_number, stock_name, price, qty, comment, delivery_date, custom_entity_name, remark,card,order_id,order_no)
  1611. VALUES (@material_name, @material_number, @stock_name, @price, @qty, @comment, @delivery_date, @custom_entity_name, @remark,@card,@order_id,@order_no)"
  1612. Try
  1613. ' 创建数据库连接
  1614. Using connection As New SqlConnection(connstring)
  1615. connection.Open()
  1616. ' 创建 SQL 命令
  1617. Using cmd As New SqlCommand(query, connection)
  1618. ' 添加参数并传递变量值
  1619. cmd.Parameters.AddWithValue("@material_name", materialName)
  1620. cmd.Parameters.AddWithValue("@material_number", materialNumber)
  1621. cmd.Parameters.AddWithValue("@stock_name", stockName)
  1622. cmd.Parameters.AddWithValue("@price", price)
  1623. cmd.Parameters.AddWithValue("@qty", qty)
  1624. cmd.Parameters.AddWithValue("@comment", comment)
  1625. cmd.Parameters.AddWithValue("@delivery_date", deliveryDate)
  1626. cmd.Parameters.AddWithValue("@custom_entity_name", customEntityName)
  1627. cmd.Parameters.AddWithValue("@remark", remark)
  1628. cmd.Parameters.AddWithValue("@card", card)
  1629. cmd.Parameters.AddWithValue("@order_id", order_id)
  1630. cmd.Parameters.AddWithValue("@order_no", order_no)
  1631. ' 执行插入操作
  1632. cmd.ExecuteNonQuery()
  1633. End Using
  1634. End Using
  1635. ' MessageBox.Show("数据已成功插入!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information)
  1636. Catch ex As Exception
  1637. MessageBox.Show("插入数据时出错:" & ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
  1638. End Try
  1639. Next
  1640. Next
  1641. MsgBox("")
  1642. conn.Close()
  1643. Catch ex As Exception
  1644. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  1645. End Try
  1646. MsgBox("")
  1647. End Sub
  1648. Private Sub inv_io(stringJson As String)
  1649. Dim order_id As String = ""
  1650. Dim order_no As String = ""
  1651. 'Dim card As String = ""
  1652. Dim cust_id As String = ""
  1653. Dim cust_name As String = ""
  1654. Dim bill_date As String = ""
  1655. Dim cust_number As String = ""
  1656. Dim bill_close_state As String = ""
  1657. Dim io_status As String = ""
  1658. Dim real_io_status As String = ""
  1659. Try
  1660. ' 解析 JSON 数据
  1661. Dim jsonData As JObject = JObject.Parse(stringJson)
  1662. 'Dim dt As New DataTable()
  1663. ' 获取 total_page
  1664. Dim totalPage As Integer = jsonData("data")("total_page")
  1665. dt_global = New DataTable()
  1666. ' 尝试获取 "rows"(方法1)
  1667. Dim rows1 As JArray = Nothing
  1668. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  1669. rows1 = jsonData("data")("rows")
  1670. End If
  1671. ' 尝试获取 "data"(方法2)
  1672. Dim rows2 As JObject = Nothing
  1673. If jsonData("data") IsNot Nothing Then
  1674. rows2 = jsonData("data")
  1675. End If
  1676. ' 处理方法1: 解析 "rows" (JArray)
  1677. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  1678. ' 取第一条数据的字段作为列名
  1679. For Each prop As JProperty In rows1(0)
  1680. dt_global.Columns.Add(prop.Name)
  1681. Next
  1682. ' 添加数据
  1683. For Each item As JObject In rows1
  1684. Dim row As DataRow = dt_global.NewRow()
  1685. For Each prop As JProperty In item.Properties()
  1686. row(prop.Name) = prop.Value.ToString()
  1687. Next
  1688. dt_global.Rows.Add(row)
  1689. Next
  1690. ElseIf rows2 IsNot Nothing Then
  1691. Else
  1692. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  1693. End If
  1694. ' 绑定 DataGridView
  1695. DataGridView1.DataSource = dt_global
  1696. ' 获取数据库连接
  1697. Dim conn As New SqlConnection(connstring)
  1698. conn.Open()
  1699. Dim sql As String = ""
  1700. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1701. ' 遍历每一页的 rows
  1702. For page As Integer = 1 To totalPage
  1703. Dim paramLst As New List(Of LrGetToken.LrParam)
  1704. Dim param As New LrGetToken.LrParam()
  1705. 'param.pKey = "bill_close_state"
  1706. 'param.pValue = "C"
  1707. 'paramLst.Add(param)
  1708. param = New LrGetToken.LrParam()
  1709. param.pKey = "page" : param.pValue = page
  1710. paramLst.Add(param)
  1711. param = New LrGetToken.LrParam()
  1712. param.pKey = "page_size" : param.pValue = 1000
  1713. paramLst.Add(param)
  1714. ' 调用 API 获取每页数据详请
  1715. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/inv/inv_inventory_ims")
  1716. Dim pageData As JObject = JObject.Parse(strJson)
  1717. ' 获取当前页的 rows 数据
  1718. Dim pageRows As JArray = pageData("data")("rows")
  1719. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  1720. ' 插入每页数据到数据库
  1721. Dim dt_order As New DataTable
  1722. dt_order.Columns.Add("material_id", GetType(String))
  1723. dt_order.Columns.Add("material_number", GetType(String))
  1724. dt_order.Columns.Add("material_name", GetType(String))
  1725. dt_order.Columns.Add("stock_number", GetType(String))
  1726. dt_order.Columns.Add("stockid_name", GetType(String))
  1727. dt_order.Columns.Add("aux_unit_id", GetType(String))
  1728. dt_order.Columns.Add("qty", GetType(String))
  1729. dt_order.Columns.Add("batch_no", GetType(String))
  1730. For Each item As JObject In pageRows
  1731. dt_order.Rows.Add(item("material_id").ToString(), item("material_number").ToString(), item("material_name").ToString(), item("stock_number").ToString(), item("stockid_name").ToString(), item("aux_unit_id").ToString(), item("qty").ToString(), item("batch_no").ToString())
  1732. Next
  1733. ' 插入到数据库
  1734. Using connection As New SqlConnection(connstring)
  1735. connection.Open()
  1736. Using bulkCopy As New SqlBulkCopy(connection)
  1737. bulkCopy.DestinationTableName = "hf_00_k3_realtime_stock"
  1738. ' 4. 映射字段
  1739. bulkCopy.ColumnMappings.Add("material_id", "material_id")
  1740. bulkCopy.ColumnMappings.Add("material_number", "material_number")
  1741. bulkCopy.ColumnMappings.Add("material_name", "material_category_name")
  1742. bulkCopy.ColumnMappings.Add("stock_number", "stock_number")
  1743. bulkCopy.ColumnMappings.Add("stockid_name", "stockid_name")
  1744. bulkCopy.ColumnMappings.Add("aux_unit_id", "aux_unit_id")
  1745. bulkCopy.ColumnMappings.Add("qty", "qty")
  1746. bulkCopy.ColumnMappings.Add("batch_no", "batch_no")
  1747. Try
  1748. ' 5. 执行批量插入
  1749. bulkCopy.WriteToServer(dt_order)
  1750. MsgBox("数据批量插入成功!")
  1751. Catch ex As Exception
  1752. MsgBox("插入数据失败:" & ex.Message)
  1753. End Try
  1754. End Using
  1755. End Using
  1756. End If
  1757. Next
  1758. Dim sql_detail As String = "select * from hf_00_k3_realtime_stock" '----------------------------每张订单
  1759. Dim cmd1 As New SqlCommand(sql_detail, conn)
  1760. Dim da As New SqlDataAdapter
  1761. Dim dt As New DataTable
  1762. da.SelectCommand = cmd1
  1763. da.Fill(dt)
  1764. For x As Integer = 0 To dt.Rows.Count - 1 '--------------------每张订单写入明细
  1765. order_id = dt.Rows(x).Item("id")
  1766. order_no = dt.Rows(x).Item("bill_no")
  1767. Dim paramLst11 As New List(Of LrGetToken.LrParam)
  1768. Dim param11 As New LrGetToken.LrParam()
  1769. param11.pKey = "id"
  1770. param11.pValue = dt.Rows(x).Item(0)
  1771. paramLst11.Add(param11)
  1772. Dim percents As String = ""
  1773. Dim card As String = “”
  1774. ' 调用 API 获取每页数据详请
  1775. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst11, "jdy/v2/scm/sal_order_detail")
  1776. Dim pageData As JObject = JObject.Parse(strJson)
  1777. ' 获取 remark 字段
  1778. Dim remark As String = pageData("data")("remark").ToString()
  1779. ' 获取 material_entity 数组
  1780. Dim materialEntities As JArray = pageData("data")("material_entity")
  1781. For Each material As JObject In materialEntities
  1782. ' 确保 "custom_entity_field" 存在于 material 中
  1783. If material("custom_entity_field") IsNot Nothing Then
  1784. ' 确保 "custom_entity_field" 是一个数组
  1785. If material("custom_entity_field").Type = JTokenType.Array Then
  1786. Dim customEntity As JArray = material("custom_entity_field")
  1787. ' 继续处理数组内容
  1788. ElseIf material("custom_entity_field").Type = JTokenType.Object Then
  1789. Dim customEntity As JObject = material("custom_entity_field")
  1790. ' 访问自定义字段
  1791. If customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name") IsNot Nothing Then
  1792. Dim customFieldName As String = customEntity("custom_entity_field__4__3t1q2jkjiahvn2_name").ToString()
  1793. percents = customFieldName '-------打尺
  1794. Else
  1795. Console.WriteLine("字段 '3t1q2jkjahvn2_name' 不存在。")
  1796. End If
  1797. If customEntity("custom_entity_field__1__4mrjiazczldljia6") IsNot Nothing Then
  1798. Dim card_no As String = customEntity("custom_entity_field__1__4mrjiazczldljia6").ToString() '----卡号
  1799. card = card_no
  1800. Else
  1801. Console.WriteLine("字段 'custom_entity_field__1__4mrjiazczldljia6' 不存在。")
  1802. End If
  1803. End If
  1804. Else
  1805. Console.WriteLine("material 对象中没有 'custom_entity_field' 字段。")
  1806. End If
  1807. Next
  1808. ' 遍历所有行
  1809. For Each materialEntity As JObject In materialEntities
  1810. ' 提取每一行的数据
  1811. Dim materialName As String = materialEntity("material_name").ToString()
  1812. Dim materialNumber As String = materialEntity("material_number").ToString()
  1813. Dim stockName As String = materialEntity("stock_name").ToString()
  1814. Dim price As Double = Convert.ToDouble(materialEntity("price"))
  1815. Dim qty As Integer = Convert.ToInt32(materialEntity("qty"))
  1816. Dim comment As String = materialEntity("comment").ToString()
  1817. Dim deliveryDate As String = materialEntity("delivery_date").ToString()
  1818. Dim customEntityName As String = percents
  1819. Dim query As String = "
  1820. INSERT INTO hf_00_orders_detail
  1821. (material_name, material_number, stock_name, price, qty, comment, delivery_date, custom_entity_name, remark,card,order_id,order_no)
  1822. VALUES (@material_name, @material_number, @stock_name, @price, @qty, @comment, @delivery_date, @custom_entity_name, @remark,@card,@order_id,@order_no)"
  1823. Try
  1824. ' 创建数据库连接
  1825. Using connection As New SqlConnection(connstring)
  1826. connection.Open()
  1827. ' 创建 SQL 命令
  1828. Using cmd As New SqlCommand(query, connection)
  1829. ' 添加参数并传递变量值
  1830. cmd.Parameters.AddWithValue("@material_name", materialName)
  1831. cmd.Parameters.AddWithValue("@material_number", materialNumber)
  1832. cmd.Parameters.AddWithValue("@stock_name", stockName)
  1833. cmd.Parameters.AddWithValue("@price", price)
  1834. cmd.Parameters.AddWithValue("@qty", qty)
  1835. cmd.Parameters.AddWithValue("@comment", comment)
  1836. cmd.Parameters.AddWithValue("@delivery_date", deliveryDate)
  1837. cmd.Parameters.AddWithValue("@custom_entity_name", customEntityName)
  1838. cmd.Parameters.AddWithValue("@remark", remark)
  1839. cmd.Parameters.AddWithValue("@card", card)
  1840. cmd.Parameters.AddWithValue("@order_id", order_id)
  1841. cmd.Parameters.AddWithValue("@order_no", order_no)
  1842. ' 执行插入操作
  1843. cmd.ExecuteNonQuery()
  1844. End Using
  1845. End Using
  1846. ' MessageBox.Show("数据已成功插入!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information)
  1847. Catch ex As Exception
  1848. MessageBox.Show("插入数据时出错:" & ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
  1849. End Try
  1850. Next
  1851. Next
  1852. conn.Close()
  1853. Catch ex As Exception
  1854. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  1855. End Try
  1856. MsgBox("")
  1857. End Sub
  1858. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
  1859. '-------仓库列表
  1860. Dim sql As String = ""
  1861. sql = "delete from hf_00_k3_wh"
  1862. cmd.CommandText = sql
  1863. cmd.Connection = conn
  1864. cmd.ExecuteNonQuery()
  1865. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1866. Dim paramLst As New List(Of LrGetToken.LrParam)
  1867. Dim param As New LrGetToken.LrParam()
  1868. 'param = New LrGetToken.LrParam()
  1869. 'param.pKey = "bill_close_state" : param.pValue = "C"
  1870. 'paramLst.Add(param)
  1871. param = New LrGetToken.LrParam()
  1872. param.pKey = "page" : param.pValue = 1 '------page
  1873. paramLst.Add(param)
  1874. param = New LrGetToken.LrParam()
  1875. param.pKey = "page_size" : param.pValue = 100 '------page_size
  1876. paramLst.Add(param)
  1877. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/bd/store")
  1878. update_warehouse(strJson)
  1879. End Sub
  1880. Private Sub update_warehouse(stringJson As String)
  1881. Dim order_id As String = ""
  1882. Dim order_no As String = ""
  1883. 'Dim card As String = ""
  1884. Dim cust_id As String = ""
  1885. Dim cust_name As String = ""
  1886. Dim bill_date As String = ""
  1887. Dim cust_number As String = ""
  1888. Dim bill_close_state As String = ""
  1889. Dim io_status As String = ""
  1890. Dim real_io_status As String = ""
  1891. Try
  1892. ' 解析 JSON 数据
  1893. Dim jsonData As JObject = JObject.Parse(stringJson)
  1894. 'Dim dt As New DataTable()
  1895. ' 获取 total_page
  1896. Dim totalPage As Integer = jsonData("data")("total_page")
  1897. dt_global = New DataTable()
  1898. ' 尝试获取 "rows"(方法1)
  1899. Dim rows1 As JArray = Nothing
  1900. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  1901. rows1 = jsonData("data")("rows")
  1902. End If
  1903. ' 尝试获取 "data"(方法2)
  1904. Dim rows2 As JObject = Nothing
  1905. If jsonData("data") IsNot Nothing Then
  1906. rows2 = jsonData("data")
  1907. End If
  1908. ' 处理方法1: 解析 "rows" (JArray)
  1909. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  1910. ' 取第一条数据的字段作为列名
  1911. For Each prop As JProperty In rows1(0)
  1912. dt_global.Columns.Add(prop.Name)
  1913. Next
  1914. ' 添加数据
  1915. For Each item As JObject In rows1
  1916. Dim row As DataRow = dt_global.NewRow()
  1917. For Each prop As JProperty In item.Properties()
  1918. row(prop.Name) = prop.Value.ToString()
  1919. Next
  1920. dt_global.Rows.Add(row)
  1921. Next
  1922. ElseIf rows2 IsNot Nothing Then
  1923. Else
  1924. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  1925. End If
  1926. ' 绑定 DataGridView
  1927. DataGridView1.DataSource = dt_global
  1928. ' 获取数据库连接
  1929. Dim conn As New SqlConnection(connstring)
  1930. conn.Open()
  1931. Dim sql As String = ""
  1932. Dim clsX As New LrGetToken.LrGetMtrlDatum
  1933. ' 遍历每一页的 rows
  1934. For page As Integer = 1 To totalPage
  1935. Dim paramLst As New List(Of LrGetToken.LrParam)
  1936. Dim param As New LrGetToken.LrParam()
  1937. 'param.pKey = "bill_close_state"
  1938. 'param.pValue = "C"
  1939. 'paramLst.Add(param)
  1940. param = New LrGetToken.LrParam()
  1941. param.pKey = "page" : param.pValue = page
  1942. paramLst.Add(param)
  1943. param = New LrGetToken.LrParam()
  1944. param.pKey = "page_size" : param.pValue = 1000
  1945. paramLst.Add(param)
  1946. ' 调用 API 获取每页数据详请
  1947. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/bd/store")
  1948. Dim pageData As JObject = JObject.Parse(strJson)
  1949. ' 获取当前页的 rows 数据
  1950. Dim pageRows As JArray = pageData("data")("rows")
  1951. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  1952. ' 插入每页数据到数据库
  1953. Dim dt_order As New DataTable
  1954. dt_order.Columns.Add("id", GetType(String))
  1955. dt_order.Columns.Add("number", GetType(String))
  1956. dt_order.Columns.Add("name", GetType(String))
  1957. dt_order.Columns.Add("group_name", GetType(String))
  1958. dt_order.Columns.Add("group_id", GetType(String))
  1959. dt_order.Columns.Add("group_number", GetType(String))
  1960. dt_order.Columns.Add("is_allow_freight", GetType(String))
  1961. dt_order.Columns.Add("is_allow_neg", GetType(String))
  1962. dt_order.Columns.Add("enable", GetType(String))
  1963. For Each item As JObject In pageRows
  1964. dt_order.Rows.Add(item("id").ToString(), item("number").ToString(), item("name").ToString(), item("group_name").ToString(), item("group_id").ToString(), item("group_number").ToString(), item("is_allow_freight").ToString(), item("is_allow_neg").ToString(), item("enable").ToString())
  1965. Next
  1966. ' 插入到数据库
  1967. Using connection As New SqlConnection(connstring)
  1968. connection.Open()
  1969. Using bulkCopy As New SqlBulkCopy(connection)
  1970. bulkCopy.DestinationTableName = "hf_00_k3_wh"
  1971. ' 4. 映射字段
  1972. bulkCopy.ColumnMappings.Add("id", "id")
  1973. bulkCopy.ColumnMappings.Add("number", "number")
  1974. bulkCopy.ColumnMappings.Add("name", "name")
  1975. bulkCopy.ColumnMappings.Add("group_name", "group_name")
  1976. bulkCopy.ColumnMappings.Add("group_id", "group_id")
  1977. bulkCopy.ColumnMappings.Add("group_number", "group_number")
  1978. bulkCopy.ColumnMappings.Add("is_allow_freight", "is_allow_freight")
  1979. bulkCopy.ColumnMappings.Add("is_allow_neg", "is_allow_neg")
  1980. bulkCopy.ColumnMappings.Add("enable", "enable")
  1981. Try
  1982. ' 5. 执行批量插入
  1983. bulkCopy.WriteToServer(dt_order)
  1984. MsgBox("数据批量插入成功!")
  1985. Catch ex As Exception
  1986. MsgBox("插入数据失败:" & ex.Message)
  1987. End Try
  1988. End Using
  1989. End Using
  1990. End If
  1991. Next
  1992. conn.Close()
  1993. Catch ex As Exception
  1994. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  1995. End Try
  1996. MsgBox("更新仓库完成")
  1997. End Sub
  1998. Private Sub update_material(stringJson As String)
  1999. Dim order_id As String = ""
  2000. Dim order_no As String = ""
  2001. 'Dim card As String = ""
  2002. Dim cust_id As String = ""
  2003. Dim cust_name As String = ""
  2004. Dim bill_date As String = ""
  2005. Dim cust_number As String = ""
  2006. Dim bill_close_state As String = ""
  2007. Dim io_status As String = ""
  2008. Dim real_io_status As String = ""
  2009. Try
  2010. ' 解析 JSON 数据
  2011. Dim jsonData As JObject = JObject.Parse(stringJson)
  2012. 'Dim dt As New DataTable()
  2013. ' 获取 total_page
  2014. Dim totalPage As Integer = jsonData("data")("total_page")
  2015. dt_global = New DataTable()
  2016. ' 尝试获取 "rows"(方法1)
  2017. Dim rows1 As JArray = Nothing
  2018. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  2019. rows1 = jsonData("data")("rows")
  2020. End If
  2021. ' 尝试获取 "data"(方法2)
  2022. Dim rows2 As JObject = Nothing
  2023. If jsonData("data") IsNot Nothing Then
  2024. rows2 = jsonData("data")
  2025. End If
  2026. ' 处理方法1: 解析 "rows" (JArray)
  2027. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  2028. ' 取第一条数据的字段作为列名
  2029. For Each prop As JProperty In rows1(0)
  2030. dt_global.Columns.Add(prop.Name)
  2031. Next
  2032. ' 添加数据
  2033. For Each item As JObject In rows1
  2034. Dim row As DataRow = dt_global.NewRow()
  2035. For Each prop As JProperty In item.Properties()
  2036. row(prop.Name) = prop.Value.ToString()
  2037. Next
  2038. dt_global.Rows.Add(row)
  2039. Next
  2040. ElseIf rows2 IsNot Nothing Then
  2041. Else
  2042. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  2043. End If
  2044. ' 绑定 DataGridView
  2045. DataGridView1.DataSource = dt_global
  2046. ' 获取数据库连接
  2047. Dim conn As New SqlConnection(connstring)
  2048. conn.Open()
  2049. Dim sql As String = ""
  2050. Dim clsX As New LrGetToken.LrGetMtrlDatum
  2051. ' 遍历每一页的 rows
  2052. For page As Integer = 1 To totalPage
  2053. Dim paramLst As New List(Of LrGetToken.LrParam)
  2054. Dim param As New LrGetToken.LrParam()
  2055. 'param.pKey = "bill_close_state"
  2056. 'param.pValue = "C"
  2057. 'paramLst.Add(param)
  2058. param = New LrGetToken.LrParam()
  2059. param.pKey = "page" : param.pValue = page
  2060. paramLst.Add(param)
  2061. param = New LrGetToken.LrParam()
  2062. param.pKey = "page_size" : param.pValue = 1000
  2063. paramLst.Add(param)
  2064. ' 调用 API 获取每页数据详请
  2065. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/bd/material")
  2066. Dim pageData As JObject = JObject.Parse(strJson)
  2067. ' 获取当前页的 rows 数据
  2068. Dim pageRows As JArray = pageData("data")("rows")
  2069. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  2070. ' 插入每页数据到数据库
  2071. Dim dt_order As New DataTable
  2072. dt_order.Columns.Add("parent_name", GetType(String))
  2073. dt_order.Columns.Add("number", GetType(String))
  2074. dt_order.Columns.Add("parent_number", GetType(String))
  2075. dt_order.Columns.Add("parent_id", GetType(String))
  2076. dt_order.Columns.Add("name", GetType(String))
  2077. dt_order.Columns.Add("id", GetType(String))
  2078. dt_order.Columns.Add("help_code", GetType(String))
  2079. dt_order.Columns.Add("stock_name", GetType(String))
  2080. dt_order.Columns.Add("stock_number", GetType(String))
  2081. For Each item As JObject In pageRows
  2082. dt_order.Rows.Add(item("parent_name").ToString(), item("number").ToString(), item("parent_number").ToString(), item("parent_id").ToString(), item("name").ToString(), item("id").ToString(), item("help_code").ToString(), item("stock_name").ToString(), item("stock_number").ToString())
  2083. Next
  2084. ' 插入到数据库
  2085. Using connection As New SqlConnection(connstring)
  2086. connection.Open()
  2087. Using bulkCopy As New SqlBulkCopy(connection)
  2088. bulkCopy.DestinationTableName = "hf_00_k3_ProductInfo"
  2089. ' 4. 映射字段
  2090. bulkCopy.ColumnMappings.Add("parent_name", "parent_name")
  2091. bulkCopy.ColumnMappings.Add("number", "number")
  2092. bulkCopy.ColumnMappings.Add("parent_number", "parent_number")
  2093. bulkCopy.ColumnMappings.Add("parent_id", "parent_id")
  2094. bulkCopy.ColumnMappings.Add("name", "name")
  2095. bulkCopy.ColumnMappings.Add("id", "id")
  2096. bulkCopy.ColumnMappings.Add("help_code", "help_code")
  2097. bulkCopy.ColumnMappings.Add("stock_name", "stock_name")
  2098. bulkCopy.ColumnMappings.Add("stock_number", "stock_number")
  2099. Try
  2100. ' 5. 执行批量插入
  2101. bulkCopy.WriteToServer(dt_order)
  2102. ' MsgBox("数据批量插入成功!")
  2103. Catch ex As Exception
  2104. MsgBox("插入数据失败:" & ex.Message)
  2105. End Try
  2106. End Using
  2107. End Using
  2108. End If
  2109. Next
  2110. conn.Close()
  2111. Catch ex As Exception
  2112. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  2113. End Try
  2114. MsgBox("更新物料完成")
  2115. End Sub
  2116. Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click '-商品列表
  2117. '-------商品列表---ok
  2118. Dim sql As String = ""
  2119. sql = "delete from hf_00_k3_ProductInfo"
  2120. cmd.CommandText = sql
  2121. cmd.Connection = conn
  2122. cmd.ExecuteNonQuery()
  2123. Dim clsX As New LrGetToken.LrGetMtrlDatum
  2124. Dim paramLst As New List(Of LrGetToken.LrParam)
  2125. Dim param As New LrGetToken.LrParam()
  2126. 'param = New LrGetToken.LrParam()
  2127. 'param.pKey = "bill_close_state" : param.pValue = "C"
  2128. 'paramLst.Add(param)
  2129. param = New LrGetToken.LrParam()
  2130. param.pKey = "page" : param.pValue = 1 '------page
  2131. paramLst.Add(param)
  2132. param = New LrGetToken.LrParam()
  2133. param.pKey = "page_size" : param.pValue = 100 '------page_size
  2134. paramLst.Add(param)
  2135. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/bd/material")
  2136. update_material(strJson)
  2137. End Sub
  2138. Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
  2139. '----生产领料
  2140. 'Dim sql As String = ""
  2141. 'sql = "delete from hf_00_k3_realtime_stock"
  2142. 'cmd.CommandText = sql
  2143. 'cmd.Connection = conn
  2144. 'cmd.ExecuteNonQuery()
  2145. 'sql = "delete from hf_00_orders_detail"
  2146. 'cmd.CommandText = sql
  2147. 'cmd.Connection = conn
  2148. 'cmd.ExecuteNonQuery()
  2149. Dim clsX As New LrGetToken.LrGetMtrlDatum
  2150. 'Dim paramLst As New List(Of LrGetToken.LrParam)
  2151. 'Dim param As New LrGetToken.LrParam()
  2152. 'param = New LrGetToken.LrParam()
  2153. 'param.pKey = "bill_close_state" : param.pValue = "C"
  2154. 'paramLst.Add(param)
  2155. 'param = New LrGetToken.LrParam()
  2156. 'param.pKey = "bill_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  2157. 'paramLst.Add(param)
  2158. sql = "select outdate,card from ht_retan_chem_out where card like '%19115%' and outdate BETWEEN '" & dtp_start.Value & "' and '" & dtp_end.Value & "' group by outdate,card "
  2159. cmd.CommandText = sql
  2160. dt = New DataTable
  2161. da.SelectCommand = cmd
  2162. da.Fill(dt)
  2163. For x As Integer = 0 To dt.Rows.Count - 1
  2164. ' 定义一个空的 requestData 字典
  2165. Dim requestData As New Dictionary(Of String, Object)
  2166. requestData.Add("bill_date", "2025-05-31")
  2167. requestData.Add("dept_id", "1859378504722898945")
  2168. ' 创建一个空的 material_entity 列表
  2169. Dim materialList As New List(Of Object)
  2170. sql = "SELECT TOP (200) HT_Retan_Chem_Out.outDate, HT_Retan_Chem_Out.Card, HT_Retan_Chem_Out.Weight, HT_Retan_Chem_Out.chem_name, HT_Retan_Chem_Out.chem_code, HT_Retan_Chem_Out.chem_percent, HT_Retan_Chem_Out.Rcp_name, HT_Retan_Chem_Out.chem_weight, HT_Retan_Chem_Out.item, HT_Retan_Chem_Out.time, HT_Retan_Chem_Out.comment, hf_00_k3_ProductInfo.id FROM HT_Retan_Chem_Out LEFT OUTER JOIN hf_00_k3_ProductInfo ON HT_Retan_Chem_Out.chem_code = hf_00_k3_ProductInfo.number where (hf_00_k3_ProductInfo.id IS NOT NULL) and outdate='" & dt.Rows(x).Item("outdate") & "' and card='" & dt.Rows(x).Item("card") & "'"
  2171. cmd.CommandText = sql
  2172. da.SelectCommand = cmd
  2173. Dim dt_detail As New DataTable
  2174. da.Fill(dt_detail)
  2175. For y As Integer = 0 To dt_detail.Rows.Count - 1
  2176. ' 用循环生成并添加多笔资料
  2177. Dim material = New With {
  2178. .material_id = dt_detail.Rows(y).Item("id").ToString(), ' material_id
  2179. .qty = dt_detail.Rows(y).Item("chem_weight"),
  2180. .stock_id = "1854401706419382272",
  2181. .comment = dt_detail.Rows(y).Item("card"),
  2182. .unit_id = "7"
  2183. }
  2184. materialList.Add(material) ' 将每笔资料添加到列表
  2185. Next
  2186. ' 将 material_entity 列表添加到 requestData
  2187. requestData.Add("material_entity", materialList)
  2188. ' 将数据转换为 JSON 字符串
  2189. Dim jsonContent As String = JsonConvert.SerializeObject(requestData)
  2190. Dim strJson As String = clsX.GetDatumX1(gClientID, gClientSecret, gAppToken, "jdy/v2/scm/inv_pick", jsonContent)
  2191. import_scll(strJson) '未完
  2192. Next
  2193. MsgBox("导入完成")
  2194. End Sub
  2195. Private Sub import_scll(stringjson As String)
  2196. Dim order_id As String = ""
  2197. Dim order_no As String = ""
  2198. 'Dim card As String = ""
  2199. Dim cust_id As String = ""
  2200. Dim cust_name As String = ""
  2201. Dim bill_date As String = ""
  2202. Dim cust_number As String = ""
  2203. Dim bill_close_state As String = ""
  2204. Dim io_status As String = ""
  2205. Dim real_io_status As String = ""
  2206. Try
  2207. ' 解析 JSON 数据
  2208. Dim jsonData As JObject = JObject.Parse(stringjson)
  2209. 'Dim dt As New DataTable()
  2210. ' 获取 total_page
  2211. Dim totalPage As String = jsonData("data")("id_number_map")
  2212. Catch
  2213. End Try
  2214. End Sub
  2215. ' 在 Form 中定义一个方法来更新控件
  2216. Public Sub UpdateResponseText(response As String)
  2217. ' 确保更新控件在 UI 线程中执行
  2218. If TextBox5.InvokeRequired Then
  2219. TextBox5.Invoke(New Action(Of String)(AddressOf UpdateResponseText), response)
  2220. Else
  2221. TextBox5.Text = response
  2222. End If
  2223. End Sub
  2224. Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
  2225. '----调拨入库
  2226. 'Dim sql As String = ""
  2227. 'sql = "delete from hf_00_orders_main"
  2228. 'cmd.CommandText = sql
  2229. 'cmd.Connection = conn
  2230. 'cmd.ExecuteNonQuery()
  2231. 'sql = "delete from hf_00_orders_detail"
  2232. 'cmd.CommandText = sql
  2233. 'cmd.Connection = conn
  2234. 'cmd.ExecuteNonQuery()
  2235. Dim clsX As New LrGetToken.LrGetMtrlDatum
  2236. Dim paramLst As New List(Of LrGetToken.LrParam)
  2237. Dim param As New LrGetToken.LrParam()
  2238. param = New LrGetToken.LrParam()
  2239. param.pKey = "end_bill_date" : param.pValue = dtp_end.Value.ToString("yyyy-MM-dd")
  2240. paramLst.Add(param)
  2241. param = New LrGetToken.LrParam()
  2242. param.pKey = "page" : param.pValue = 1
  2243. paramLst.Add(param)
  2244. param = New LrGetToken.LrParam()
  2245. param.pKey = "page_size" : param.pValue = 100
  2246. paramLst.Add(param)
  2247. param = New LrGetToken.LrParam()
  2248. param.pKey = "start_bill_date" : param.pValue = dtp_start.Value.ToString("yyyy-MM-dd")
  2249. paramLst.Add(param)
  2250. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/scm/inv_tfin") '---调拨入库
  2251. BindJsonToDataGridView(strJson)
  2252. End Sub
  2253. Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
  2254. '-------部门列表
  2255. 'Dim sql As String = ""
  2256. 'sql = "delete from hf_00_k3_wh"
  2257. 'cmd.CommandText = sql
  2258. 'cmd.Connection = conn
  2259. 'cmd.ExecuteNonQuery()
  2260. Dim clsX As New LrGetToken.LrGetMtrlDatum
  2261. Dim paramLst As New List(Of LrGetToken.LrParam)
  2262. Dim param As New LrGetToken.LrParam()
  2263. 'param = New LrGetToken.LrParam()
  2264. 'param.pKey = "bill_close_state" : param.pValue = "C"
  2265. 'paramLst.Add(param)
  2266. 'param = New LrGetToken.LrParam()
  2267. 'param.pKey = "page" : param.pValue = 1 '------page
  2268. 'paramLst.Add(param)
  2269. 'param = New LrGetToken.LrParam()
  2270. 'param.pKey = "page_size" : param.pValue = 100 '------page_size
  2271. 'paramLst.Add(param)
  2272. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/bd/department")
  2273. update_dep(strJson)
  2274. End Sub
  2275. Private Sub update_dep(stringJson As String)
  2276. Dim order_id As String = ""
  2277. Dim order_no As String = ""
  2278. 'Dim card As String = ""
  2279. Dim cust_id As String = ""
  2280. Dim cust_name As String = ""
  2281. Dim bill_date As String = ""
  2282. Dim cust_number As String = ""
  2283. Dim bill_close_state As String = ""
  2284. Dim io_status As String = ""
  2285. Dim real_io_status As String = ""
  2286. Try
  2287. ' 解析 JSON 数据
  2288. Dim jsonData As JObject = JObject.Parse(stringJson)
  2289. 'Dim dt As New DataTable()
  2290. ' 获取 total_page
  2291. Dim totalPage As Integer = jsonData("data")("total_page")
  2292. dt_global = New DataTable()
  2293. ' 尝试获取 "rows"(方法1)
  2294. Dim rows1 As JArray = Nothing
  2295. If jsonData("data") IsNot Nothing AndAlso jsonData("data")("rows") IsNot Nothing Then
  2296. rows1 = jsonData("data")("rows")
  2297. End If
  2298. ' 尝试获取 "data"(方法2)
  2299. Dim rows2 As JObject = Nothing
  2300. If jsonData("data") IsNot Nothing Then
  2301. rows2 = jsonData("data")
  2302. End If
  2303. ' 处理方法1: 解析 "rows" (JArray)
  2304. If rows1 IsNot Nothing AndAlso rows1.Count > 0 Then
  2305. ' 取第一条数据的字段作为列名
  2306. For Each prop As JProperty In rows1(0)
  2307. dt_global.Columns.Add(prop.Name)
  2308. Next
  2309. ' 添加数据
  2310. For Each item As JObject In rows1
  2311. Dim row As DataRow = dt_global.NewRow()
  2312. For Each prop As JProperty In item.Properties()
  2313. row(prop.Name) = prop.Value.ToString()
  2314. Next
  2315. dt_global.Rows.Add(row)
  2316. Next
  2317. ElseIf rows2 IsNot Nothing Then
  2318. Else
  2319. MessageBox.Show("JSON 数据为空,无法转换为 DataTable")
  2320. End If
  2321. ' 绑定 DataGridView
  2322. DataGridView1.DataSource = dt_global
  2323. ' 获取数据库连接
  2324. Dim conn As New SqlConnection(connstring)
  2325. conn.Open()
  2326. Dim sql As String = ""
  2327. Dim clsX As New LrGetToken.LrGetMtrlDatum
  2328. ' 遍历每一页的 rows
  2329. For page As Integer = 1 To totalPage
  2330. Dim paramLst As New List(Of LrGetToken.LrParam)
  2331. Dim param As New LrGetToken.LrParam()
  2332. 'param.pKey = "bill_close_state"
  2333. 'param.pValue = "C"
  2334. 'paramLst.Add(param)
  2335. param = New LrGetToken.LrParam()
  2336. param.pKey = "page" : param.pValue = page
  2337. paramLst.Add(param)
  2338. param = New LrGetToken.LrParam()
  2339. param.pKey = "page_size" : param.pValue = 1000
  2340. paramLst.Add(param)
  2341. ' 调用 API 获取每页数据详请
  2342. Dim strJson As String = clsX.GetDatumX(gClientID, gClientSecret, gAppToken, paramLst, "jdy/v2/bd/department")
  2343. Dim pageData As JObject = JObject.Parse(strJson)
  2344. ' 获取当前页的 rows 数据
  2345. Dim pageRows As JArray = pageData("data")("rows")
  2346. If pageRows IsNot Nothing AndAlso pageRows.Count > 0 Then
  2347. ' 插入每页数据到数据库
  2348. Dim dt_order As New DataTable
  2349. dt_order.Columns.Add("id", GetType(String))
  2350. dt_order.Columns.Add("fullname", GetType(String))
  2351. dt_order.Columns.Add("number", GetType(String))
  2352. dt_order.Columns.Add("parent_id", GetType(String))
  2353. dt_order.Columns.Add("parent_name", GetType(String))
  2354. dt_order.Columns.Add("parent_number", GetType(String))
  2355. For Each item As JObject In pageRows
  2356. dt_order.Rows.Add(item("id").ToString(), item("fullname").ToString(), item("number").ToString(), item("parent_id").ToString(), item("parent_name").ToString(), item("parent_number").ToString())
  2357. Next
  2358. ' 插入到数据库
  2359. Using connection As New SqlConnection(connstring)
  2360. connection.Open()
  2361. Using bulkCopy As New SqlBulkCopy(connection)
  2362. bulkCopy.DestinationTableName = "hf_00_k3_dep"
  2363. ' 4. 映射字段
  2364. bulkCopy.ColumnMappings.Add("id", "id")
  2365. bulkCopy.ColumnMappings.Add("fullname", "fullname")
  2366. bulkCopy.ColumnMappings.Add("number", "number")
  2367. bulkCopy.ColumnMappings.Add("parent_id", "parent_id")
  2368. bulkCopy.ColumnMappings.Add("parent_name", "parent_name")
  2369. bulkCopy.ColumnMappings.Add("parent_number", "parent_number")
  2370. Try
  2371. ' 5. 执行批量插入
  2372. bulkCopy.WriteToServer(dt_order)
  2373. MsgBox("数据批量插入成功!")
  2374. Catch ex As Exception
  2375. MsgBox("插入数据失败:" & ex.Message)
  2376. End Try
  2377. End Using
  2378. End Using
  2379. End If
  2380. Next
  2381. conn.Close()
  2382. Catch ex As Exception
  2383. MessageBox.Show("解析 JSON 失败:" & ex.Message)
  2384. End Try
  2385. MsgBox("更新仓库完成")
  2386. End Sub
  2387. End Class