workstationuser.ashx 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511
  1. <%@ WebHandler Language="C#" Class="workstationuser" %>
  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_WORKSTATIONUSER
  12. /// xuwei create 2020-05-25
  13. /// </summary>
  14. public class workstationuser : IHttpHandler, IRequiresSessionState
  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"] != null && context.Request["id"].ToString() != "")
  49. context.Response.Write(detail());
  50. else
  51. {
  52. xRecord r = new xRecord();
  53. context.Response.Write(new JsonResult(r).ToJson());
  54. }
  55. break;
  56. }
  57. case "s":
  58. {
  59. //搜索
  60. if (b.btnIndex)
  61. context.Response.Write(search(context.Request.Form));
  62. else
  63. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  64. break;
  65. }
  66. case "t":
  67. {
  68. //详细
  69. if (b.btnDetail)
  70. context.Response.Write(detail());
  71. else
  72. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  73. break;
  74. }
  75. case "i":
  76. {
  77. //插入
  78. if (b.btnInsert)
  79. context.Response.Write(insert(context.Request.Form));
  80. else
  81. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  82. break;
  83. }
  84. case "u":
  85. {
  86. //修改
  87. if (b.btnUpdate)
  88. context.Response.Write(update(context.Request.Form));
  89. else
  90. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  91. break;
  92. }
  93. case "d":
  94. {
  95. //删除
  96. if (b.btnDelete)
  97. context.Response.Write(delete());
  98. else
  99. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  100. break;
  101. }
  102. case "e":
  103. {
  104. //导出
  105. if (b.btnExport)
  106. {
  107. context.Response.Write(export());
  108. }
  109. else
  110. {
  111. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  112. }
  113. break;
  114. }
  115. default:
  116. {
  117. break;
  118. }
  119. }
  120. }
  121. else
  122. {
  123. context.Response.Write(new JsonResult(JsonStatus.loginError).ToJson());
  124. }
  125. }
  126. /// <summary>
  127. /// TP_MST_WORKSTATIONUSER 查询
  128. /// </summary>
  129. /// <returns>json</returns>
  130. private string search(NameValueCollection form)
  131. {
  132. using (IDataAccess conn = DataAccess.Create())
  133. {
  134. int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
  135. int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
  136. string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
  137. string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
  138. string sqlStr = @"
  139. SELECT
  140. m.WORKSTATIONUSERID AS SID,
  141. m.WORKSTATIONUSERID,
  142. m.WORKSTATIONID,
  143. w.WORKSTATIONNAME,
  144. m.USERID,
  145. m.USERCODE,
  146. w.UJOBSID,
  147. j.JOBSNAME,
  148. m.REMARKS,
  149. m.ORGANIZATIONID,
  150. o.ORGANIZATIONNAME,
  151. m.VALUEFLAG,
  152. m.ACCOUNTID,
  153. m.CREATEUSERID,
  154. m.CREATETIME,
  155. m.UPDATEUSERID,
  156. m.UPDATETIME
  157. FROM
  158. TP_MST_WORKSTATIONUSER m
  159. LEFT JOIN TP_MST_WORKSTATION w ON w.WORKSTATIONID = m.WORKSTATIONID
  160. LEFT JOIN TP_MST_ORGANIZATION o ON o.ORGANIZATIONID = m.ORGANIZATIONID
  161. LEFT JOIN TP_MST_JOBS j ON j.JOBSID = w.UJOBSID
  162. WHERE
  163. m.VALUEFLAG = '1'
  164. AND m.ACCOUNTID = @ACCOUNTID@
  165. ";
  166. List<CDAParameter> sqlPara = new List<CDAParameter>();
  167. sqlPara.Add(new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]));
  168. if (!string.IsNullOrEmpty(form["WORKSTATIONUSERID"]))
  169. {
  170. sqlStr += " AND m.WORKSTATIONUSERID = @WORKSTATIONUSERID@ ";
  171. sqlPara.Add(new CDAParameter("WORKSTATIONUSERID", form["WORKSTATIONUSERID"]));
  172. }
  173. if (!string.IsNullOrEmpty(form["WORKSTATIONID"]))
  174. {
  175. sqlStr += " AND m.WORKSTATIONID = @WORKSTATIONID@ ";
  176. sqlPara.Add(new CDAParameter("WORKSTATIONID", form["WORKSTATIONID"]));
  177. }
  178. if (!string.IsNullOrEmpty(form["USERID"]))
  179. {
  180. sqlStr += " AND INSTR( m.USERID, @USERID@ ) > 0 ";
  181. sqlPara.Add(new CDAParameter("USERID", form["USERID"]));
  182. }
  183. if (!string.IsNullOrEmpty(form["USERCODE"]))
  184. {
  185. sqlStr += " AND INSTR( m.USERCODE, @USERCODE@ ) > 0 ";
  186. sqlPara.Add(new CDAParameter("USERCODE", form["USERCODE"]));
  187. }
  188. if (!string.IsNullOrEmpty(form["REMARKS"]))
  189. {
  190. sqlStr += " AND INSTR( m.REMARKS, @REMARKS@ ) > 0 ";
  191. sqlPara.Add(new CDAParameter("REMARKS", form["REMARKS"]));
  192. }
  193. if (!string.IsNullOrEmpty(form["ORGANIZATIONID"]))
  194. {
  195. sqlStr += " AND INSTR( m.ORGANIZATIONID, @ORGANIZATIONID@ ) > 0 ";
  196. sqlPara.Add(new CDAParameter("ORGANIZATIONID", form["ORGANIZATIONID"]));
  197. }
  198. if (sort != "")
  199. {
  200. sqlStr += " ORDER BY " + sort + " " + order;
  201. }
  202. int total = 0;
  203. DataTable dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
  204. return new JsonResult(dt) { total = total }.ToJson();
  205. }
  206. }
  207. /// <summary>
  208. /// 详细 TP_MST_WORKSTATIONUSER
  209. /// </summary>
  210. /// <returns>json</returns>
  211. private string detail()
  212. {
  213. using (IDataAccess conn = DataAccess.Create())
  214. {
  215. DataTable dt = conn.ExecuteDatatable(@"
  216. SELECT
  217. m.WORKSTATIONUSERID AS SID,
  218. m.WORKSTATIONUSERID,
  219. m.WORKSTATIONID,
  220. w.WORKSTATIONNAME,
  221. m.USERID,
  222. m.USERCODE,
  223. w.UJOBSID,
  224. j.JOBSNAME,
  225. m.REMARKS,
  226. m.ORGANIZATIONID,
  227. o.ORGANIZATIONNAME,
  228. m.VALUEFLAG,
  229. m.ACCOUNTID,
  230. m.CREATEUSERID,
  231. m.CREATETIME,
  232. m.UPDATEUSERID,
  233. m.UPDATETIME
  234. FROM
  235. TP_MST_WORKSTATIONUSER m
  236. LEFT JOIN TP_MST_WORKSTATION w ON w.WORKSTATIONID = m.WORKSTATIONID
  237. LEFT JOIN TP_MST_ORGANIZATION o ON o.ORGANIZATIONID = m.ORGANIZATIONID
  238. LEFT JOIN TP_MST_JOBS j ON j.JOBSID = w.UJOBSID
  239. WHERE
  240. m.VALUEFLAG = '1'
  241. AND m.ACCOUNTID = @ACCOUNTID@
  242. AND m.WORKSTATIONUSERID = @WORKSTATIONUSERID@
  243. ",
  244. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  245. new CDAParameter("WORKSTATIONUSERID", HttpContext.Current.Request["id"])
  246. );
  247. return new JsonResult(dt).ToJson();
  248. }
  249. }
  250. /// <summary>
  251. /// 插入 TP_MST_WORKSTATIONUSER
  252. /// </summary>
  253. /// <returns>json</returns>
  254. private string insert(NameValueCollection form)
  255. {
  256. using (IDataAccess conn = DataAccess.Create())
  257. {
  258. #region 校验重复
  259. // ADD BY fubin 2020/6/16
  260. string ID = form["WORKSTATIONID"];
  261. string[] ListID = ID.Split(',');
  262. object isExists = null;
  263. for (int i = 0; i < ListID.Length; i++)
  264. {
  265. isExists = conn.ExecuteScalar(
  266. @"SELECT 1
  267. FROM TP_MST_WORKSTATIONUSER WSU
  268. WHERE WSU.VALUEFLAG = 1
  269. AND WSU.USERID = @USERID@
  270. AND WSU.WORKSTATIONID = @WORKSTATIONID@",
  271. new CDAParameter("USERID", form["USERID"]),
  272. new CDAParameter("WORKSTATIONID", ListID[i])
  273. );
  274. if (isExists != null)
  275. {
  276. return new JsonResult(JsonStatus.otherError) { message = "当前第" + (i+1) + "工位已绑定" }.ToJson();
  277. }
  278. }
  279. #endregion
  280. //读取别用户ID
  281. string userCode = conn.ExecuteScalar(@"
  282. SELECT
  283. USERCODE
  284. FROM
  285. TP_MST_USER
  286. WHERE
  287. USERID = @USERID@
  288. "
  289. , new CDAParameter("USERID", form["USERID"])
  290. ).ToString();
  291. //读取用户所属部门
  292. string organizationId = conn.ExecuteScalar(@"
  293. SELECT
  294. o.ORGANIZATIONID
  295. FROM
  296. TP_MST_ORGANIZATION o
  297. LEFT JOIN TP_MST_USER u ON o.ORGANIZATIONID = u.ORGANIZATIONID
  298. WHERE
  299. u.USERID = @USERID@
  300. "
  301. , new CDAParameter("USERID", form["USERID"])
  302. ).ToString();
  303. try
  304. {
  305. int result = 0;
  306. for (int i = 0; i < ListID.Length; i++) {
  307. //string primaryKey = conn.GetSequenceNextval("SEQ_TP_MST_WORKSTATIONUSER").ToString();
  308. result = conn.ExecuteNonQuery(@"
  309. INSERT INTO TP_MST_WORKSTATIONUSER (
  310. --WORKSTATIONUSERID,
  311. WORKSTATIONID,
  312. USERID,
  313. USERCODE,
  314. REMARKS,
  315. ORGANIZATIONID,
  316. ACCOUNTID,CREATEUSERID,UPDATEUSERID
  317. ) VALUES (
  318. --@WORKSTATIONUSERID@,
  319. @WORKSTATIONID@,
  320. @USERID@,
  321. @USERCODE@,
  322. @REMARKS@,
  323. @ORGANIZATIONID@,
  324. @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@ ) ",
  325. //new CDAParameter("WORKSTATIONUSERID",primaryKey),
  326. new CDAParameter("WORKSTATIONID", ListID[i]),
  327. new CDAParameter("USERID", form["USERID"]),
  328. new CDAParameter("USERCODE", userCode),
  329. new CDAParameter("REMARKS", form["REMARKS"]),
  330. new CDAParameter("ORGANIZATIONID", organizationId),
  331. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  332. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  333. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  334. );
  335. if (result <= 0) {
  336. conn.Transaction.Rollback();
  337. return new JsonResult(JsonStatus.error).ToJson();
  338. }
  339. }
  340. }
  341. catch (Exception)
  342. {
  343. conn.Transaction.Rollback();
  344. return new JsonResult(JsonStatus.error).ToJson();
  345. }
  346. return new JsonResult(JsonStatus.success).ToJson();
  347. }
  348. }
  349. /// <summary>
  350. /// 更新 TP_MST_WORKSTATIONUSER
  351. /// </summary>
  352. /// <returns>json</returns>
  353. private string update(NameValueCollection form)
  354. {
  355. using (IDataAccess conn = DataAccess.Create())
  356. {
  357. #region 校验重复
  358. // ADD BY fubin 2020/6/16
  359. object isExists = conn.ExecuteScalar(
  360. @"SELECT 1
  361. FROM TP_MST_WORKSTATIONUSER WSU
  362. WHERE WSU.VALUEFLAG = 1
  363. AND WSU.USERID = @USERID@
  364. AND WSU.WORKSTATIONID = @WORKSTATIONID@
  365. AND WSU.WORKSTATIONUSERID <> @WORKSTATIONUSERID@",
  366. new CDAParameter("USERID", form["USERID"]),
  367. new CDAParameter("WORKSTATIONID", form["WORKSTATIONID"]),
  368. new CDAParameter("WORKSTATIONUSERID", form["WORKSTATIONUSERID"])
  369. );
  370. if (isExists != null)
  371. {
  372. return new JsonResult(JsonStatus.otherError) { message="当前工号工位已绑定"}.ToJson();
  373. }
  374. #endregion
  375. //读取别用户ID
  376. string userCode = conn.ExecuteScalar(@"
  377. SELECT
  378. USERCODE
  379. FROM
  380. TP_MST_USER
  381. WHERE
  382. USERID = @USERID@
  383. "
  384. , new CDAParameter("USERID", form["USERID"])
  385. ).ToString();
  386. //读取用户所属部门
  387. string organizationId = conn.ExecuteScalar(@"
  388. SELECT
  389. o.ORGANIZATIONID
  390. FROM
  391. TP_MST_ORGANIZATION o
  392. LEFT JOIN TP_MST_USER u ON o.ORGANIZATIONID = u.ORGANIZATIONID
  393. WHERE
  394. u.USERID = @USERID@
  395. "
  396. , new CDAParameter("USERID", form["USERID"])
  397. ).ToString();
  398. int result = conn.ExecuteNonQuery(@"
  399. UPDATE TP_MST_WORKSTATIONUSER
  400. SET
  401. WORKSTATIONID = @WORKSTATIONID@,
  402. USERID = @USERID@,
  403. USERCODE = @USERCODE@,
  404. REMARKS = @REMARKS@,
  405. ORGANIZATIONID = @ORGANIZATIONID@,
  406. UPDATEUSERID = @UPDATEUSERID@,
  407. UPDATETIME = sysdate
  408. WHERE
  409. WORKSTATIONUSERID = @WORKSTATIONUSERID@
  410. ",
  411. new CDAParameter("WORKSTATIONID", form["WORKSTATIONID"]),
  412. new CDAParameter("USERID", form["USERID"]),
  413. new CDAParameter("USERCODE", userCode),
  414. new CDAParameter("REMARKS", form["REMARKS"]),
  415. new CDAParameter("ORGANIZATIONID", organizationId),
  416. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
  417. new CDAParameter("WORKSTATIONUSERID", HttpContext.Current.Request["id"])
  418. );
  419. return new JsonResult(JsonStatus.success).ToJson();
  420. }
  421. }
  422. /// <summary>
  423. /// 删除 TP_MST_WORKSTATIONUSER
  424. /// </summary>
  425. /// <returns>json</returns>
  426. private string delete()
  427. {
  428. using (IDataAccess conn = DataAccess.Create())
  429. {
  430. if (HttpContext.Current.Request["id"] is object)
  431. {
  432. int result = conn.ExecuteNonQuery(@"
  433. DELETE
  434. TP_MST_WORKSTATIONUSER
  435. WHERE
  436. INSTR(',' || @WORKSTATIONUSERID@ || ',' , ',' || WORKSTATIONUSERID || ',') > 0
  437. ",
  438. new CDAParameter("WORKSTATIONUSERID", HttpContext.Current.Request["id"])
  439. );
  440. return new JsonResult(JsonStatus.success).ToJson();
  441. }
  442. else
  443. {
  444. return new JsonResult(JsonStatus.otherError).ToJson();
  445. }
  446. }
  447. }
  448. /// <summary>
  449. /// 导出 TP_MST_WORKSTATIONUSER
  450. /// </summary>
  451. /// <returns>json</returns>
  452. private string export()
  453. {
  454. return search(new NameValueCollection());
  455. }
  456. private class Button
  457. {
  458. public bool btnIndex = false;
  459. public bool btnInsert = false;
  460. public bool btnInsertBatch = false;
  461. public bool btnCopy = false;
  462. public bool btnUpdate = false;
  463. public bool btnDelete = false;
  464. public bool btnCancel = false;
  465. public bool btnSearch = false;
  466. public bool btnDetail = false;
  467. public bool btnCheckbox = false;
  468. public bool btnExport = false;
  469. public bool btnReload = false;
  470. }
  471. private class xRecord
  472. {
  473. public string sid { get; set; }
  474. public string WORKSTATIONID { get; set; }
  475. public string USERID { get; set; }
  476. public string USERCODE { get; set; }
  477. public string REMARKS { get; set; }
  478. public string ORGANIZATIONID { get; set; }
  479. }
  480. public bool IsReusable
  481. {
  482. get
  483. {
  484. return false;
  485. }
  486. }
  487. }