fqcitemsdetail.ashx 73 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547
  1. <%@ WebHandler Language="C#" Class="fqcitemsdetail" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.SessionState;
  5. using System.Collections.Generic;
  6. using System.Collections.Specialized;
  7. using System.Data;
  8. using Curtain.DataAccess;
  9. using DK.XuWei.WebMes;
  10. using Newtonsoft.Json;
  11. using System.Collections;
  12. using System.IO;
  13. using NPOI.HSSF.UserModel;
  14. using NPOI.SS.UserModel;
  15. using NPOI.XSSF.UserModel;
  16. /// <summary>
  17. /// TP_PM_FQCITEMSDETAIL
  18. /// xuwei create 2023-09-07
  19. /// </summary>
  20. public class fqcitemsdetail : IHttpHandler, IReadOnlySessionState
  21. {
  22. public void ProcessRequest(HttpContext context)
  23. {
  24. context.Response.ContentType = "text/plain";
  25. if (mes.LoginCheck() && context.Request["m"] is object)
  26. {
  27. Button b = new Button();
  28. if (mes.RightCheck(""))
  29. {
  30. b.fqcitemsdetailButtonIndex = true;
  31. b.fqcitemsdetailButtonInsert = false;
  32. b.fqcitemsdetailButtonInsertBatch = true;
  33. b.fqcitemsdetailButtonCopy = true;
  34. b.fqcitemsdetailButtonUpdate = false;
  35. b.fqcitemsdetailButtonDelete = false;
  36. b.fqcitemsdetailButtonCancel = false;
  37. b.fqcitemsdetailButtonSearch = false;
  38. b.fqcitemsdetailButtonDetail = true;
  39. b.fqcitemsdetailButtonCheckbox = false;
  40. b.fqcitemsdetailButtonExport = true;
  41. b.fqcitemsdetailButtonReload = true;
  42. b.fqcitemsdetailButtonBatch = true;
  43. b.fqcitemsdetailButtonImport = true;
  44. };
  45. switch (context.Request["m"].ToString().ToLower())
  46. {
  47. case "b":
  48. {
  49. //按钮
  50. context.Response.Write(new JsonResult(b).ToJson());
  51. break;
  52. }
  53. case "a":
  54. {
  55. //添加
  56. if (b.fqcitemsdetailButtonDetail && context.Request["id"] is object)
  57. context.Response.Write(detail());
  58. else
  59. {
  60. List<xRecord> list = new List<xRecord>();
  61. xRecord r = new xRecord();
  62. if (context.Request["pid"] is object) r.ITEMSID = context.Request["pid"];
  63. list.Add(r);
  64. context.Response.Write(new JsonResult(list).ToJson());
  65. }
  66. break;
  67. }
  68. case "s":
  69. {
  70. //搜索
  71. if (b.fqcitemsdetailButtonIndex){
  72. string itemsid = context.Request["ITEMSIDS"].ToString();
  73. context.Response.Write(search(context.Request.Form,itemsid));
  74. } else{
  75. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  76. }
  77. break;
  78. }
  79. case "gs":
  80. {
  81. //搜索
  82. if (b.fqcitemsdetailButtonIndex)
  83. context.Response.Write(searchgs(context.Request.Form));
  84. else
  85. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  86. break;
  87. }
  88. case "t":
  89. {
  90. //详细
  91. if (b.fqcitemsdetailButtonDetail)
  92. context.Response.Write(detail());
  93. else
  94. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  95. break;
  96. }
  97. case "i":
  98. {
  99. //插入
  100. if (b.fqcitemsdetailButtonInsert)
  101. context.Response.Write(insert(context.Request.Form));
  102. else
  103. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  104. break;
  105. }
  106. case "u":
  107. {
  108. //修改
  109. if (b.fqcitemsdetailButtonUpdate)
  110. context.Response.Write(update(context.Request.Form));
  111. else
  112. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  113. break;
  114. }
  115. case "d":
  116. {
  117. //删除
  118. if (b.fqcitemsdetailButtonDelete)
  119. context.Response.Write(delete());
  120. else
  121. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  122. break;
  123. }
  124. case "e":
  125. {
  126. //导出
  127. if (b.fqcitemsdetailButtonExport)
  128. {
  129. context.Response.Write(export());
  130. }
  131. else
  132. {
  133. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  134. }
  135. break;
  136. }
  137. case "batch":
  138. {
  139. //批量插入修改删除处理
  140. if (b.fqcitemsdetailButtonBatch)
  141. {
  142. context.Response.Write(batch(context.Request["data"], context.Request["id"]));
  143. }
  144. else
  145. {
  146. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  147. }
  148. break;
  149. }
  150. case "copy":
  151. {
  152. //批量插入修改删除处理
  153. if (b.fqcitemsdetailButtonCopy)
  154. {
  155. context.Response.Write(copy(context.Request["data"], context.Request["INSPECTTYPE"], context.Request["INSPECTNAME"],
  156. context.Request["goodstypecodeMaster"], context.Request["INSPECTVERSION"], context.Request["REMARKS"]));
  157. }
  158. else
  159. {
  160. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  161. }
  162. break;
  163. }
  164. case "import":
  165. {
  166. //批量插入修改删除处理
  167. if (b.fqcitemsdetailButtonImport)
  168. { //获取导入的Execl文件 并写入到upload 文件夹下
  169. string filePath = "/mes/upload/" + DateTime.Now.ToString("yyyy-MM-dd");
  170. System.IO.Directory.CreateDirectory(context.Server.MapPath(filePath));
  171. string fileName = filePath + "/检验项目明细" + DateTime.Now.ToString("yyyy-MM");
  172. fileName += System.IO.Path.GetExtension(context.Request.Files[0].FileName + "x");
  173. string diskFileName = context.Server.MapPath(fileName);
  174. if (System.IO.File.Exists(diskFileName)) System.IO.File.Delete(diskFileName);
  175. context.Request.Files[0].SaveAs(diskFileName);
  176. //文件转Table
  177. var detailTable = ExcelToDatatable(diskFileName);
  178. //DataTable detailTable = Import.ExcelToDataTable(diskFileName);
  179. int itemsID = Convert.ToInt32(context.Request["id"]);
  180. context.Response.Write(Imports(detailTable, itemsID));
  181. }
  182. else
  183. {
  184. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  185. }
  186. break;
  187. }
  188. default:
  189. {
  190. break;
  191. }
  192. }
  193. }
  194. else
  195. {
  196. context.Response.Write(new JsonResult(JsonStatus.loginError).ToJson());
  197. }
  198. }
  199. /// <summary>
  200. /// 批量插入修改删除处理方法 2023-09-11 xuwei add
  201. /// </summary>
  202. /// <param name="jsondata"></param>
  203. /// <returns></returns>
  204. private string batch(string jsondata, string sid)
  205. {
  206. using (IDataAccess conn = DataAccess.Create())
  207. {
  208. conn.BeginTransaction();
  209. int itemsID = Convert.ToInt32(sid);
  210. DataTable detailTable = JsonConvert.DeserializeObject<DataTable>(jsondata);
  211. if (detailTable != null && detailTable.Rows.Count > 0)
  212. {
  213. DataTable itemsdetailsTable = conn.ExecuteDatatable(@" SELECT
  214. 1
  215. FROM
  216. TP_PM_FQCITEMSDETAIL m
  217. WHERE
  218. m.VALUEFLAG = '1'
  219. AND m.ITEMSID = @ITEMSID@
  220. ",
  221. new CDAParameter("ITEMSID", itemsID)
  222. );
  223. if (itemsdetailsTable != null && itemsdetailsTable.Rows.Count > 0)
  224. {
  225. DataTable itemsTable = conn.ExecuteDatatable(@" SELECT
  226. m.ITEMSID,
  227. m.INSPECTTYPE,
  228. m.INSPECTTYPE,
  229. m.INSPECTNAME,
  230. m.GOODSID,
  231. m.GOODSCODE,
  232. m.INSPECTVERSION,
  233. m.REMARKS,
  234. m.VALUEFLAG,
  235. m.ACCOUNTID
  236. FROM
  237. TP_PM_FQCITEMS m
  238. WHERE
  239. m.VALUEFLAG = '1'
  240. AND m.ITEMSID = @ITEMSID@
  241. ",
  242. new CDAParameter("ITEMSID", itemsID)
  243. );
  244. //产品明细
  245. DataTable goodsTable = conn.ExecuteDatatable(@" SELECT
  246. m.ITEMSID,
  247. m.GOODSID,
  248. m.GOODSCODE,
  249. m.ACCOUNTID,
  250. m.REMARKS
  251. FROM
  252. TP_PM_FQCITEMSGOODS m
  253. WHERE
  254. m.VALUEFLAG = '1'
  255. AND m.ITEMSID = @ITEMSID@
  256. ",
  257. new CDAParameter("ITEMSID", itemsID)
  258. );
  259. //根据ID删除之前的版本
  260. int result = conn.ExecuteNonQuery(@"
  261. UPDATE TP_PM_FQCITEMS
  262. SET
  263. VALUEFLAG = 0,
  264. UPDATEUSERID = @UPDATEUSERID@,
  265. UPDATETIME = sysdate
  266. WHERE
  267. ITEMSID = @ITEMSID@
  268. ",
  269. new CDAParameter("ITEMSID", itemsID),
  270. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  271. );
  272. //查询原数据,新建一条版本号加一的数据,主表,明细,产品
  273. int resultaddItems = conn.ExecuteNonQuery(@"
  274. INSERT INTO TP_PM_FQCITEMS (
  275. INSPECTTYPE,
  276. INSPECTNAME,
  277. GOODSCODE,
  278. INSPECTVERSION,
  279. REMARKS,
  280. ACCOUNTID,
  281. CREATEUSERID,
  282. UPDATEUSERID
  283. ) VALUES (
  284. @INSPECTTYPE@,
  285. @INSPECTNAME@,
  286. @GOODSCODE@,
  287. @INSPECTVERSION@,
  288. @REMARKS@,
  289. @ACCOUNTID@,
  290. @CREATEUSERID@,
  291. @UPDATEUSERID@
  292. )
  293. ",
  294. new CDAParameter("INSPECTTYPE", itemsTable.Rows[0]["INSPECTTYPE"].ToString()),
  295. new CDAParameter("INSPECTNAME", itemsTable.Rows[0]["INSPECTNAME"].ToString()),
  296. new CDAParameter("GOODSCODE", itemsTable.Rows[0]["GOODSCODE"].ToString()),
  297. new CDAParameter("INSPECTVERSION", Convert.ToInt32(itemsTable.Rows[0]["INSPECTVERSION"]) + 1),
  298. new CDAParameter("REMARKS", itemsTable.Rows[0]["REMARKS"]),
  299. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  300. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  301. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  302. );
  303. object newID = conn.ExecuteScalar(@"SELECT SEQ_PM_FQCITEMS_ID.currval from dual");
  304. //产品
  305. for (int i = 0; i < goodsTable.Rows.Count; i++)
  306. {
  307. int goodsresult = conn.ExecuteNonQuery(@"
  308. INSERT INTO TP_PM_FQCITEMSGOODS ( ITEMSID, GOODSID, GOODSCODE, ACCOUNTID, CREATEUSERID, UPDATEUSERID, REMARKS )
  309. VALUES ( @ITEMSID@, @GOODSID@, @GOODSCODE@, @ACCOUNTID@, @CREATEUSERID@, @UPDATEUSERID@, @REMARKS@ )",
  310. new CDAParameter("ITEMSID", newID),
  311. new CDAParameter("GOODSID", goodsTable.Rows[i]["GOODSID"].ToString()),
  312. new CDAParameter("GOODSCODE", goodsTable.Rows[i]["GOODSCODE"].ToString()),
  313. new CDAParameter("REMARKS", goodsTable.Rows[i]["REMARKS"]),
  314. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  315. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  316. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  317. );
  318. }
  319. //明细
  320. for (int i = 0; i < detailTable.Rows.Count; i++)
  321. {
  322. int detailresult = conn.ExecuteNonQuery(@"
  323. INSERT INTO TP_PM_FQCITEMSDETAIL (
  324. ITEMSID,
  325. INSPECTITEM,
  326. INSPECTTOOL,
  327. INSPECTMARK,
  328. INSPECTWAY,
  329. ISINSPECT,
  330. INSPECTBASIS,
  331. DEFECTGRADE,
  332. TECHNICALREQUIREMENT,
  333. LOWERLIMIT,
  334. UPPERLIMIT,
  335. INSPECTCOUNT,
  336. ISAVERAGE,
  337. UNITNAME,
  338. REMARKS,XUHAO,
  339. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  340. ) VALUES (
  341. @ITEMSID@,
  342. @INSPECTITEM@,
  343. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC022' AND T.DICTIONARYVALUE=@INSPECTTOOL@),
  344. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC023' AND T.DICTIONARYVALUE=@INSPECTMARK@),
  345. @INSPECTWAY@,
  346. @ISINSPECT@,
  347. @INSPECTBASIS@,
  348. @DEFECTGRADE@,
  349. @TECHNICALREQUIREMENT@,
  350. @LOWERLIMIT@,
  351. @UPPERLIMIT@,
  352. @INSPECTCOUNT@,
  353. @ISAVERAGE@,
  354. @UNITNAME@,
  355. @REMARKS@,@XUHAO@,
  356. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  357. )
  358. ",
  359. new CDAParameter("ITEMSID", newID),
  360. new CDAParameter("INSPECTITEM", detailTable.Rows[i]["INSPECTITEM"]),
  361. new CDAParameter("INSPECTTOOL", detailTable.Rows[i]["INSPECTTOOL"].ToString()),
  362. new CDAParameter("INSPECTMARK", detailTable.Rows[i]["INSPECTMARK"].ToString()),
  363. new CDAParameter("INSPECTWAY", detailTable.Rows[i]["INSPECTWAY"]),
  364. new CDAParameter("ISINSPECT", detailTable.Rows[i]["ISINSPECT"]),
  365. new CDAParameter("INSPECTBASIS", detailTable.Rows[i]["INSPECTBASIS"]),
  366. new CDAParameter("DEFECTGRADE", detailTable.Rows[i]["DEFECTGRADE"]),
  367. new CDAParameter("TECHNICALREQUIREMENT", detailTable.Rows[i]["TECHNICALREQUIREMENT"]),
  368. new CDAParameter("LOWERLIMIT", detailTable.Rows[i]["LOWERLIMIT"]),
  369. new CDAParameter("UPPERLIMIT", detailTable.Rows[i]["UPPERLIMIT"]),
  370. new CDAParameter("INSPECTCOUNT", detailTable.Rows[i]["INSPECTCOUNT"]),
  371. new CDAParameter("ISAVERAGE", detailTable.Rows[i]["ISAVERAGE"]),
  372. new CDAParameter("UNITNAME", detailTable.Rows[i]["UNITNAME"]),
  373. new CDAParameter("REMARKS", detailTable.Rows[i]["REMARKS"]),
  374. new CDAParameter("XUHAO", detailTable.Rows[i]["XUHAO"]),
  375. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  376. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  377. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  378. );
  379. }
  380. }
  381. else
  382. {
  383. //明细
  384. for (int i = 0; i < detailTable.Rows.Count; i++)
  385. {
  386. int detailresult = conn.ExecuteNonQuery(@"
  387. INSERT INTO TP_PM_FQCITEMSDETAIL (
  388. ITEMSID,
  389. INSPECTITEM,
  390. INSPECTTOOL,
  391. INSPECTMARK,
  392. INSPECTWAY,
  393. ISINSPECT,
  394. INSPECTBASIS,
  395. DEFECTGRADE,
  396. TECHNICALREQUIREMENT,
  397. LOWERLIMIT,
  398. UPPERLIMIT,
  399. INSPECTCOUNT,
  400. ISAVERAGE,
  401. UNITNAME,
  402. REMARKS,XUHAO,
  403. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  404. ) VALUES (
  405. @ITEMSID@,
  406. @INSPECTITEM@,
  407. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC022' AND T.DICTIONARYVALUE=@INSPECTTOOL@),
  408. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC023' AND T.DICTIONARYVALUE=@INSPECTMARK@),
  409. @INSPECTWAY@,
  410. @ISINSPECT@,
  411. @INSPECTBASIS@,
  412. @DEFECTGRADE@,
  413. @TECHNICALREQUIREMENT@,
  414. @LOWERLIMIT@,
  415. @UPPERLIMIT@,
  416. @INSPECTCOUNT@,
  417. @ISAVERAGE@,
  418. @UNITNAME@,
  419. @REMARKS@,@XUHAO@,
  420. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  421. )
  422. ",
  423. new CDAParameter("ITEMSID", itemsID),
  424. new CDAParameter("INSPECTITEM", detailTable.Rows[i]["INSPECTITEM"]),
  425. new CDAParameter("INSPECTTOOL", detailTable.Rows[i]["INSPECTTOOL"]),
  426. new CDAParameter("INSPECTMARK", detailTable.Rows[i]["INSPECTMARK"]),
  427. new CDAParameter("INSPECTWAY", detailTable.Rows[i]["INSPECTWAY"]),
  428. new CDAParameter("ISINSPECT", detailTable.Rows[i]["ISINSPECT"]),
  429. new CDAParameter("INSPECTBASIS", detailTable.Rows[i]["INSPECTBASIS"]),
  430. new CDAParameter("DEFECTGRADE", detailTable.Rows[i]["DEFECTGRADE"]),
  431. new CDAParameter("TECHNICALREQUIREMENT", detailTable.Rows[i]["TECHNICALREQUIREMENT"]),
  432. new CDAParameter("LOWERLIMIT", detailTable.Rows[i]["LOWERLIMIT"]),
  433. new CDAParameter("UPPERLIMIT", detailTable.Rows[i]["UPPERLIMIT"]),
  434. new CDAParameter("INSPECTCOUNT", detailTable.Rows[i]["INSPECTCOUNT"]),
  435. new CDAParameter("ISAVERAGE", detailTable.Rows[i]["ISAVERAGE"]),
  436. new CDAParameter("UNITNAME", detailTable.Rows[i]["UNITNAME"]),
  437. new CDAParameter("REMARKS", detailTable.Rows[i]["REMARKS"]),
  438. new CDAParameter("XUHAO", detailTable.Rows[i]["XUHAO"]),
  439. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  440. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  441. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  442. );
  443. }
  444. }
  445. }
  446. else
  447. {
  448. string jsonStr = new JsonResult(JsonStatus.error) { message = "未保存任何数据!" }.ToJson();
  449. return jsonStr;
  450. }
  451. conn.Commit();
  452. return new JsonResult(JsonStatus.success).ToJson();
  453. }
  454. }
  455. /// <summary>
  456. /// 复制 20230925 qq
  457. /// </summary>
  458. /// <param name="jsondata"></param>
  459. /// <returns></returns>
  460. private string copy(string jsondata, string inspecttype,string inspectname,string goodstypecodeMaster,string inspectvision ,string remarks)
  461. {
  462. using (IDataAccess conn = DataAccess.Create())
  463. {
  464. conn.BeginTransaction();
  465. //总单
  466. string[] goodscode = goodstypecodeMaster.ToString().Split(',');
  467. ArrayList al = new ArrayList(goodscode);
  468. string goods = null;
  469. string goodstypes = null;
  470. DataTable goodstype = null;
  471. int flags = 0;
  472. for (int i = 0; i < al.Count; i++) {
  473. string test = al[i].ToString();
  474. string test2 = test;
  475. if (test.Substring(0, 3) == "001") {
  476. al.RemoveAt(i);
  477. continue;
  478. }
  479. if (flags == 0)
  480. {
  481. goodstypes += "'" + al[i] + "'";
  482. }
  483. else {
  484. goodstypes += ",'" + al[i]+"'";
  485. }
  486. flags++;
  487. }
  488. goodstype = conn.ExecuteDatatable(@"SELECT GOODSID,GOODSCODE FROM TP_MST_GOODS WHERE VALUEFLAG=1 and GOODSCODE in(" +goodstypes+")", new CDAParameter(null, null));
  489. if (goodstype.Rows.Count == 1 )
  490. {
  491. goods = goodstype.Rows[0]["GOODSCODE"].ToString();
  492. }
  493. else if (goodstype.Rows.Count > 1 )
  494. {
  495. goods += goodstype.Rows[0]["GOODSCODE"]+"...";
  496. }
  497. //查询是否产品保存过记录
  498. DataTable goodsTable = new DataTable();
  499. if (goodstypecodeMaster != null && goodstypecodeMaster != "" && !goodstypecodeMaster.Contains(","))
  500. {
  501. goodsTable = conn.ExecuteDatatable(@" SELECT
  502. f.INSPECTTYPE,
  503. f.GOODSCODE as itemsgoods,
  504. m.ITEMSID,
  505. m.GOODSID,
  506. m.GOODSCODE,
  507. m.ACCOUNTID,
  508. m.REMARKS
  509. FROM
  510. TP_PM_FQCITEMSGOODS m
  511. left join TP_PM_FQCITEMS f on m.ITEMSID = f.ITEMSID
  512. WHERE
  513. m.VALUEFLAG = '1'
  514. AND f.VALUEFLAG = '1'
  515. AND f.INSPECTTYPE = @INSPECTTYPE@
  516. AND m.GOODSCODE = @GOODSCODE@
  517. ",
  518. new CDAParameter("GOODSCODE", goods),
  519. new CDAParameter("INSPECTTYPE", inspecttype)
  520. );
  521. }
  522. else if (goodstype.Rows.Count > 0)
  523. {
  524. string newgoods = "";
  525. for (int i = 0; i < goodstype.Rows.Count; i++)
  526. {
  527. if (i == 0)
  528. {
  529. newgoods += "'"+goodstype.Rows[i]["GOODSCODE"]+"'";
  530. }
  531. newgoods += ",'" + goodstype.Rows[i]["GOODSCODE"]+"'";
  532. }
  533. goodsTable = conn.ExecuteDatatable(@" SELECT
  534. f.INSPECTTYPE,
  535. f.GOODSCODE as itemsgoods,
  536. m.ITEMSID,
  537. m.GOODSID,
  538. m.GOODSCODE,
  539. m.ACCOUNTID,
  540. m.REMARKS
  541. FROM
  542. TP_PM_FQCITEMSGOODS m
  543. left join TP_PM_FQCITEMS f on m.ITEMSID = f.ITEMSID
  544. WHERE
  545. m.VALUEFLAG = '1'
  546. AND f.VALUEFLAG = '1'
  547. AND f.INSPECTTYPE = @INSPECTTYPE@
  548. AND m.GOODSCODE in(" +newgoods+")",
  549. new CDAParameter("INSPECTTYPE", inspecttype)
  550. );
  551. }
  552. //之前保存过,把之前的置为无效
  553. if (goodsTable != null && goodsTable.Rows.Count > 0)
  554. {
  555. for (int i = 0; i < goodsTable.Rows.Count; i++)
  556. {
  557. if (goodsTable.Rows[i]["itemsgoods"].ToString().Contains("..."))
  558. {
  559. //多个
  560. int result1 = conn.ExecuteNonQuery(@"
  561. UPDATE TP_PM_FQCITEMSGOODS
  562. SET
  563. VALUEFLAG = 0,
  564. UPDATEUSERID = @UPDATEUSERID@,
  565. UPDATETIME = sysdate
  566. WHERE
  567. ITEMSID = @ITEMSID@
  568. and GOODSID = @GOODSID@
  569. ",
  570. new CDAParameter("ITEMSID", goodsTable.Rows[i]["ITEMSID"]),
  571. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
  572. new CDAParameter("GOODSID", goodsTable.Rows[i]["GOODSID"])
  573. );
  574. //多个
  575. int result2 = conn.ExecuteNonQuery(@"
  576. update TP_PM_FQCITEMS t set t.valueflag = '0' ,t.UPDATEUSERID = @UPDATEUSERID@,
  577. t.UPDATETIME = sysdate
  578. WHERE not exists(SELECT 1 FROM TP_PM_FQCITEMSGOODS g WHERE g.itemsid =@ITEMSID@ and g.valueflag = '1')
  579. and t.itemsid = @ITEMSID@
  580. ",
  581. new CDAParameter("ITEMSID", goodsTable.Rows[i]["ITEMSID"]),
  582. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
  583. new CDAParameter("GOODSID", goodsTable.Rows[i]["GOODSID"])
  584. );
  585. }
  586. else
  587. {
  588. //单个
  589. //根据ID删除之前的版本
  590. int result1 = conn.ExecuteNonQuery(@"
  591. UPDATE TP_PM_FQCITEMS
  592. SET
  593. VALUEFLAG = 0,
  594. UPDATEUSERID = @UPDATEUSERID@,
  595. UPDATETIME = sysdate
  596. WHERE
  597. ITEMSID = @ITEMSID@
  598. ",
  599. new CDAParameter("ITEMSID", goodsTable.Rows[i]["ITEMSID"]),
  600. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  601. );
  602. }
  603. }
  604. if (true)
  605. {
  606. }
  607. }
  608. int itemsID = 0;
  609. if (!string.IsNullOrWhiteSpace(goods))
  610. {
  611. int result = conn.ExecuteNonQuery(@"
  612. INSERT INTO TP_PM_FQCITEMS (
  613. INSPECTTYPE,
  614. INSPECTNAME,
  615. GOODSCODE,
  616. INSPECTVERSION,
  617. REMARKS,
  618. ACCOUNTID,
  619. CREATEUSERID,
  620. UPDATEUSERID
  621. ) VALUES (
  622. @INSPECTTYPE@,
  623. @INSPECTNAME@,
  624. @GOODSCODE@,
  625. @INSPECTVERSION@,
  626. @REMARKS@,
  627. @ACCOUNTID@,
  628. @CREATEUSERID@,
  629. @UPDATEUSERID@
  630. )
  631. ",
  632. new CDAParameter("INSPECTTYPE", inspecttype),
  633. new CDAParameter("INSPECTNAME", inspectname),
  634. new CDAParameter("GOODSCODE", goods.ToString()),
  635. new CDAParameter("INSPECTVERSION", inspectvision),
  636. new CDAParameter("REMARKS", remarks),
  637. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  638. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  639. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  640. );
  641. itemsID = Convert.ToInt32(conn.ExecuteScalar(@"SELECT SEQ_PM_FQCITEMS_ID.currval from dual"));
  642. if (goodstypecodeMaster != "" && goodstypecodeMaster != null) {
  643. for (int i = 0; i < goodstype.Rows.Count; i++) {
  644. int flag = conn.ExecuteNonQuery(@"
  645. INSERT INTO TP_PM_FQCITEMSGOODS ( ITEMSID, GOODSID, GOODSCODE, ACCOUNTID, CREATEUSERID, UPDATEUSERID, REMARKS )
  646. VALUES ( @ITEMSID@, @GOODSID@, @GOODSCODE@, @ACCOUNTID@, @CREATEUSERID@, @UPDATEUSERID@, @REMARKS@ )",
  647. //new CDAParameter("ITEMSID",primaryKey),
  648. new CDAParameter("ITEMSID",itemsID),
  649. new CDAParameter("GOODSID", goodstype.Rows[i]["GOODSID"].ToString()),
  650. new CDAParameter("GOODSCODE", goodstype.Rows[i]["GOODSCODE"].ToString()),
  651. new CDAParameter("REMARKS", ""),
  652. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  653. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  654. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  655. );
  656. }
  657. }
  658. }
  659. //明细
  660. DataTable detailTable = JsonConvert.DeserializeObject<DataTable>(jsondata);
  661. if (detailTable != null && detailTable.Rows.Count > 0)
  662. {
  663. //明细
  664. for (int i = 0; i < detailTable.Rows.Count; i++)
  665. {
  666. int detailresult = conn.ExecuteNonQuery(@"
  667. INSERT INTO TP_PM_FQCITEMSDETAIL (
  668. ITEMSID,
  669. INSPECTITEM,
  670. INSPECTTOOL,
  671. INSPECTMARK,
  672. INSPECTWAY,
  673. ISINSPECT,
  674. INSPECTBASIS,
  675. DEFECTGRADE,
  676. TECHNICALREQUIREMENT,
  677. LOWERLIMIT,
  678. UPPERLIMIT,
  679. INSPECTCOUNT,
  680. ISAVERAGE,
  681. UNITNAME,
  682. REMARKS,XUHAO,
  683. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  684. ) VALUES (
  685. @ITEMSID@,
  686. @INSPECTITEM@,
  687. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC022' AND T.DICTIONARYVALUE=@INSPECTTOOL@),
  688. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC023' AND T.DICTIONARYVALUE=@INSPECTMARK@),
  689. @INSPECTWAY@,
  690. @ISINSPECT@,
  691. @INSPECTBASIS@,
  692. @DEFECTGRADE@,
  693. @TECHNICALREQUIREMENT@,
  694. @LOWERLIMIT@,
  695. @UPPERLIMIT@,
  696. @INSPECTCOUNT@,
  697. @ISAVERAGE@,
  698. @UNITNAME@,
  699. @REMARKS@,@XUHAO@,
  700. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  701. )
  702. ",
  703. new CDAParameter("ITEMSID", itemsID),
  704. new CDAParameter("INSPECTITEM", detailTable.Rows[i]["INSPECTITEM"]),
  705. new CDAParameter("INSPECTTOOL", detailTable.Rows[i]["INSPECTTOOL"]),
  706. new CDAParameter("INSPECTMARK", detailTable.Rows[i]["INSPECTMARK"]),
  707. new CDAParameter("INSPECTWAY", detailTable.Rows[i]["INSPECTWAY"]),
  708. new CDAParameter("ISINSPECT", detailTable.Rows[i]["ISINSPECT"]),
  709. new CDAParameter("INSPECTBASIS", detailTable.Rows[i]["INSPECTBASIS"]),
  710. new CDAParameter("DEFECTGRADE", detailTable.Rows[i]["DEFECTGRADE"]),
  711. new CDAParameter("TECHNICALREQUIREMENT", detailTable.Rows[i]["TECHNICALREQUIREMENT"]),
  712. new CDAParameter("LOWERLIMIT", detailTable.Rows[i]["LOWERLIMIT"]),
  713. new CDAParameter("UPPERLIMIT", detailTable.Rows[i]["UPPERLIMIT"]),
  714. new CDAParameter("INSPECTCOUNT", detailTable.Rows[i]["INSPECTCOUNT"]),
  715. new CDAParameter("ISAVERAGE", detailTable.Rows[i]["ISAVERAGE"]),
  716. new CDAParameter("UNITNAME", detailTable.Rows[i]["UNITNAME"]),
  717. new CDAParameter("REMARKS", detailTable.Rows[i]["REMARKS"]),
  718. new CDAParameter("XUHAO", detailTable.Rows[i]["XUHAO"]),
  719. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  720. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  721. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  722. );
  723. }
  724. //if (detailTable.Rows.Count == 92 &&itemsID > 0)
  725. //{
  726. // //更新序号
  727. // int result2 = conn.ExecuteNonQuery(@"
  728. // UPDATE TP_PM_FQCITEMSDETAIL C SET C.XUHAO = (
  729. // SELECT DISTINCT A.XUHAO FROM TP_PM_FQCITEMSDETAIL A
  730. // WHERE A.INSPECTITEM = C.INSPECTITEM
  731. // AND A.ITEMSID = 164 ) WHERE C.ITEMSID = @ITEMSID@
  732. // ",
  733. // new CDAParameter("ITEMSID", itemsID)
  734. // );
  735. //}
  736. //else if (itemsID > 0 && (detailTable.Rows.Count == 84 || detailTable.Rows.Count == 85))
  737. //{
  738. // //更新序号
  739. // int result2 = conn.ExecuteNonQuery(@"
  740. // UPDATE TP_PM_FQCITEMSDETAIL C SET C.XUHAO = (
  741. // SELECT DISTINCT A.XUHAO FROM TP_PM_FQCITEMSDETAIL A
  742. // WHERE A.INSPECTITEM = C.INSPECTITEM
  743. // AND A.ITEMSID = 247 ) WHERE C.ITEMSID = @ITEMSID@
  744. // ",
  745. // new CDAParameter("ITEMSID", itemsID)
  746. // );
  747. //}
  748. //else if (detailTable.Rows.Count == 80 &&itemsID > 0)
  749. //{
  750. // //更新序号
  751. // int result2 = conn.ExecuteNonQuery(@"
  752. // UPDATE TP_PM_FQCITEMSDETAIL C SET C.XUHAO = (
  753. // SELECT DISTINCT A.XUHAO FROM TP_PM_FQCITEMSDETAIL A
  754. // WHERE A.INSPECTITEM = C.INSPECTITEM
  755. // AND A.ITEMSID = 303 ) WHERE C.ITEMSID = @ITEMSID@
  756. // ",
  757. // new CDAParameter("ITEMSID", itemsID)
  758. // );
  759. //}
  760. }
  761. else
  762. {
  763. string jsonStr = new JsonResult(JsonStatus.error) { message = "未保存任何数据!" }.ToJson();
  764. return jsonStr;
  765. }
  766. conn.Commit();
  767. return new JsonResult(JsonStatus.success).ToJson();
  768. }
  769. }
  770. /// <summary>
  771. /// TP_PM_FQCITEMSDETAIL 查询
  772. /// </summary>
  773. /// <returns>json</returns>
  774. private string search(NameValueCollection form,string itemsid)
  775. {
  776. using (IDataAccess conn = DataAccess.Create())
  777. {
  778. int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
  779. int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
  780. string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
  781. string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
  782. string sqlStr = @"
  783. SELECT
  784. m.ITEMSDETAILID AS SID,
  785. m.ITEMSDETAILID,
  786. m.ITEMSID,
  787. m.INSPECTITEM,
  788. TOOL.DICTIONARYVALUE as INSPECTTOOL,
  789. MARK.DICTIONARYVALUE as INSPECTMARK,
  790. m.INSPECTWAY,
  791. m.ISINSPECT,
  792. m.INSPECTBASIS,
  793. m.DEFECTGRADE,
  794. m.TECHNICALREQUIREMENT,
  795. TO_CHAR( m.LOWERLIMIT) LOWERLIMIT,
  796. TO_CHAR( m.UPPERLIMIT) UPPERLIMIT,
  797. TO_CHAR( m.INSPECTCOUNT) INSPECTCOUNT,
  798. m.ISAVERAGE,
  799. m.UNITNAME,
  800. m.REMARKS,
  801. TO_CHAR(m.VALUEFLAG) VALUEFLAG,
  802. TO_CHAR(m.ACCOUNTID) ACCOUNTID,
  803. TO_CHAR(m.CREATEUSERID) CREATEUSERID,
  804. m.CREATETIME,
  805. TO_CHAR(m.UPDATEUSERID) UPDATEUSERID,
  806. m.UPDATETIME,
  807. m.XUHAO
  808. FROM
  809. TP_PM_FQCITEMSDETAIL m
  810. left join TP_PM_FQCITEMS fi on fi.itemsid = m.itemsid
  811. left join TP_MST_DATADICTIONARY TOOL on TOOL.DICTIONARYID=m.INSPECTTOOL
  812. left join TP_MST_DATADICTIONARY MARK ON MARK.DICTIONARYID=m.INSPECTMARK
  813. WHERE
  814. m.VALUEFLAG = '1'
  815. and fi.valueflag = '1'
  816. AND m.ACCOUNTID = @ACCOUNTID@
  817. ";
  818. List<CDAParameter> sqlPara = new List<CDAParameter>();
  819. sqlPara.Add(new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]));
  820. if (!string.IsNullOrEmpty(itemsid)) {
  821. sqlStr += " AND m.ITEMSID = @ITEMSID@ ";
  822. sqlPara.Add(new CDAParameter("ITEMSID", itemsid.ToString()));
  823. }
  824. if (!string.IsNullOrEmpty(form["ITEMSDETAILID"]))
  825. {
  826. sqlStr += " AND m.ITEMSDETAILID = @ITEMSDETAILID@ ";
  827. sqlPara.Add(new CDAParameter("ITEMSDETAILID", form["ITEMSDETAILID"]));
  828. }
  829. if (!string.IsNullOrEmpty(form["ITEMSID"]))
  830. {
  831. sqlStr += " AND m.ITEMSID = @ITEMSID@ ";
  832. sqlPara.Add(new CDAParameter("ITEMSID", form["ITEMSID"]));
  833. }
  834. if (!string.IsNullOrEmpty(form["INSPECTITEM"]))
  835. {
  836. sqlStr += " AND INSTR( m.INSPECTITEM, @INSPECTITEM@ ) > 0 ";
  837. sqlPara.Add(new CDAParameter("INSPECTITEM", form["INSPECTITEM"]));
  838. }
  839. if (!string.IsNullOrEmpty(form["INSPECTTOOL"]))
  840. {
  841. sqlStr += " AND INSTR( m.INSPECTTOOL, @INSPECTTOOL@ ) > 0 ";
  842. sqlPara.Add(new CDAParameter("INSPECTTOOL", form["INSPECTTOOL"]));
  843. }
  844. if (!string.IsNullOrEmpty(form["INSPECTMARK"]))
  845. {
  846. sqlStr += " AND INSTR( m.INSPECTMARK, @INSPECTMARK@ ) > 0 ";
  847. sqlPara.Add(new CDAParameter("INSPECTMARK", form["INSPECTMARK"]));
  848. }
  849. if (!string.IsNullOrEmpty(form["INSPECTWAY"]))
  850. {
  851. sqlStr += " AND INSTR( m.INSPECTWAY, @INSPECTWAY@ ) > 0 ";
  852. sqlPara.Add(new CDAParameter("INSPECTWAY", form["INSPECTWAY"]));
  853. }
  854. if (!string.IsNullOrEmpty(form["ISINSPECT"]))
  855. {
  856. sqlStr += " AND INSTR( m.ISINSPECT, @ISINSPECT@ ) > 0 ";
  857. sqlPara.Add(new CDAParameter("ISINSPECT", form["ISINSPECT"]));
  858. }
  859. if (!string.IsNullOrEmpty(form["INSPECTBASIS"]))
  860. {
  861. sqlStr += " AND INSTR( m.INSPECTBASIS, @INSPECTBASIS@ ) > 0 ";
  862. sqlPara.Add(new CDAParameter("INSPECTBASIS", form["INSPECTBASIS"]));
  863. }
  864. if (!string.IsNullOrEmpty(form["DEFECTGRADE"]))
  865. {
  866. sqlStr += " AND INSTR( m.DEFECTGRADE, @DEFECTGRADE@ ) > 0 ";
  867. sqlPara.Add(new CDAParameter("DEFECTGRADE", form["DEFECTGRADE"]));
  868. }
  869. if (!string.IsNullOrEmpty(form["TECHNICALREQUIREMENT"]))
  870. {
  871. sqlStr += " AND INSTR( m.TECHNICALREQUIREMENT, @TECHNICALREQUIREMENT@ ) > 0 ";
  872. sqlPara.Add(new CDAParameter("TECHNICALREQUIREMENT", form["TECHNICALREQUIREMENT"]));
  873. }
  874. if (!string.IsNullOrEmpty(form["LOWERLIMIT"]))
  875. {
  876. sqlStr += " AND INSTR( m.LOWERLIMIT, @LOWERLIMIT@ ) > 0 ";
  877. sqlPara.Add(new CDAParameter("LOWERLIMIT", form["LOWERLIMIT"]));
  878. }
  879. if (!string.IsNullOrEmpty(form["UPPERLIMIT"]))
  880. {
  881. sqlStr += " AND INSTR( m.UPPERLIMIT, @UPPERLIMIT@ ) > 0 ";
  882. sqlPara.Add(new CDAParameter("UPPERLIMIT", form["UPPERLIMIT"]));
  883. }
  884. if (!string.IsNullOrEmpty(form["UNITNAME"]))
  885. {
  886. sqlStr += " AND INSTR( m.UNITNAME, @UNITNAME@ ) > 0 ";
  887. sqlPara.Add(new CDAParameter("UNITNAME", form["UNITNAME"]));
  888. }
  889. if (!string.IsNullOrEmpty(form["REMARKS"]))
  890. {
  891. sqlStr += " AND INSTR( m.REMARKS, @REMARKS@ ) > 0 ";
  892. sqlPara.Add(new CDAParameter("REMARKS", form["REMARKS"]));
  893. }
  894. sqlStr += "ORDER BY XUHAO,SID DESC";
  895. int total = 0;
  896. DataTable dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
  897. return new JsonResult(dt) { total = total }.ToJson();
  898. }
  899. }
  900. /// <summary>
  901. /// TP_PM_FQCITEMSDETAIL 查询
  902. /// </summary>
  903. /// <returns>json</returns>
  904. private string searchgs(NameValueCollection form)
  905. {
  906. using (IDataAccess conn = DataAccess.Create())
  907. {
  908. //int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
  909. //int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
  910. //string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
  911. //string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
  912. string sqlStr = @"
  913. SELECT
  914. m.GOODSCODE,
  915. m.GOODSID,
  916. m.ITEMSID,
  917. m.ITEMSGOODSID as SID
  918. FROM
  919. TP_PM_FQCITEMSGOODS m
  920. WHERE
  921. m.VALUEFLAG = '1'
  922. AND m.ACCOUNTID = @ACCOUNTID@
  923. ";
  924. List<CDAParameter> sqlPara = new List<CDAParameter>();
  925. sqlPara.Add(new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]));
  926. if (!string.IsNullOrEmpty(form["ITEMSID"]))
  927. {
  928. sqlStr += " AND m.ITEMSID = @ITEMSID@ ";
  929. sqlPara.Add(new CDAParameter("ITEMSID", form["ITEMSID"]));
  930. }
  931. //int total = 0;
  932. DataTable dt = conn.ExecuteDatatable( sqlStr, sqlPara.ToArray());
  933. return new JsonResult(dt).ToJson();
  934. }
  935. }
  936. /// <summary>
  937. /// 详细 TP_PM_FQCITEMSDETAIL
  938. /// </summary>
  939. /// <returns>json</returns>
  940. private string detail()
  941. {
  942. using (IDataAccess conn = DataAccess.Create())
  943. {
  944. DataTable dt = conn.ExecuteDatatable(@"
  945. SELECT
  946. m.ITEMSDETAILID,
  947. m.ITEMSID,
  948. m.INSPECTITEM,
  949. m.INSPECTTOOL,
  950. m.INSPECTMARK,
  951. m.INSPECTWAY,
  952. m.ISINSPECT,
  953. m.INSPECTBASIS,
  954. m.DEFECTGRADE,
  955. m.TECHNICALREQUIREMENT,
  956. m.LOWERLIMIT,
  957. m.UPPERLIMIT,
  958. m.INSPECTCOUNT,
  959. m.ISAVERAGE,
  960. m.UNITNAME,
  961. m.REMARKS,
  962. m.VALUEFLAG,
  963. m.ACCOUNTID,
  964. m.CREATEUSERID,
  965. m.CREATETIME,
  966. m.UPDATEUSERID,
  967. m.UPDATETIME,
  968. m.XUHAO
  969. FROM
  970. TP_PM_FQCITEMSDETAIL m
  971. WHERE
  972. m.VALUEFLAG = '1'
  973. AND m.ACCOUNTID = @ACCOUNTID@
  974. AND m.ITEMSDETAILID = @ITEMSDETAILID@
  975. order by m.XUHAO,m.ITEMSDETAILID
  976. ",
  977. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  978. new CDAParameter("ITEMSDETAILID", HttpContext.Current.Request["id"])
  979. );
  980. return new JsonResult(dt).ToJson();
  981. }
  982. }
  983. /// <summary>
  984. /// 插入 TP_PM_FQCITEMSDETAIL
  985. /// </summary>
  986. /// <returns>json</returns>
  987. private string insert(NameValueCollection form)
  988. {
  989. using (IDataAccess conn = DataAccess.Create())
  990. {
  991. //string primaryKey = conn.GetSequenceNextval("SEQ_TP_PM_FQCITEMSDETAIL_ID").ToString();
  992. //string primaryKey = Guid.NewGuid().ToString().Replace("_", "");
  993. int result = conn.ExecuteNonQuery(@"
  994. INSERT INTO TP_PM_FQCITEMSDETAIL (
  995. --ITEMSDETAILID,
  996. ITEMSID,
  997. INSPECTITEM,
  998. INSPECTTOOL,
  999. INSPECTMARK,
  1000. INSPECTWAY,
  1001. ISINSPECT,
  1002. INSPECTBASIS,
  1003. DEFECTGRADE,
  1004. TECHNICALREQUIREMENT,
  1005. LOWERLIMIT,
  1006. UPPERLIMIT,
  1007. INSPECTCOUNT,
  1008. ISAVERAGE,
  1009. UNITNAME,
  1010. REMARKS,
  1011. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  1012. ) VALUES (
  1013. --@ITEMSDETAILID@,
  1014. @ITEMSID@,
  1015. @INSPECTITEM@,
  1016. @INSPECTTOOL@,
  1017. @INSPECTMARK@,
  1018. @INSPECTWAY@,
  1019. @ISINSPECT@,
  1020. @INSPECTBASIS@,
  1021. @DEFECTGRADE@,
  1022. @TECHNICALREQUIREMENT@,
  1023. @LOWERLIMIT@,
  1024. @UPPERLIMIT@,
  1025. @INSPECTCOUNT@,
  1026. @ISAVERAGE@,
  1027. @UNITNAME@,
  1028. @REMARKS@,
  1029. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  1030. )
  1031. ",
  1032. //new CDAParameter("ITEMSDETAILID",primaryKey),
  1033. new CDAParameter("ITEMSID", form["ITEMSID"]),
  1034. new CDAParameter("INSPECTITEM", form["INSPECTITEM"]),
  1035. new CDAParameter("INSPECTTOOL", form["INSPECTTOOL"]),
  1036. new CDAParameter("INSPECTMARK", form["INSPECTMARK"]),
  1037. new CDAParameter("INSPECTWAY", form["INSPECTWAY"]),
  1038. new CDAParameter("ISINSPECT", form["ISINSPECT"]),
  1039. new CDAParameter("INSPECTBASIS", form["INSPECTBASIS"]),
  1040. new CDAParameter("DEFECTGRADE", form["DEFECTGRADE"]),
  1041. new CDAParameter("TECHNICALREQUIREMENT", form["TECHNICALREQUIREMENT"]),
  1042. new CDAParameter("LOWERLIMIT", form["LOWERLIMIT"]),
  1043. new CDAParameter("UPPERLIMIT", form["UPPERLIMIT"]),
  1044. new CDAParameter("INSPECTCOUNT", form["INSPECTCOUNT"]),
  1045. new CDAParameter("ISAVERAGE", form["ISAVERAGE"]),
  1046. new CDAParameter("UNITNAME", form["UNITNAME"]),
  1047. new CDAParameter("REMARKS", form["REMARKS"]),
  1048. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  1049. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  1050. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  1051. );
  1052. return new JsonResult(JsonStatus.success).ToJson();
  1053. }
  1054. }
  1055. /// <summary>
  1056. /// 更新 TP_PM_FQCITEMSDETAIL
  1057. /// </summary>
  1058. /// <returns>json</returns>
  1059. private string update(NameValueCollection form)
  1060. {
  1061. using (IDataAccess conn = DataAccess.Create())
  1062. {
  1063. int result = conn.ExecuteNonQuery(@"
  1064. UPDATE TP_PM_FQCITEMSDETAIL
  1065. SET
  1066. --ITEMSID = @ITEMSID@,
  1067. INSPECTITEM = @INSPECTITEM@,
  1068. INSPECTTOOL = @INSPECTTOOL@,
  1069. INSPECTMARK = @INSPECTMARK@,
  1070. INSPECTWAY = @INSPECTWAY@,
  1071. ISINSPECT = @ISINSPECT@,
  1072. INSPECTBASIS = @INSPECTBASIS@,
  1073. DEFECTGRADE = @DEFECTGRADE@,
  1074. TECHNICALREQUIREMENT = @TECHNICALREQUIREMENT@,
  1075. LOWERLIMIT = @LOWERLIMIT@,
  1076. UPPERLIMIT = @UPPERLIMIT@,
  1077. UNITNAME = @UNITNAME@,
  1078. REMARKS = @REMARKS@,
  1079. UPDATEUSERID = @UPDATEUSERID@,
  1080. UPDATETIME = sysdate
  1081. WHERE
  1082. ITEMSDETAILID = @ITEMSDETAILID@
  1083. ",
  1084. //new CDAParameter("ITEMSID",form["ITEMSID"]),
  1085. new CDAParameter("INSPECTITEM", form["INSPECTITEM"]),
  1086. new CDAParameter("INSPECTTOOL", form["INSPECTTOOL"]),
  1087. new CDAParameter("INSPECTMARK", form["INSPECTMARK"]),
  1088. new CDAParameter("INSPECTWAY", form["INSPECTWAY"]),
  1089. new CDAParameter("ISINSPECT", form["ISINSPECT"]),
  1090. new CDAParameter("INSPECTBASIS", form["INSPECTBASIS"]),
  1091. new CDAParameter("DEFECTGRADE", form["DEFECTGRADE"]),
  1092. new CDAParameter("TECHNICALREQUIREMENT", form["TECHNICALREQUIREMENT"]),
  1093. new CDAParameter("LOWERLIMIT", form["LOWERLIMIT"]),
  1094. new CDAParameter("UPPERLIMIT", form["UPPERLIMIT"]),
  1095. new CDAParameter("UNITNAME", form["UNITNAME"]),
  1096. new CDAParameter("REMARKS", form["REMARKS"]),
  1097. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
  1098. new CDAParameter("ITEMSDETAILID", HttpContext.Current.Request["id"])
  1099. );
  1100. return new JsonResult(JsonStatus.success).ToJson();
  1101. }
  1102. }
  1103. /// <summary>
  1104. /// 删除 TP_PM_FQCITEMSDETAIL
  1105. /// </summary>
  1106. /// <returns>json</returns>
  1107. private string delete()
  1108. {
  1109. using (IDataAccess conn = DataAccess.Create())
  1110. {
  1111. if (HttpContext.Current.Request["id"] is object)
  1112. {
  1113. int result = conn.ExecuteNonQuery(@"
  1114. UPDATE TP_PM_FQCITEMSDETAIL SET VALUEFLAG=0
  1115. WHERE INSTR(',' || @ITEMSDETAILID@ || ',' , ',' || ITEMSDETAILID || ',') > 0
  1116. ",
  1117. new CDAParameter("ITEMSDETAILID", HttpContext.Current.Request["id"])
  1118. );
  1119. return new JsonResult(JsonStatus.success).ToJson();
  1120. }
  1121. else
  1122. {
  1123. return new JsonResult(JsonStatus.otherError).ToJson();
  1124. }
  1125. }
  1126. }
  1127. private string Imports(DataTable detailTable, int itemsID)
  1128. {
  1129. using (IDataAccess conn = DataAccess.Create())
  1130. {
  1131. try
  1132. {
  1133. conn.BeginTransaction();
  1134. if (detailTable != null && detailTable.Rows.Count > 0)
  1135. {
  1136. DataTable itemsdetailsTable = conn.ExecuteDatatable(@"
  1137. SELECT
  1138. 1
  1139. FROM TP_PM_FQCITEMSDETAIL m
  1140. WHERE m.VALUEFLAG = '1'
  1141. AND m.ITEMSID = @ITEMSID@ ",
  1142. new CDAParameter("ITEMSID", itemsID)
  1143. );
  1144. if (itemsdetailsTable != null && itemsdetailsTable.Rows.Count > 0)
  1145. {
  1146. DataTable itemsTable = conn.ExecuteDatatable(@"
  1147. SELECT
  1148. m.ITEMSID,
  1149. m.INSPECTTYPE,
  1150. m.INSPECTTYPE,
  1151. m.INSPECTNAME,
  1152. m.GOODSID,
  1153. m.GOODSCODE,
  1154. m.INSPECTVERSION,
  1155. m.REMARKS,
  1156. m.VALUEFLAG,
  1157. m.ACCOUNTID
  1158. FROM
  1159. TP_PM_FQCITEMS m
  1160. WHERE
  1161. m.VALUEFLAG = '1'
  1162. AND m.ITEMSID = @ITEMSID@
  1163. ",
  1164. new CDAParameter("ITEMSID", itemsID)
  1165. );
  1166. //产品明细
  1167. DataTable goodsTable = conn.ExecuteDatatable(@"
  1168. SELECT
  1169. m.ITEMSID,
  1170. m.GOODSID,
  1171. m.GOODSCODE,
  1172. m.ACCOUNTID,
  1173. m.REMARKS
  1174. FROM
  1175. TP_PM_FQCITEMSGOODS m
  1176. WHERE
  1177. m.VALUEFLAG = '1'
  1178. AND m.ITEMSID = @ITEMSID@ ",
  1179. new CDAParameter("ITEMSID", itemsID)
  1180. );
  1181. //根据ID删除之前的版本
  1182. int result = conn.ExecuteNonQuery(@"
  1183. UPDATE TP_PM_FQCITEMS
  1184. SET
  1185. VALUEFLAG = 0,
  1186. UPDATEUSERID = @UPDATEUSERID@,
  1187. UPDATETIME = sysdate
  1188. WHERE
  1189. ITEMSID = @ITEMSID@
  1190. ",
  1191. new CDAParameter("ITEMSID", itemsID),
  1192. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  1193. );
  1194. //查询原数据,新建一条版本号加一的数据,主表,明细,产品
  1195. int resultaddItems = conn.ExecuteNonQuery(@"
  1196. INSERT INTO TP_PM_FQCITEMS (
  1197. INSPECTTYPE,
  1198. INSPECTNAME,
  1199. GOODSCODE,
  1200. INSPECTVERSION,
  1201. REMARKS,
  1202. ACCOUNTID,
  1203. CREATEUSERID,
  1204. UPDATEUSERID
  1205. ) VALUES (
  1206. @INSPECTTYPE@,
  1207. @INSPECTNAME@,
  1208. @GOODSCODE@,
  1209. @INSPECTVERSION@,
  1210. @REMARKS@,
  1211. @ACCOUNTID@,
  1212. @CREATEUSERID@,
  1213. @UPDATEUSERID@
  1214. )",
  1215. new CDAParameter("INSPECTTYPE", itemsTable.Rows[0]["INSPECTTYPE"].ToString()),
  1216. new CDAParameter("INSPECTNAME", itemsTable.Rows[0]["INSPECTNAME"].ToString()),
  1217. new CDAParameter("GOODSCODE", itemsTable.Rows[0]["GOODSCODE"].ToString()),
  1218. new CDAParameter("INSPECTVERSION", Convert.ToInt32(itemsTable.Rows[0]["INSPECTVERSION"]) + 1),
  1219. new CDAParameter("REMARKS", itemsTable.Rows[0]["REMARKS"]),
  1220. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  1221. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  1222. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  1223. );
  1224. object newID = conn.ExecuteScalar(@"SELECT SEQ_PM_FQCITEMS_ID.currval from dual");
  1225. //产品
  1226. for (int i = 0; i < goodsTable.Rows.Count; i++)
  1227. {
  1228. int goodsresult = conn.ExecuteNonQuery(@"
  1229. INSERT INTO TP_PM_FQCITEMSGOODS ( ITEMSID, GOODSID, GOODSCODE, ACCOUNTID, CREATEUSERID, UPDATEUSERID, REMARKS )
  1230. VALUES ( @ITEMSID@, @GOODSID@, @GOODSCODE@, @ACCOUNTID@, @CREATEUSERID@, @UPDATEUSERID@, @REMARKS@ )",
  1231. new CDAParameter("ITEMSID", newID),
  1232. new CDAParameter("GOODSID", goodsTable.Rows[i]["GOODSID"].ToString()),
  1233. new CDAParameter("GOODSCODE", goodsTable.Rows[i]["GOODSCODE"].ToString()),
  1234. new CDAParameter("REMARKS", goodsTable.Rows[i]["REMARKS"]),
  1235. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  1236. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  1237. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  1238. );
  1239. }
  1240. //明细
  1241. for (int i = 0; i < detailTable.Rows.Count; i++)
  1242. {
  1243. int detailresult = conn.ExecuteNonQuery(@"
  1244. INSERT INTO TP_PM_FQCITEMSDETAIL (
  1245. ITEMSID,
  1246. INSPECTITEM,
  1247. INSPECTTOOL,
  1248. INSPECTMARK,
  1249. INSPECTWAY,
  1250. ISINSPECT,
  1251. INSPECTBASIS,
  1252. DEFECTGRADE,
  1253. TECHNICALREQUIREMENT,
  1254. LOWERLIMIT,
  1255. UPPERLIMIT,
  1256. INSPECTCOUNT,
  1257. ISAVERAGE,
  1258. UNITNAME,
  1259. REMARKS,
  1260. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  1261. ) VALUES (
  1262. @ITEMSID@,
  1263. @INSPECTITEM@,
  1264. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC022' AND T.DICTIONARYVALUE=@INSPECTTOOL@),
  1265. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC023' AND T.DICTIONARYVALUE=@INSPECTMARK@),
  1266. @INSPECTWAY@,
  1267. @ISINSPECT@,
  1268. @INSPECTBASIS@,
  1269. @DEFECTGRADE@,
  1270. @TECHNICALREQUIREMENT@,
  1271. @LOWERLIMIT@,
  1272. @UPPERLIMIT@,
  1273. @INSPECTCOUNT@,
  1274. @ISAVERAGE@,
  1275. @UNITNAME@,
  1276. @REMARKS@,
  1277. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  1278. )
  1279. ",
  1280. new CDAParameter("ITEMSID", newID),
  1281. new CDAParameter("INSPECTITEM", detailTable.Rows[i]["检验项目"]),
  1282. new CDAParameter("INSPECTTOOL", detailTable.Rows[i]["检验工具"]),
  1283. new CDAParameter("INSPECTMARK", detailTable.Rows[i]["检验标识"]),
  1284. new CDAParameter("INSPECTWAY", detailTable.Rows[i]["检验方式"]),
  1285. new CDAParameter("ISINSPECT", detailTable.Rows[i]["是否必检0否1是"]),
  1286. new CDAParameter("INSPECTBASIS", detailTable.Rows[i]["检验依据"]),
  1287. new CDAParameter("DEFECTGRADE", detailTable.Rows[i]["缺陷等级"]),
  1288. new CDAParameter("TECHNICALREQUIREMENT", detailTable.Rows[i]["技术要求"]),
  1289. new CDAParameter("LOWERLIMIT", detailTable.Rows[i]["规格下限"]),
  1290. new CDAParameter("UPPERLIMIT", detailTable.Rows[i]["规格上限"]),
  1291. new CDAParameter("INSPECTCOUNT", detailTable.Rows[i]["检验次数"]),
  1292. new CDAParameter("ISAVERAGE", detailTable.Rows[i]["是否统计平均值0否1是"]),
  1293. new CDAParameter("UNITNAME", detailTable.Rows[i]["单位名称"]),
  1294. new CDAParameter("REMARKS", detailTable.Rows[i]["备注"]),
  1295. new CDAParameter("ACCOUNTID", 1),
  1296. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  1297. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  1298. );
  1299. }
  1300. }
  1301. else
  1302. {
  1303. //明细
  1304. for (int i = 0; i < detailTable.Rows.Count; i++)
  1305. {
  1306. int detailresult = conn.ExecuteNonQuery(@"
  1307. INSERT INTO TP_PM_FQCITEMSDETAIL (
  1308. ITEMSID,
  1309. INSPECTITEM,
  1310. INSPECTTOOL,
  1311. INSPECTMARK,
  1312. INSPECTWAY,
  1313. ISINSPECT,
  1314. INSPECTBASIS,
  1315. DEFECTGRADE,
  1316. TECHNICALREQUIREMENT,
  1317. LOWERLIMIT,
  1318. UPPERLIMIT,
  1319. INSPECTCOUNT,
  1320. ISAVERAGE,
  1321. UNITNAME,
  1322. REMARKS,
  1323. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  1324. ) VALUES (
  1325. @ITEMSID@,
  1326. @INSPECTITEM@,
  1327. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC022' AND T.DICTIONARYVALUE=@INSPECTTOOL@),
  1328. (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC023' AND T.DICTIONARYVALUE=@INSPECTMARK@),
  1329. @INSPECTWAY@,
  1330. @ISINSPECT@,
  1331. @INSPECTBASIS@,
  1332. @DEFECTGRADE@,
  1333. @TECHNICALREQUIREMENT@,
  1334. @LOWERLIMIT@,
  1335. @UPPERLIMIT@,
  1336. @INSPECTCOUNT@,
  1337. @ISAVERAGE@,
  1338. @UNITNAME@,
  1339. @REMARKS@,
  1340. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  1341. )
  1342. ",
  1343. new CDAParameter("ITEMSID", itemsID),
  1344. new CDAParameter("INSPECTITEM", detailTable.Rows[i]["检验项目"]),
  1345. new CDAParameter("INSPECTTOOL", detailTable.Rows[i]["检验工具"]),
  1346. new CDAParameter("INSPECTMARK", detailTable.Rows[i]["检验标识"]),
  1347. new CDAParameter("INSPECTWAY", detailTable.Rows[i]["检验方式"]),
  1348. new CDAParameter("ISINSPECT", detailTable.Rows[i]["是否必检0否1是"]),
  1349. new CDAParameter("INSPECTBASIS", detailTable.Rows[i]["检验依据"]),
  1350. new CDAParameter("DEFECTGRADE", detailTable.Rows[i]["缺陷等级"]),
  1351. new CDAParameter("TECHNICALREQUIREMENT", detailTable.Rows[i]["技术要求"]),
  1352. new CDAParameter("LOWERLIMIT", detailTable.Rows[i]["规格下限"]),
  1353. new CDAParameter("UPPERLIMIT", detailTable.Rows[i]["规格上限"]),
  1354. new CDAParameter("INSPECTCOUNT", detailTable.Rows[i]["检验次数"]),
  1355. new CDAParameter("ISAVERAGE", detailTable.Rows[i]["是否统计平均值0否1是"]),
  1356. new CDAParameter("UNITNAME", detailTable.Rows[i]["单位名称"]),
  1357. new CDAParameter("REMARKS", detailTable.Rows[i]["备注"]),
  1358. new CDAParameter("ACCOUNTID", 1),
  1359. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  1360. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  1361. );
  1362. }
  1363. }
  1364. }
  1365. conn.Commit();
  1366. return new JsonResult(JsonStatus.error) { message = "导入成功 请手动刷新总单数据!" }.ToJson();
  1367. }
  1368. catch (Exception e)
  1369. {
  1370. conn.Rollback();
  1371. return new JsonResult(JsonStatus.error) { message = "导入失败 请验证文件格式及模板正确性!" }.ToJson();
  1372. }
  1373. }
  1374. }
  1375. /// <summary>
  1376. /// 导出 TP_PM_FQCITEMSDETAIL
  1377. /// </summary>
  1378. /// <returns>json</returns>
  1379. private string export()
  1380. {
  1381. return search(new NameValueCollection(),null);
  1382. }
  1383. private class Button
  1384. {
  1385. public bool fqcitemsdetailButtonIndex = false;
  1386. public bool fqcitemsdetailButtonInsert = false;
  1387. public bool fqcitemsdetailButtonInsertBatch = false;
  1388. public bool fqcitemsdetailButtonCopy = false;
  1389. public bool fqcitemsdetailButtonUpdate = false;
  1390. public bool fqcitemsdetailButtonDelete = false;
  1391. public bool fqcitemsdetailButtonCancel = false;
  1392. public bool fqcitemsdetailButtonSearch = false;
  1393. public bool fqcitemsdetailButtonDetail = false;
  1394. public bool fqcitemsdetailButtonCheckbox = false;
  1395. public bool fqcitemsdetailButtonExport = false;
  1396. public bool fqcitemsdetailButtonReload = false;
  1397. public bool fqcitemsdetailButtonBatch = false;
  1398. public bool fqcitemsdetailButtonImport = false;
  1399. }
  1400. private class xRecord
  1401. {
  1402. public string sid { get; set; }
  1403. public string ITEMSID { get; set; }
  1404. public string INSPECTITEM { get; set; }
  1405. public string INSPECTTOOL { get; set; }
  1406. public string INSPECTMARK { get; set; }
  1407. public string INSPECTWAY { get; set; }
  1408. public string ISINSPECT { get; set; }
  1409. public string INSPECTBASIS { get; set; }
  1410. public string DEFECTGRADE { get; set; }
  1411. public string TECHNICALREQUIREMENT { get; set; }
  1412. public string LOWERLIMIT { get; set; }
  1413. public string UPPERLIMIT { get; set; }
  1414. public string UNITNAME { get; set; }
  1415. public string REMARKS { get; set; }
  1416. }
  1417. public bool IsReusable
  1418. {
  1419. get
  1420. {
  1421. return false;
  1422. }
  1423. }
  1424. #region 读取excel数据
  1425. /// <summary>
  1426. /// 读取excel数据
  1427. /// </summary>
  1428. /// <param name="fileName">地址</param>
  1429. /// 李士越 2024-07-01
  1430. /// <returns></returns>
  1431. public static DataTable ExcelToDatatable(string fileName)
  1432. {
  1433. ISheet sheet = null;
  1434. DataTable datatable = new DataTable();
  1435. int startRow = 0;
  1436. FileStream fs;
  1437. IWorkbook workbook = null;
  1438. int cellCount = 0;
  1439. int rowCount = 0;
  1440. try
  1441. {
  1442. fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
  1443. if (fileName.IndexOf(".xlsx") > 0)
  1444. {
  1445. workbook = new XSSFWorkbook(fs);
  1446. }
  1447. else if (fileName.IndexOf(".xls") > 0)
  1448. {
  1449. workbook = new HSSFWorkbook(fs);
  1450. }
  1451. sheet = workbook.GetSheetAt(0);
  1452. if (sheet != null)
  1453. {
  1454. IRow firstRow = sheet.GetRow(0);
  1455. cellCount = firstRow.LastCellNum;
  1456. for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
  1457. {
  1458. DataColumn column = new DataColumn(firstRow.GetCell(i).StringCellValue);
  1459. datatable.Columns.Add(column);
  1460. }
  1461. startRow = sheet.FirstRowNum + 1;
  1462. rowCount = sheet.LastRowNum;
  1463. for (int i = startRow; i <= rowCount; ++i)
  1464. {
  1465. IRow row = sheet.GetRow(i);
  1466. if (row == null)
  1467. {
  1468. continue;
  1469. }
  1470. DataRow dataRow = datatable.NewRow();
  1471. for (int y = 0; y <= cellCount; y++)
  1472. {
  1473. if (row.GetCell(y) != null && row.GetCell(y).ToString() != String.Empty && row.GetCell(y).ToString() != "" && row.GetCell(y).ToString().Trim() != "")
  1474. {
  1475. dataRow[y] = row.GetCell(y).ToString();
  1476. }
  1477. }
  1478. datatable.Rows.Add(dataRow);
  1479. }
  1480. }
  1481. return datatable;
  1482. }
  1483. catch (Exception ex)
  1484. {
  1485. Console.WriteLine("Exception: " + ex.Message);
  1486. return null;
  1487. }
  1488. }
  1489. #endregion
  1490. }