defect.ashx 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. <%@ WebHandler Language="C#" Class="defect" %>
  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_MST_DEFECT
  12. /// xuwei create 2020-04-16
  13. /// </summary>
  14. public class defect : 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 = false;
  35. b.btnReload = true;
  36. };
  37. switch (context.Request["m"].ToString().ToLower())
  38. {
  39. case "b":
  40. {
  41. //按钮
  42. context.Response.Write(new JsonResult(b).ToJson());
  43. break;
  44. }
  45. case "a":
  46. {
  47. //添加
  48. if (b.btnDetail && context.Request["id"] is object)
  49. context.Response.Write(detail());
  50. else
  51. {
  52. List<xRecord> list = new List<xRecord>();
  53. xRecord r = new xRecord();
  54. r.DISPLAYNO = "0";
  55. list.Add(r);
  56. context.Response.Write(new JsonResult(list).ToJson());
  57. }
  58. break;
  59. }
  60. case "s":
  61. {
  62. //搜索
  63. if (b.btnIndex)
  64. context.Response.Write(search(context.Request.Form));
  65. else
  66. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  67. break;
  68. }
  69. case "t":
  70. {
  71. //详细
  72. if (b.btnDetail)
  73. context.Response.Write(detail());
  74. else
  75. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  76. break;
  77. }
  78. case "i":
  79. {
  80. //插入
  81. if (b.btnInsert)
  82. context.Response.Write(insert(context.Request.Form));
  83. else
  84. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  85. break;
  86. }
  87. case "u":
  88. {
  89. //修改
  90. if (b.btnUpdate)
  91. context.Response.Write(update(context.Request.Form));
  92. else
  93. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  94. break;
  95. }
  96. case "d":
  97. {
  98. //删除
  99. if (b.btnDelete)
  100. context.Response.Write(delete());
  101. else
  102. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  103. break;
  104. }
  105. case "e":
  106. {
  107. //导出
  108. if (b.btnExport)
  109. {
  110. context.Response.Write(export());
  111. }
  112. else
  113. {
  114. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  115. }
  116. break;
  117. }
  118. default:
  119. {
  120. break;
  121. }
  122. }
  123. }
  124. else
  125. {
  126. context.Response.Write(new JsonResult(JsonStatus.loginError).ToJson());
  127. }
  128. }
  129. /// <summary>
  130. /// TP_MST_DEFECT 查询
  131. /// </summary>
  132. /// <returns>json</returns>
  133. private string search(NameValueCollection form)
  134. {
  135. using(IDataAccess conn=DataAccess.Create())
  136. {
  137. int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
  138. int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
  139. string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
  140. string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
  141. string sqlStr = @"
  142. SELECT
  143. m.DEFECTID AS SID,
  144. m.DEFECTID,
  145. m.DEFECTCODE,
  146. m.DEFECTNAME,
  147. m.REMARKS,
  148. m.DEFECTTYPEID,
  149. t.DEFECTTYPENAME,
  150. m.DISPLAYNO,
  151. m.VALUEFLAG,
  152. m.ACCOUNTID,
  153. m.CREATEUSERID,
  154. m.CREATETIME,
  155. m.UPDATEUSERID,
  156. m.UPDATETIME
  157. FROM
  158. TP_MST_DEFECT m
  159. LEFT JOIN TP_MST_DEFECTTYPE t ON m.DEFECTTYPEID = t.DEFECTTYPEID
  160. WHERE
  161. m.VALUEFLAG = '1'
  162. AND m.ACCOUNTID = @ACCOUNTID@
  163. ";
  164. List<CDAParameter> sqlPara = new List<CDAParameter>();
  165. sqlPara.Add(new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]));
  166. if(!string.IsNullOrEmpty(form["DEFECTID"]))
  167. {
  168. sqlStr += " AND m.DEFECTID = @DEFECTID@ ";
  169. sqlPara.Add(new CDAParameter("DEFECTID", form["DEFECTID"]));
  170. }
  171. if(!string.IsNullOrEmpty(form["DEFECTCODE"]))
  172. {
  173. sqlStr += " AND INSTR( m.DEFECTCODE, @DEFECTCODE@ ) > 0 ";
  174. sqlPara.Add(new CDAParameter("DEFECTCODE", form["DEFECTCODE"]));
  175. }
  176. if(!string.IsNullOrEmpty(form["DEFECTNAME"]))
  177. {
  178. sqlStr += " AND INSTR( m.DEFECTNAME, @DEFECTNAME@ ) > 0 ";
  179. sqlPara.Add(new CDAParameter("DEFECTNAME", form["DEFECTNAME"]));
  180. }
  181. if(!string.IsNullOrEmpty(form["REMARKS"]))
  182. {
  183. sqlStr += " AND INSTR( m.REMARKS, @REMARKS@ ) > 0 ";
  184. sqlPara.Add(new CDAParameter("REMARKS", form["REMARKS"]));
  185. }
  186. if(!string.IsNullOrEmpty(form["DEFECTTYPEID"]))
  187. {
  188. sqlStr += " AND INSTR( m.DEFECTTYPEID, @DEFECTTYPEID@ ) > 0 ";
  189. sqlPara.Add(new CDAParameter("DEFECTTYPEID", form["DEFECTTYPEID"]));
  190. }
  191. if(!string.IsNullOrEmpty(form["DISPLAYNO"]))
  192. {
  193. sqlStr += " AND INSTR( m.DISPLAYNO, @DISPLAYNO@ ) > 0 ";
  194. sqlPara.Add(new CDAParameter("DISPLAYNO", form["DISPLAYNO"]));
  195. }
  196. if(sort != "")
  197. {
  198. sqlStr += " ORDER BY " + sort + " " + order;
  199. }
  200. int total = 0;
  201. DataTable dt = conn.SelectPages(page, rows,out total, sqlStr, sqlPara.ToArray());
  202. return new JsonResult(dt) { total = total}.ToJson();
  203. }
  204. }
  205. /// <summary>
  206. /// 详细 TP_MST_DEFECT
  207. /// </summary>
  208. /// <returns>json</returns>
  209. private string detail()
  210. {
  211. using(IDataAccess conn= DataAccess.Create())
  212. {
  213. DataTable dt = conn.ExecuteDatatable(@"
  214. SELECT
  215. m.DEFECTID,
  216. m.DEFECTCODE,
  217. m.DEFECTNAME,
  218. m.REMARKS,
  219. m.DEFECTTYPEID,
  220. m.DISPLAYNO,
  221. m.VALUEFLAG,
  222. m.ACCOUNTID,
  223. m.CREATEUSERID,
  224. m.CREATETIME,
  225. m.UPDATEUSERID,
  226. m.UPDATETIME
  227. FROM
  228. TP_MST_DEFECT m
  229. WHERE
  230. m.VALUEFLAG = '1'
  231. AND m.ACCOUNTID = @ACCOUNTID@
  232. AND m.DEFECTID = @DEFECTID@
  233. ",
  234. new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]),
  235. new CDAParameter("DEFECTID",HttpContext.Current.Request["id"])
  236. );
  237. return new JsonResult(dt).ToJson();
  238. }
  239. }
  240. /// <summary>
  241. /// 插入 TP_MST_DEFECT
  242. /// </summary>
  243. /// <returns>json</returns>
  244. private string insert(NameValueCollection form)
  245. {
  246. using(IDataAccess conn= DataAccess.Create())
  247. {
  248. //string primaryKey = conn.GetSequenceNextval("SEQ_TP_MST_DEFECT").ToString();
  249. int result = conn.ExecuteNonQuery(@"
  250. INSERT INTO TP_MST_DEFECT (
  251. --DEFECTID,
  252. DEFECTCODE,
  253. DEFECTNAME,
  254. REMARKS,
  255. DEFECTTYPEID,
  256. DISPLAYNO,
  257. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  258. ) VALUES (
  259. --@DEFECTID@,
  260. @DEFECTCODE@,
  261. @DEFECTNAME@,
  262. @REMARKS@,
  263. @DEFECTTYPEID@,
  264. @DISPLAYNO@,
  265. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
  266. )
  267. ",
  268. //new CDAParameter("DEFECTID",primaryKey),
  269. new CDAParameter("DEFECTCODE",form["DEFECTCODE"]),
  270. new CDAParameter("DEFECTNAME",form["DEFECTNAME"]),
  271. new CDAParameter("REMARKS",form["REMARKS"]),
  272. new CDAParameter("DEFECTTYPEID",form["DEFECTTYPEID"]),
  273. new CDAParameter("DISPLAYNO",form["DISPLAYNO"]),
  274. new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]),
  275. new CDAParameter("CREATEUSERID",HttpContext.Current.Session["userId"]),
  276. new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"])
  277. );
  278. return new JsonResult(JsonStatus.success).ToJson();
  279. }
  280. }
  281. /// <summary>
  282. /// 更新 TP_MST_DEFECT
  283. /// </summary>
  284. /// <returns>json</returns>
  285. private string update(NameValueCollection form)
  286. {
  287. using(IDataAccess conn=DataAccess.Create())
  288. {
  289. int result = conn.ExecuteNonQuery(@"
  290. UPDATE TP_MST_DEFECT
  291. SET
  292. DEFECTCODE = @DEFECTCODE@,
  293. DEFECTNAME = @DEFECTNAME@,
  294. REMARKS = @REMARKS@,
  295. DEFECTTYPEID = @DEFECTTYPEID@,
  296. DISPLAYNO = @DISPLAYNO@,
  297. UPDATEUSERID = @UPDATEUSERID@,
  298. UPDATETIME = sysdate
  299. WHERE
  300. DEFECTID = @DEFECTID@
  301. ",
  302. new CDAParameter("DEFECTCODE",form["DEFECTCODE"]),
  303. new CDAParameter("DEFECTNAME",form["DEFECTNAME"]),
  304. new CDAParameter("REMARKS",form["REMARKS"]),
  305. new CDAParameter("DEFECTTYPEID",form["DEFECTTYPEID"]),
  306. new CDAParameter("DISPLAYNO",form["DISPLAYNO"]),
  307. new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"]),
  308. new CDAParameter("DEFECTID",HttpContext.Current.Request["id"])
  309. );
  310. return new JsonResult(JsonStatus.success).ToJson();
  311. }
  312. }
  313. /// <summary>
  314. /// 删除 TP_MST_DEFECT
  315. /// </summary>
  316. /// <returns>json</returns>
  317. private string delete()
  318. {
  319. using(IDataAccess conn= DataAccess.Create())
  320. {
  321. if (HttpContext.Current.Request["id"] is object)
  322. {
  323. int result = conn.ExecuteNonQuery(@"
  324. DELETE
  325. TP_MST_DEFECT
  326. WHERE
  327. INSTR(',' || @DEFECTID@ || ',' , ',' || DEFECTID || ',') > 0
  328. ",
  329. new CDAParameter("DEFECTID", HttpContext.Current.Request["id"])
  330. );
  331. return new JsonResult(JsonStatus.success).ToJson();
  332. }
  333. else
  334. {
  335. return new JsonResult(JsonStatus.otherError).ToJson();
  336. }
  337. }
  338. }
  339. /// <summary>
  340. /// 导出 TP_MST_DEFECT
  341. /// </summary>
  342. /// <returns>json</returns>
  343. private string export()
  344. {
  345. return search(new NameValueCollection());
  346. }
  347. private class Button
  348. {
  349. public bool btnIndex = false;
  350. public bool btnInsert = false;
  351. public bool btnInsertBatch = false;
  352. public bool btnCopy = false;
  353. public bool btnUpdate = false;
  354. public bool btnDelete = false;
  355. public bool btnCancel = false;
  356. public bool btnSearch = false;
  357. public bool btnDetail = false;
  358. public bool btnCheckbox = false;
  359. public bool btnExport = false;
  360. public bool btnReload = false;
  361. }
  362. private class xRecord
  363. {
  364. public string sid { get; set; }
  365. public string DEFECTCODE { get; set; }
  366. public string DEFECTNAME { get; set; }
  367. public string REMARKS { get; set; }
  368. public string DEFECTTYPEID { get; set; }
  369. public string DISPLAYNO { get; set; }
  370. }
  371. public bool IsReusable
  372. {
  373. get
  374. {
  375. return false;
  376. }
  377. }
  378. }