AddFQCInspect_WCF.ashx 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. <%@ WebHandler Language="C#" Class="AddFQCInspect_WCF" %>
  2. using System.Web;
  3. using System.Data;
  4. using System;
  5. using System.Web.SessionState;
  6. using System.Web.Configuration;
  7. using Newtonsoft.Json;
  8. using Newtonsoft.Json.Linq;
  9. using System.Collections;
  10. using Curtain.DataAccess;
  11. using Curtain.Log;
  12. using DK.XuWei.WebMes;
  13. /// <summary>
  14. /// 从WCF接口获取 成检保存
  15. /// qq 2023-09-19
  16. /// </summary>
  17. public class AddFQCInspect_WCF : IHttpHandler, IReadOnlySessionState
  18. {
  19. public void ProcessRequest(HttpContext context)
  20. {
  21. //处理提交数据
  22. if(context.Request["saveTable"] is object)
  23. {
  24. using (IDataAccess conn = DataAccess.Create())
  25. {
  26. conn.BeginTransaction();
  27. //提交到接口
  28. DataTable saveTable = JsonConvert.DeserializeObject<DataTable>(context.Request["saveTable"]);
  29. DataTable saveBOMTable = new DataTable();
  30. if (context.Request["saveBOMTable"] != null)
  31. {
  32. saveBOMTable = JsonConvert.DeserializeObject<DataTable>(context.Request["saveBOMTable"]);
  33. }
  34. string goodsCode = context.Request["goodsCode"];
  35. int planID = 0;
  36. int inspectionquality = 0;
  37. int planInspectionQuality = 0;
  38. DataTable timeTable = conn.ExecuteDatatable(@" select FUN_CMN_GetAccountDate(1) as time From DUAL"
  39. );
  40. DateTime result = Convert.ToDateTime(timeTable.Rows[0]["time"].ToString());
  41. DataTable time1Table = conn.ExecuteDatatable(@" select FUN_CMN_GetAccountDate(1) - 1 as time1 From DUAL"
  42. );
  43. DateTime result1 = Convert.ToDateTime(time1Table.Rows[0]["time1"].ToString());
  44. DataTable hourTable = conn.ExecuteDatatable(@" SELECT TO_CHAR(SYSDATE, 'HH24') AS hour FROM DUAL"
  45. );
  46. int hour = Convert.ToInt32(hourTable.Rows[0]["hour"]);
  47. if (saveTable != null && saveTable.Rows.Count > 0)
  48. {
  49. string barcode = saveTable.Rows[0]["BARCODE"].ToString();
  50. if (barcode.Length == 8)
  51. {
  52. DataTable procedurename = conn.ExecuteDatatable(@"
  53. SELECT BARCODE
  54. FROM TP_PM_GROUTINGDAILYDETAIL
  55. WHERE SERVICECODE = @OUTLABELCODE@",
  56. new CDAParameter("OUTLABELCODE", barcode.Substring(barcode.IndexOf('-')+1))
  57. );
  58. barcode = procedurename.Rows[0]["BARCODE"].ToString();
  59. }
  60. else if (barcode.Length == 28)
  61. {
  62. DataTable procedurename = conn.ExecuteDatatable(@"
  63. SELECT BARCODE
  64. FROM TP_PM_GROUTINGDAILYDETAIL
  65. WHERE OUTLABELCODE = @OUTLABELCODE@",
  66. new CDAParameter("OUTLABELCODE", barcode)
  67. );
  68. barcode = procedurename.Rows[0]["BARCODE"].ToString();
  69. }
  70. string sqlString= "";
  71. //A班
  72. if (hour >= 7 && hour < 18)
  73. {
  74. sqlString = @"SELECT distinct
  75. FP.PLANID,
  76. FP.PLANINSPECTIONQUANTITY,
  77. FP.INSPECTIONQUANTITY
  78. FROM TP_PM_FQCITEMSPLAN FP
  79. left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype and fd.valueflag = 1
  80. WHERE FP.Plandate = @PLANDATE@
  81. AND fd.inspecttype = @INSPECTTYPE@
  82. and ((fp.classes = 2 and CLASSESTYPE = 'A') or (fp.classes = 1 and CLASSESTYPE is null))
  83. AND FP.GOODSCODE = @GOODSCODE@";
  84. }
  85. else if(hour >= 18)
  86. {
  87. sqlString = @"SELECT distinct
  88. FP.PLANID,
  89. FP.PLANINSPECTIONQUANTITY,
  90. FP.INSPECTIONQUANTITY
  91. FROM TP_PM_FQCITEMSPLAN FP
  92. left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype and fd.valueflag = 1
  93. WHERE FP.Plandate = @PLANDATE@
  94. AND fd.inspecttype = @INSPECTTYPE@
  95. and ((fp.classes = 2 and CLASSESTYPE = 'B') or (fp.classes = 1 and CLASSESTYPE is null))
  96. AND FP.GOODSCODE = @GOODSCODE@";
  97. }
  98. else if(hour < 7)
  99. {
  100. sqlString = @"SELECT distinct
  101. FP.PLANID,
  102. FP.PLANINSPECTIONQUANTITY,
  103. FP.INSPECTIONQUANTITY
  104. FROM TP_PM_FQCITEMSPLAN FP
  105. left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype and fd.valueflag = 1
  106. WHERE FP.Plandate = @PLANDATE1@
  107. AND fd.inspecttype = @INSPECTTYPE@
  108. and ((fp.classes = 2 and CLASSESTYPE = 'B') or (fp.classes = 1 and CLASSESTYPE is null))
  109. AND FP.GOODSCODE = @GOODSCODE@";
  110. }
  111. //查询当前产品的当日计划ID-PLANID
  112. DataTable planTable = conn.ExecuteDatatable(sqlString,
  113. new CDAParameter("INSPECTTYPE", saveTable.Rows[0]["INSPECTTYPE"]),
  114. new CDAParameter("GOODSCODE", goodsCode),
  115. new CDAParameter("PLANDATE1", result1),
  116. new CDAParameter("PLANDATE", result)
  117. );
  118. if (planTable != null && planTable.Rows.Count > 0)
  119. {
  120. planID = Convert.ToInt32(planTable.Rows[0]["PLANID"]);
  121. inspectionquality = Convert.ToInt32(planTable.Rows[0]["INSPECTIONQUANTITY"]);
  122. planInspectionQuality = Convert.ToInt32(planTable.Rows[0]["PLANINSPECTIONQUANTITY"]);
  123. }
  124. //查询该条码是否保存过数据,如果保存过删除之前的检验记录,插入最新的数据
  125. int updateReault = conn.ExecuteNonQuery(@"
  126. UPDATE TP_PM_FQCITEMSDATA SET VALUEFLAG = '0' WHERE BARCODE = @BARCODE@ AND VALUEFLAG = '1' AND INSPECTTYPE = @INSPECTTYPE@",
  127. new CDAParameter("BARCODE", barcode),
  128. new CDAParameter("INSPECTTYPE", saveTable.Rows[0]["INSPECTTYPE"])
  129. );
  130. //if (planID > 0)
  131. {
  132. for (int i = 0; i < saveTable.Rows.Count; i++)
  133. {
  134. //插入检验数据
  135. int resultaddItems = conn.ExecuteNonQuery(@"
  136. INSERT INTO TP_PM_FQCITEMSDATA (
  137. PLANID,
  138. BARCODE,
  139. GOODSID,
  140. ITEMSID,
  141. INSPECTTYPE,
  142. ITEMSDETAILID,
  143. INSPECTITEM,
  144. INSPECTVALUE,
  145. ISQUALIFIED,
  146. ACCOUNTID,
  147. CREATEUSERID,
  148. UPDATEUSERID,
  149. REMARKS
  150. ) VALUES (
  151. @PLANID@,
  152. @BARCODE@,
  153. @GOODSID@,
  154. @ITEMSID@,
  155. @INSPECTTYPE@,
  156. @ITEMSDETAILID@,
  157. @INSPECTITEM@,
  158. @INSPECTVALUE@,
  159. @ISQUALIFIED@,
  160. @ACCOUNTID@,
  161. @CREATEUSERID@,
  162. @UPDATEUSERID@,
  163. @REMARKS@
  164. )
  165. ",
  166. new CDAParameter("PLANID", planID),
  167. new CDAParameter("BARCODE", barcode),
  168. new CDAParameter("GOODSID", Convert.ToInt32(saveTable.Rows[i]["GOODSID"])),
  169. new CDAParameter("ITEMSID", Convert.ToInt32(saveTable.Rows[i]["ITEMSID"])),
  170. new CDAParameter("INSPECTTYPE", Convert.ToInt32(saveTable.Rows[i]["INSPECTTYPE"])),
  171. new CDAParameter("ITEMSDETAILID", Convert.ToInt32(saveTable.Rows[i]["ITEMSDETAILID"])),
  172. new CDAParameter("INSPECTITEM", saveTable.Rows[i]["INSPECTITEM"].ToString()),
  173. new CDAParameter("INSPECTVALUE", saveTable.Rows[i]["INSPECTVALUE"].ToString()),
  174. new CDAParameter("ISQUALIFIED", saveTable.Rows[i]["ISQUALIFIED"].ToString() == "0"? 0:1),
  175. new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
  176. new CDAParameter("CREATEUSERID", Convert.ToInt32(HttpContext.Current.Session["userId"])),
  177. new CDAParameter("UPDATEUSERID", Convert.ToInt32(HttpContext.Current.Session["userId"])),
  178. new CDAParameter("REMARKS", saveTable.Rows[i]["REMARKS"].ToString())
  179. );
  180. }
  181. if (updateReault <= 0 && planID > 0)
  182. {
  183. //更新检验次数
  184. int planresult = conn.ExecuteNonQuery(@"
  185. UPDATE TP_PM_FQCITEMSPLAN SET INSPECTIONQUANTITY = @INSPECTIONQUANTITY@ WHERE PLANID = @PLANID@",
  186. new CDAParameter("PLANID", planID),
  187. new CDAParameter("INSPECTIONQUANTITY", inspectionquality+1)
  188. );
  189. }
  190. }
  191. }
  192. if (saveBOMTable != null && saveBOMTable.Rows.Count > 0)
  193. {
  194. string barcode = saveBOMTable.Rows[0]["BARCODE"].ToString();
  195. //if (barcode.Length > 11)
  196. //{
  197. // DataTable procedurename = conn.ExecuteDatatable(@"
  198. // SELECT BARCODE
  199. // FROM TP_PM_GROUTINGDAILYDETAIL
  200. // WHERE OUTLABELCODE = @OUTLABELCODE@",
  201. // new CDAParameter("OUTLABELCODE", barcode)
  202. // );
  203. // barcode = procedurename.Rows[0]["BARCODE"].ToString();
  204. //}
  205. if (barcode.Length >= 73)
  206. {
  207. DataTable procedurename = conn.ExecuteDatatable(@"
  208. SELECT BARCODE
  209. FROM TP_PM_GROUTINGDAILYDETAIL
  210. WHERE OUTLABELCODE = @OUTLABELCODE@",
  211. new CDAParameter("OUTLABELCODE", barcode.Substring(barcode.IndexOf('-')+1))
  212. );
  213. barcode = procedurename.Rows[0]["BARCODE"].ToString();
  214. }
  215. else if (barcode.Length == 28)
  216. {
  217. DataTable procedurename = conn.ExecuteDatatable(@"
  218. SELECT BARCODE
  219. FROM TP_PM_GROUTINGDAILYDETAIL
  220. WHERE OUTLABELCODE = @OUTLABELCODE@",
  221. new CDAParameter("OUTLABELCODE", barcode)
  222. );
  223. barcode = procedurename.Rows[0]["BARCODE"].ToString();
  224. }
  225. for (int i = 0; i < saveBOMTable.Rows.Count; i++)
  226. {
  227. //插入检验数据
  228. int resultaddItems = conn.ExecuteNonQuery(@"
  229. INSERT INTO TP_PM_FQCBOM (
  230. BARCODE,
  231. PACKINGBOMDETAILID,
  232. BOMNAME,
  233. CHECKVALUE,
  234. REMARKS,
  235. CREATEUSERID,
  236. UPDATEUSERID
  237. ) VALUES (
  238. @BARCODE@,
  239. @PACKINGBOMDETAILID@,
  240. @BOMNAME@,
  241. @CHECKVALUE@,
  242. @REMARKS@,
  243. @CREATEUSERID@,
  244. @UPDATEUSERID@
  245. )
  246. ",
  247. new CDAParameter("BARCODE", barcode),
  248. new CDAParameter("PACKINGBOMDETAILID", Convert.ToInt32(saveBOMTable.Rows[i]["packingBomDetailID"])),
  249. new CDAParameter("BOMNAME", saveBOMTable.Rows[i]["bomName"]),
  250. new CDAParameter("CHECKVALUE", saveBOMTable.Rows[i]["checkVlaue"]),
  251. new CDAParameter("REMARKS", saveBOMTable.Rows[i]["remarks"]),
  252. new CDAParameter("CREATEUSERID", Convert.ToInt32(HttpContext.Current.Session["userId"])),
  253. new CDAParameter("UPDATEUSERID", Convert.ToInt32(HttpContext.Current.Session["userId"]))
  254. );
  255. }
  256. }
  257. conn.Commit();
  258. string jsonStr = ("{'success':true,'message':'操作成功!','rows':''}").Replace("'", "\"");
  259. context.Response.Write(jsonStr);
  260. }
  261. }
  262. else
  263. {
  264. string jsonStr = ("{'success':false,'message':'操作失败!','rows':''}").Replace("'","\"");
  265. context.Response.Write(jsonStr);
  266. }
  267. }
  268. public bool IsReusable
  269. {
  270. get
  271. {
  272. return false;
  273. }
  274. }
  275. }