celsiusrecord.ashx 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. <%@ WebHandler Language="C#" Class="celsiusrecord" %>
  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. /// <summary>
  11. /// TP_PM_CELSIUSRECORD
  12. /// xuwei create 2020-04-22
  13. /// </summary>
  14. public class celsiusrecord : IHttpHandler, IReadOnlySessionState
  15. {
  16. public void ProcessRequest(HttpContext context)
  17. {
  18. context.Response.ContentType = "text/plain";
  19. if (mes.LoginCheck() && context.Request["m"] is object)
  20. {
  21. Button b = new Button();
  22. if(mes.RightCheck("系统管理"))
  23. {
  24. b.btnIndex = true;
  25. b.btnInsert = true;
  26. b.btnInsertBatch = true;
  27. b.btnCopy = true;
  28. b.btnUpdate = true;
  29. b.btnDelete = true;
  30. b.btnCancel = true;
  31. b.btnSearch = true;
  32. b.btnDetail = true;
  33. b.btnCheckbox = true;
  34. b.btnExport = true;
  35. b.btnImport = true;
  36. b.btnReload = true;
  37. };
  38. switch (context.Request["m"].ToString().ToLower())
  39. {
  40. case "b":
  41. {
  42. //按钮
  43. context.Response.Write(new JsonResult(b).ToJson());
  44. break;
  45. }
  46. case "a":
  47. {
  48. //添加
  49. if (b.btnDetail && context.Request["id"].ToString() != "")
  50. context.Response.Write(detail());
  51. else
  52. {
  53. xRecord r = new xRecord();
  54. context.Response.Write(new JsonResult(r).ToJson());
  55. }
  56. break;
  57. }
  58. case "s":
  59. {
  60. //搜索
  61. if (b.btnIndex)
  62. context.Response.Write(search(context.Request.Form));
  63. else
  64. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  65. break;
  66. }
  67. case "t":
  68. {
  69. //详细
  70. if (b.btnDetail)
  71. context.Response.Write(detail());
  72. else
  73. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  74. break;
  75. }
  76. case "i":
  77. {
  78. //插入
  79. if (b.btnInsert)
  80. context.Response.Write(insert(context.Request.Form));
  81. else
  82. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  83. break;
  84. }
  85. case "im":
  86. {
  87. //导入数据
  88. if (b.btnImport)
  89. {
  90. //上传文件
  91. string filePath = "/mes/upload/"+DateTime.Now.ToString("yyyy-MM-dd");
  92. System.IO.Directory.CreateDirectory(context.Server.MapPath(filePath));
  93. string fileName = filePath + "/温湿度记录" + DateTime.Now.ToString("yyyy-MM");
  94. fileName += System.IO.Path.GetExtension(context.Request.Files[0].FileName);
  95. string diskFileName = context.Server.MapPath(fileName);
  96. if (System.IO.File.Exists(diskFileName)) System.IO.File.Delete(diskFileName);
  97. context.Request.Files[0].SaveAs(diskFileName);
  98. //读取Excel数据
  99. DataTable excelTable = Import.ExcelToDataTable(diskFileName);
  100. //写入数据
  101. using(IDataAccess conn = DataAccess.Create())
  102. {
  103. try
  104. {
  105. conn.BeginTransaction();
  106. //按温湿计编码删除全部数据
  107. conn.ExecuteNonQuery(@"
  108. DELETE
  109. TP_PM_CELSIUSRECORD
  110. WHERE
  111. THERMOMETERID = @THERMOMETERID@
  112. ",
  113. new CDAParameter("THERMOMETERID", context.Request["THERMOMETERID"])
  114. );
  115. for (int i=0; i<excelTable.Rows.Count; i++)
  116. {
  117. //合并日期
  118. string dateStr = Convert.ToDateTime(excelTable.Rows[i]["日期"]).ToString("yyyy-MM-dd");
  119. string timeStr = Convert.ToDateTime(excelTable.Rows[i]["时间"]).ToString("HH:mm:ss");
  120. string dateTimeStr = dateStr + " " + timeStr;
  121. //逐行删除数据
  122. //conn.ExecuteNonQuery(@"
  123. // DELETE
  124. // TP_PM_CELSIUSRECORD
  125. // WHERE
  126. // THERMOMETERID = @THERMOMETERID@
  127. // AND RECORDDATE = @RECORDDATE@
  128. // ",
  129. // new CDAParameter("THERMOMETERID", context.Request["THERMOMETERID"]),
  130. // new CDAParameter("RECORDDATE", Convert.ToDateTime(dateTimeStr))
  131. // );
  132. //写入数据库
  133. conn.ExecuteNonQuery(@"
  134. INSERT INTO TP_PM_CELSIUSRECORD (
  135. THERMOMETERID,
  136. RECORDERID,
  137. RECORDDATE,
  138. CELSIUS,
  139. HUMIDITY,
  140. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  141. ) VALUES (
  142. @THERMOMETERID@,
  143. @RECORDERID@,
  144. @RECORDDATE@,
  145. @CELSIUS@,
  146. @HUMIDITY@,
  147. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  148. )
  149. ",
  150. new CDAParameter("THERMOMETERID",context.Request["THERMOMETERID"]),
  151. new CDAParameter("RECORDERID",context.Session["userId"]),
  152. new CDAParameter("RECORDDATE",Convert.ToDateTime(dateTimeStr)),
  153. new CDAParameter("CELSIUS",excelTable.Rows[i]["温度"]),
  154. new CDAParameter("HUMIDITY",excelTable.Rows[i]["湿度"]),
  155. new CDAParameter("ACCOUNTID",context.Session["accountId"]),
  156. new CDAParameter("CREATEUSERID",context.Session["userId"]),
  157. new CDAParameter("UPDATEUSERID",context.Session["userId"])
  158. );
  159. }
  160. conn.Commit();
  161. }
  162. catch
  163. {
  164. conn.Rollback();
  165. }
  166. }
  167. context.Response.Write(new JsonResult(JsonStatus.success).ToJson());
  168. }
  169. else
  170. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  171. break;
  172. }
  173. case "u":
  174. {
  175. //修改
  176. if (b.btnUpdate)
  177. context.Response.Write(update(context.Request.Form));
  178. else
  179. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  180. break;
  181. }
  182. case "d":
  183. {
  184. //删除
  185. if (b.btnDelete)
  186. context.Response.Write(delete());
  187. else
  188. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  189. break;
  190. }
  191. case "e":
  192. {
  193. //导出
  194. if (b.btnExport)
  195. {
  196. context.Response.Write(export());
  197. }
  198. else
  199. {
  200. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  201. }
  202. break;
  203. }
  204. default:
  205. {
  206. break;
  207. }
  208. }
  209. }
  210. else
  211. {
  212. context.Response.Write(new JsonResult(JsonStatus.loginError).ToJson());
  213. }
  214. }
  215. /// <summary>
  216. /// TP_PM_CELSIUSRECORD 查询
  217. /// </summary>
  218. /// <returns>json</returns>
  219. private string search(NameValueCollection form)
  220. {
  221. using(IDataAccess conn=DataAccess.Create())
  222. {
  223. int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
  224. int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
  225. string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
  226. string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
  227. string sqlStr = @"
  228. SELECT
  229. m.RECORDID AS SID,
  230. m.RECORDID,
  231. m.THERMOMETERID,
  232. t.THERMOMETERCODE,
  233. m.RECORDERID,
  234. u.USERCODE AS RECORDERCODE,
  235. m.RECORDDATE,
  236. m.CELSIUS,
  237. m.HUMIDITY,
  238. m.REMARKS,
  239. m.VALUEFLAG,
  240. m.ACCOUNTID,
  241. m.CREATEUSERID,
  242. m.CREATETIME,
  243. m.UPDATEUSERID,
  244. m.UPDATETIME
  245. FROM
  246. TP_PM_CELSIUSRECORD m
  247. LEFT JOIN TP_MST_THERMOMETER t ON m.THERMOMETERID = t.THERMOMETERID
  248. LEFT JOIN TP_MST_USER u ON m.RECORDERID = u.USERID
  249. WHERE
  250. m.VALUEFLAG = '1'
  251. AND m.ACCOUNTID = @ACCOUNTID@
  252. ";
  253. List<CDAParameter> sqlPara = new List<CDAParameter>();
  254. sqlPara.Add(new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]));
  255. if(!string.IsNullOrEmpty(form["RECORDID"]))
  256. {
  257. sqlStr += " AND m.RECORDID = @RECORDID@ ";
  258. sqlPara.Add(new CDAParameter("RECORDID", form["RECORDID"]));
  259. }
  260. if(!string.IsNullOrEmpty(form["THERMOMETERID"]))
  261. {
  262. sqlStr += " AND INSTR( m.THERMOMETERID, @THERMOMETERID@ ) > 0 ";
  263. sqlPara.Add(new CDAParameter("THERMOMETERID", form["THERMOMETERID"]));
  264. }
  265. if(!string.IsNullOrEmpty(form["RECORDERID"]))
  266. {
  267. sqlStr += " AND INSTR( m.RECORDERID, @RECORDERID@ ) > 0 ";
  268. sqlPara.Add(new CDAParameter("RECORDERID", form["RECORDERID"]));
  269. }
  270. if(!string.IsNullOrEmpty(form["RECORDDATE"]))
  271. {
  272. sqlStr += " AND INSTR( m.RECORDDATE, @RECORDDATE@ ) > 0 ";
  273. sqlPara.Add(new CDAParameter("RECORDDATE", form["RECORDDATE"]));
  274. }
  275. if(!string.IsNullOrEmpty(form["CELSIUS"]))
  276. {
  277. sqlStr += " AND INSTR( m.CELSIUS, @CELSIUS@ ) > 0 ";
  278. sqlPara.Add(new CDAParameter("CELSIUS", form["CELSIUS"]));
  279. }
  280. if(!string.IsNullOrEmpty(form["HUMIDITY"]))
  281. {
  282. sqlStr += " AND INSTR( m.HUMIDITY, @HUMIDITY@ ) > 0 ";
  283. sqlPara.Add(new CDAParameter("HUMIDITY", form["HUMIDITY"]));
  284. }
  285. if(!string.IsNullOrEmpty(form["REMARKS"]))
  286. {
  287. sqlStr += " AND INSTR( m.REMARKS, @REMARKS@ ) > 0 ";
  288. sqlPara.Add(new CDAParameter("REMARKS", form["REMARKS"]));
  289. }
  290. if(sort != "")
  291. {
  292. sqlStr += " ORDER BY " + sort + " " + order;
  293. }
  294. int total = 0;
  295. DataTable dt = conn.SelectPages(page, rows,out total, sqlStr, sqlPara.ToArray());
  296. return new JsonResult(dt) { total = total}.ToJson();
  297. }
  298. }
  299. /// <summary>
  300. /// 详细 TP_PM_CELSIUSRECORD
  301. /// </summary>
  302. /// <returns>json</returns>
  303. private string detail()
  304. {
  305. using(IDataAccess conn= DataAccess.Create())
  306. {
  307. DataTable dt = conn.ExecuteDatatable(@"
  308. SELECT
  309. m.RECORDID AS SID,
  310. m.RECORDID,
  311. m.THERMOMETERID,
  312. t.THERMOMETERCODE,
  313. m.RECORDERID,
  314. u.USERCODE AS RECORDERCODE,
  315. m.RECORDDATE,
  316. m.CELSIUS,
  317. m.HUMIDITY,
  318. m.REMARKS,
  319. m.VALUEFLAG,
  320. m.ACCOUNTID,
  321. m.CREATEUSERID,
  322. m.CREATETIME,
  323. m.UPDATEUSERID,
  324. m.UPDATETIME
  325. FROM
  326. TP_PM_CELSIUSRECORD m
  327. LEFT JOIN TP_MST_THERMOMETER t ON m.THERMOMETERID = t.THERMOMETERID
  328. LEFT JOIN TP_MST_USER u ON m.RECORDERID = u.USERID
  329. WHERE
  330. m.VALUEFLAG = '1'
  331. AND m.ACCOUNTID = @ACCOUNTID@
  332. AND m.RECORDID = @RECORDID@
  333. ",
  334. new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]),
  335. new CDAParameter("RECORDID",HttpContext.Current.Request["id"])
  336. );
  337. return new JsonResult(dt).ToJson();
  338. }
  339. }
  340. /// <summary>
  341. /// 插入 TP_PM_CELSIUSRECORD
  342. /// </summary>
  343. /// <returns>json</returns>
  344. private string insert(NameValueCollection form)
  345. {
  346. using(IDataAccess conn= DataAccess.Create())
  347. {
  348. //string primaryKey = conn.GetSequenceNextval("SEQ_TP_PM_CELSIUSRECORD").ToString();
  349. int result = conn.ExecuteNonQuery(@"
  350. INSERT INTO TP_PM_CELSIUSRECORD (
  351. --RECORDID,
  352. THERMOMETERID,
  353. RECORDERID,
  354. RECORDDATE,
  355. CELSIUS,
  356. HUMIDITY,
  357. REMARKS,
  358. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  359. ) VALUES (
  360. --@RECORDID@,
  361. @THERMOMETERID@,
  362. @RECORDERID@,
  363. @RECORDDATE@,
  364. @CELSIUS@,
  365. @HUMIDITY@,
  366. @REMARKS@,
  367. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  368. )
  369. ",
  370. //new CDAParameter("RECORDID",primaryKey),
  371. new CDAParameter("THERMOMETERID",form["THERMOMETERID"]),
  372. new CDAParameter("RECORDERID",form["RECORDERID"]),
  373. new CDAParameter("RECORDDATE",Convert.ToDateTime(form["RECORDDATE"])),
  374. new CDAParameter("CELSIUS",form["CELSIUS"]),
  375. new CDAParameter("HUMIDITY",form["HUMIDITY"]),
  376. new CDAParameter("REMARKS",form["REMARKS"]),
  377. new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]),
  378. new CDAParameter("CREATEUSERID",HttpContext.Current.Session["userId"]),
  379. new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"])
  380. );
  381. return new JsonResult(JsonStatus.success).ToJson();
  382. }
  383. }
  384. /// <summary>
  385. /// 更新 TP_PM_CELSIUSRECORD
  386. /// </summary>
  387. /// <returns>json</returns>
  388. private string update(NameValueCollection form)
  389. {
  390. using(IDataAccess conn=DataAccess.Create())
  391. {
  392. int result = conn.ExecuteNonQuery(@"
  393. UPDATE TP_PM_CELSIUSRECORD
  394. SET
  395. THERMOMETERID = @THERMOMETERID@,
  396. RECORDERID = @RECORDERID@,
  397. RECORDDATE = @RECORDDATE@,
  398. CELSIUS = @CELSIUS@,
  399. HUMIDITY = @HUMIDITY@,
  400. REMARKS = @REMARKS@,
  401. UPDATEUSERID = @UPDATEUSERID@,
  402. UPDATETIME = sysdate
  403. WHERE
  404. RECORDID = @RECORDID@
  405. ",
  406. new CDAParameter("THERMOMETERID",form["THERMOMETERID"]),
  407. new CDAParameter("RECORDERID",form["RECORDERID"]),
  408. new CDAParameter("RECORDDATE",Convert.ToDateTime(form["RECORDDATE"])),
  409. new CDAParameter("CELSIUS",form["CELSIUS"]),
  410. new CDAParameter("HUMIDITY",form["HUMIDITY"]),
  411. new CDAParameter("REMARKS",form["REMARKS"]),
  412. new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"]),
  413. new CDAParameter("RECORDID",HttpContext.Current.Request["id"])
  414. );
  415. return new JsonResult(JsonStatus.success).ToJson();
  416. }
  417. }
  418. /// <summary>
  419. /// 删除 TP_PM_CELSIUSRECORD
  420. /// </summary>
  421. /// <returns>json</returns>
  422. private string delete()
  423. {
  424. using(IDataAccess conn= DataAccess.Create())
  425. {
  426. if (HttpContext.Current.Request["id"] is object)
  427. {
  428. int result = conn.ExecuteNonQuery(@"
  429. DELETE
  430. TP_PM_CELSIUSRECORD
  431. WHERE
  432. INSTR(',' || @RECORDID@ || ',' , ',' || RECORDID || ',') > 0
  433. ",
  434. new CDAParameter("RECORDID", HttpContext.Current.Request["id"])
  435. );
  436. return new JsonResult(JsonStatus.success).ToJson();
  437. }
  438. else
  439. {
  440. return new JsonResult(JsonStatus.otherError).ToJson();
  441. }
  442. }
  443. }
  444. /// <summary>
  445. /// 导出 TP_PM_CELSIUSRECORD
  446. /// </summary>
  447. /// <returns>json</returns>
  448. private string export()
  449. {
  450. return search(new NameValueCollection());
  451. }
  452. private class Button
  453. {
  454. public bool btnIndex = false;
  455. public bool btnInsert = false;
  456. public bool btnInsertBatch = false;
  457. public bool btnCopy = false;
  458. public bool btnUpdate = false;
  459. public bool btnDelete = false;
  460. public bool btnCancel = false;
  461. public bool btnSearch = false;
  462. public bool btnDetail = false;
  463. public bool btnCheckbox = false;
  464. public bool btnExport = false;
  465. public bool btnImport = false;
  466. public bool btnReload = false;
  467. }
  468. private class xRecord
  469. {
  470. public string sid { get; set; }
  471. public string THERMOMETERID { get; set; }
  472. public string RECORDERID { get; set; }
  473. public string RECORDDATE { get; set; }
  474. public string CELSIUS { get; set; }
  475. public string HUMIDITY { get; set; }
  476. public string REMARKS { get; set; }
  477. }
  478. public bool IsReusable
  479. {
  480. get
  481. {
  482. return false;
  483. }
  484. }
  485. }