SmartDeviceService.cs 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:SmartDeviceService.cs
  5. * 2.功能描述:接收智能设备请求
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2018/10/25 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Data;
  12. using System.ServiceModel;
  13. using System.ServiceModel.Activation;
  14. using Dongke.IBOSS.PRD.Basics.BaseResources;
  15. using Dongke.IBOSS.PRD.Basics.Library;
  16. using Dongke.IBOSS.PRD.Service.BarcodePrintService;
  17. using Dongke.IBOSS.PRD.Service.DataModels;
  18. using Dongke.IBOSS.PRD.Service.PDAModuleLogic;
  19. using Dongke.IBOSS.PRD.Service.PMModuleLogic;
  20. using Dongke.IBOSS.PRD.Service.SmartDeviceService;
  21. using Dongke.IBOSS.PRD.WCF.Contracts;
  22. using Dongke.IBOSS.PRD.WCF.DataModels;
  23. using Dongke.WinForm.Controls.InvoiceLayout;
  24. using Newtonsoft.Json.Linq;
  25. namespace Dongke.IBOSS.PRD.WCF.Services
  26. {
  27. /// <summary>
  28. /// 智能设备对接服务
  29. /// </summary>
  30. [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
  31. [ServiceBehavior(ConfigurationName = "SmartDeviceService",
  32. InstanceContextMode = InstanceContextMode.PerCall,
  33. ConcurrencyMode = ConcurrencyMode.Multiple,
  34. UseSynchronizationContext = false)]
  35. public class SmartDeviceService : ISmartDevice
  36. {
  37. /// <summary>
  38. /// 连接测试
  39. /// </summary>
  40. /// <param name="message"></param>
  41. /// <returns></returns>
  42. public string Test(string message)
  43. {
  44. return message + " is ok";
  45. }
  46. /// <summary>
  47. /// 自动扫描计件
  48. /// </summary>
  49. /// <returns></returns>
  50. public void AddWorkPiece(string accountCode, string userCode, string userPassword,
  51. int procedureID, string barcode)
  52. {
  53. try
  54. {
  55. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  56. if (userInfo == null)
  57. {
  58. OutputLog.TraceLog(LogPriority.Warning,
  59. this.ToString(),
  60. System.Reflection.MethodBase.GetCurrentMethod().Name,
  61. " userInfo is null " + userPassword + System.Environment.NewLine +
  62. " accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
  63. LocalPath.LogExePath + "SmartDevice\\");
  64. return;
  65. }
  66. SUserInfo sUserInfo = new SUserInfo();
  67. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  68. sUserInfo.AccountCode = accountCode;
  69. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  70. sUserInfo.UserCode = userCode;
  71. //DataTable barcodeTable = new DataTable();
  72. //barcodeTable.TableName = "barcodeTable";
  73. //barcodeTable.Columns.Add("BarCode");
  74. //barcodeTable.Columns.Add("UserID");
  75. //barcodeTable.Columns.Add("UserCode");
  76. //barcodeTable.Columns.Add("UserName");
  77. //barcodeTable.Columns.Add("LogoID");
  78. //DataRow drCollectType = barcodeTable.NewRow();
  79. //drCollectType["BarCode"] = barcode;
  80. //drCollectType["UserID"] = sUserInfo.UserID;
  81. //drCollectType["UserCode"] = sUserInfo.UserCode;
  82. //drCollectType["UserName"] = userInfo.Rows[0]["UserName"].ToString();
  83. //barcodeTable.Rows.Add(drCollectType);
  84. DataTable barcodeTable = userInfo;
  85. barcodeTable.Columns.Add("LogoID");
  86. barcodeTable.Columns.Add("BarCode");
  87. barcodeTable.Rows[0]["BarCode"] = barcode;
  88. ProcedureEntity procedureInfo = null;
  89. DataTable dt = PMModuleLogicDAL.AddWorkPiece(procedureID, barcodeTable, sUserInfo, out procedureInfo);
  90. if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrWhiteSpace(dt.Rows[0]["out_errMsg"].ToString()))
  91. {
  92. OutputLog.TraceLog(LogPriority.Warning,
  93. this.ToString(),
  94. System.Reflection.MethodBase.GetCurrentMethod().Name + System.Environment.NewLine +
  95. userPassword + System.Environment.NewLine +
  96. " accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
  97. JsonHelper.ToJson(dt),
  98. LocalPath.LogExePath + "SmartDevice\\");
  99. }
  100. }
  101. catch (Exception ex)
  102. {
  103. OutputLog.TraceLog(LogPriority.Error,
  104. this.ToString(),
  105. System.Reflection.MethodBase.GetCurrentMethod().Name + System.Environment.NewLine +
  106. userPassword + System.Environment.NewLine +
  107. " accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
  108. ex.ToString(),
  109. LocalPath.LogExePath);
  110. }
  111. }
  112. /// <summary>
  113. /// 自动扫描计件
  114. /// </summary>
  115. /// <returns></returns>
  116. public string AddWorkPieceByStatus(string accountCode, string userCode, string userPassword,
  117. int procedureID, string barcode, string remarks)
  118. {
  119. try
  120. {
  121. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  122. if (userInfo == null)
  123. {
  124. OutputLog.TraceLog(LogPriority.Warning,
  125. this.ToString(),
  126. System.Reflection.MethodBase.GetCurrentMethod().Name,
  127. " userInfo is null " + userPassword + System.Environment.NewLine +
  128. " accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
  129. LocalPath.LogExePath + "SmartDevice\\");
  130. return "EU-01";
  131. }
  132. SUserInfo sUserInfo = new SUserInfo();
  133. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  134. sUserInfo.AccountCode = accountCode;
  135. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  136. sUserInfo.UserCode = userCode;
  137. DataTable barcodeTable = userInfo;
  138. barcodeTable.Columns.Add("LogoID");
  139. barcodeTable.Columns.Add("BarCode");
  140. barcodeTable.Columns.Add("Remarks");
  141. barcodeTable.Rows[0]["BarCode"] = barcode;
  142. barcodeTable.Rows[0]["Remarks"] = remarks;
  143. ProcedureEntity procedureInfo = null;
  144. DataTable dt = PMModuleLogicDAL.AddWorkPiece(procedureID, barcodeTable, sUserInfo, out procedureInfo);
  145. if (dt != null && dt.Rows.Count > 0)
  146. {
  147. string out_msg = dt.Rows[0]["out_errMsg"].ToString();
  148. if (!string.IsNullOrWhiteSpace(out_msg))
  149. {
  150. OutputLog.TraceLog(LogPriority.Warning,
  151. this.ToString(),
  152. System.Reflection.MethodBase.GetCurrentMethod().Name + System.Environment.NewLine +
  153. userPassword + System.Environment.NewLine +
  154. " accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
  155. JsonHelper.ToJson(dt),
  156. LocalPath.LogExePath + "SmartDevice\\");
  157. if (out_msg.StartsWith("无效条码"))
  158. {
  159. return "EP-01";
  160. }
  161. if (out_msg.Contains("不能到达该工序"))
  162. {
  163. return "EP-02";
  164. }
  165. return "EP-00";
  166. }
  167. }
  168. return "OK";
  169. }
  170. catch (Exception ex)
  171. {
  172. OutputLog.TraceLog(LogPriority.Error,
  173. this.ToString(),
  174. System.Reflection.MethodBase.GetCurrentMethod().Name + System.Environment.NewLine +
  175. userPassword + System.Environment.NewLine +
  176. " accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
  177. ex.ToString(),
  178. LocalPath.LogExePath);
  179. return "EE";
  180. }
  181. }
  182. /// <summary>
  183. /// 自动扫描计件(3车间)
  184. /// </summary>
  185. /// <returns></returns>
  186. public string AddWorkPieceByStatus3(string accountCode, string userCode, string userPassword,
  187. int procedureID, string barcode, string remarks)
  188. {
  189. string inputCode = $" accountCode:{accountCode} userCode:{userCode} userPassword:{userPassword} procedureID:{procedureID} barcode:{barcode} remarks:{remarks}";
  190. try
  191. {
  192. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  193. if (userInfo == null)
  194. {
  195. OutputLog.TraceLog(LogPriority.Warning,
  196. this.ToString(),
  197. System.Reflection.MethodBase.GetCurrentMethod().Name,
  198. " userInfo is null " + inputCode,
  199. LocalPath.LogExePath + "SmartDevice\\");
  200. return "EU-01";
  201. }
  202. SUserInfo sUserInfo = new SUserInfo();
  203. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  204. sUserInfo.AccountCode = accountCode;
  205. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  206. sUserInfo.UserCode = userCode;
  207. DataTable barcodeTable = userInfo;
  208. barcodeTable.Columns.Add("LogoID");
  209. barcodeTable.Columns.Add("BarCode");
  210. barcodeTable.Columns.Add("Remarks");
  211. barcodeTable.Rows[0]["BarCode"] = barcode;
  212. barcodeTable.Rows[0]["Remarks"] = remarks;
  213. ProcedureEntity procedureInfo = null;
  214. DataTable dt = PMModuleLogicDAL.AddWorkPiece(procedureID, barcodeTable, sUserInfo, out procedureInfo);
  215. if (dt != null && dt.Rows.Count > 0)
  216. {
  217. string out_msg = dt.Rows[0]["out_errMsg"].ToString();
  218. if (!string.IsNullOrWhiteSpace(out_msg))
  219. {
  220. OutputLog.TraceLog(LogPriority.Warning,
  221. this.ToString(),
  222. System.Reflection.MethodBase.GetCurrentMethod().Name,
  223. inputCode + JsonHelper.ToJson(dt),
  224. LocalPath.LogExePath + "SmartDevice\\");
  225. //if (out_msg.StartsWith("无效条码"))
  226. //{
  227. // return "EP-01=" + out_msg;
  228. //}
  229. //if (out_msg.Contains("不能到达该工序"))
  230. //{
  231. // return "EP-02=" + out_msg;
  232. //}
  233. return "EP-00=" + out_msg;
  234. }
  235. }
  236. return "OK";
  237. }
  238. catch (Exception ex)
  239. {
  240. OutputLog.TraceLog(LogPriority.Error,
  241. this.ToString(),
  242. System.Reflection.MethodBase.GetCurrentMethod().Name,
  243. inputCode+ex.ToString(),
  244. LocalPath.LogExePath);
  245. return "EE";
  246. }
  247. }
  248. /// <summary>
  249. /// 自动扫描计件(3车间)_集中采集(包装)
  250. /// </summary>
  251. /// <returns></returns>
  252. public string AddWorkPieceByStatus3_packing(string accountCode, string userCode, string userPassword,
  253. int procedureID, string[] barcodes, string remarks)
  254. {
  255. string inputCode = $" accountCode:{accountCode} userCode:{userCode} userPassword:{userPassword} procedureID:{procedureID} barcodes:{ JsonHelper.ToJson(barcodes)} remarks:{remarks}";
  256. try
  257. {
  258. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  259. if (userInfo == null)
  260. {
  261. OutputLog.TraceLog(LogPriority.Warning,
  262. this.ToString(),
  263. System.Reflection.MethodBase.GetCurrentMethod().Name,
  264. " userInfo is null " + inputCode,
  265. LocalPath.LogExePath + "SmartDevice\\");
  266. return "EU-01";
  267. }
  268. SUserInfo sUserInfo = new SUserInfo();
  269. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  270. sUserInfo.AccountCode = accountCode;
  271. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  272. sUserInfo.UserCode = userCode;
  273. DataTable barcodeTable = userInfo;
  274. barcodeTable.Columns.Add("LogoID");
  275. barcodeTable.Columns.Add("BarCode");
  276. barcodeTable.Columns.Add("Remarks");
  277. for (int i = 0; i < barcodes.Length; i++)
  278. {
  279. if (i > 0)
  280. {
  281. barcodeTable.Rows.Add(barcodeTable.Rows[0].ItemArray);
  282. }
  283. barcodeTable.Rows[i]["BarCode"] = barcodes[i];
  284. barcodeTable.Rows[i]["Remarks"] = remarks;
  285. }
  286. ProcedureEntity procedureInfo = null;
  287. DataTable dt = PMModuleLogicDAL.AddWorkPiece(procedureID, barcodeTable, sUserInfo, out procedureInfo);
  288. if (dt != null && dt.Rows.Count > 0)
  289. {
  290. string out_msg = dt.Rows[0]["out_errMsg"].ToString();
  291. if (!string.IsNullOrWhiteSpace(out_msg))
  292. {
  293. OutputLog.TraceLog(LogPriority.Warning,
  294. this.ToString(),
  295. System.Reflection.MethodBase.GetCurrentMethod().Name,
  296. inputCode + JsonHelper.ToJson(dt),
  297. LocalPath.LogExePath + "SmartDevice\\");
  298. //if (out_msg.StartsWith("无效条码"))
  299. //{
  300. // return "EP-01=" + out_msg;
  301. //}
  302. //if (out_msg.Contains("不能到达该工序"))
  303. //{
  304. // return "EP-02=" + out_msg;
  305. //}
  306. return "EP-00=" + out_msg;
  307. }
  308. }
  309. return "OK";
  310. }
  311. catch (Exception ex)
  312. {
  313. OutputLog.TraceLog(LogPriority.Error,
  314. this.ToString(),
  315. System.Reflection.MethodBase.GetCurrentMethod().Name,
  316. inputCode + ex.ToString(),
  317. LocalPath.LogExePath);
  318. return "EE";
  319. }
  320. }
  321. /// <summary>
  322. /// 注浆接口 xuwei add 2019-11-19
  323. /// </summary>
  324. /// <param name="accountCode"></param>
  325. /// <param name="userCode"></param>
  326. /// <param name="groutingData"></param>
  327. /// <returns></returns>
  328. public string SetGroutingLineDetail(string accountCode, string userCode, string lineCode,
  329. string groutingData, string remarks)
  330. {
  331. string inputCode = $" accountCode:{accountCode} userCode:{userCode} lineCode:{lineCode} groutingData:{groutingData} remarks:{remarks}";
  332. try
  333. {
  334. #region 验证用户 并配置参数 sUserInfo
  335. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  336. if (userInfo == null)
  337. {
  338. OutputLog.TraceLog(LogPriority.Warning,
  339. this.ToString(),
  340. System.Reflection.MethodBase.GetCurrentMethod().Name,
  341. " userInfo is null " + inputCode,
  342. LocalPath.LogExePath + "SmartDevice\\");
  343. return "EU-01";
  344. }
  345. SUserInfo sUserInfo = new SUserInfo();
  346. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  347. sUserInfo.AccountCode = accountCode;
  348. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  349. sUserInfo.UserCode = userCode;
  350. #endregion
  351. ServiceResultEntity sre = SmartDeviceLogic.SetGroutingLineDetail(lineCode, groutingData, sUserInfo);
  352. if (sre.Status == Constant.ServiceResultStatus.Success)
  353. {
  354. return "OK";
  355. }
  356. else
  357. {
  358. OutputLog.TraceLog(LogPriority.Warning,
  359. this.ToString(),
  360. System.Reflection.MethodBase.GetCurrentMethod().Name,
  361. inputCode + sre.Message,
  362. LocalPath.LogExePath + "SmartDevice\\");
  363. return $"EG={sre.Message}";
  364. }
  365. }
  366. catch (Exception ex)
  367. {
  368. OutputLog.TraceLog(LogPriority.Error,
  369. this.ToString(),
  370. System.Reflection.MethodBase.GetCurrentMethod().Name,
  371. inputCode+ex.ToString(),
  372. LocalPath.LogExePath);
  373. return "EE";
  374. }
  375. }
  376. /// <summary>
  377. /// 高压注浆接口
  378. /// </summary>
  379. /// <param name="accountCode"></param>
  380. /// <param name="userCode"></param>
  381. /// <param name="groutingData"></param>
  382. /// <returns></returns>
  383. public ServiceResultEntity SetHGrouting(string accountCode, string userCode, string lineCode,
  384. string groutingData, string remarks)
  385. {
  386. string inputCode = $" accountCode:{accountCode} userCode:{userCode} lineCode:{lineCode} groutingData:{groutingData} remarks:{remarks}";
  387. try
  388. {
  389. #region 验证用户 并配置参数 sUserInfo
  390. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  391. if (userInfo == null)
  392. {
  393. OutputLog.TraceLog(LogPriority.Warning,
  394. this.ToString(),
  395. System.Reflection.MethodBase.GetCurrentMethod().Name,
  396. " userInfo is null " + inputCode,
  397. LocalPath.LogExePath + "SmartDevice\\");
  398. return new ServiceResultEntity() { Status = Constant.ServiceResultStatus.Other, Message = "EU-01" };
  399. }
  400. SUserInfo sUserInfo = new SUserInfo();
  401. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  402. sUserInfo.AccountCode = accountCode;
  403. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  404. sUserInfo.UserCode = userCode;
  405. #endregion
  406. ServiceResultEntity sre = SmartDeviceLogic.SetGroutingLineDetail(lineCode, groutingData, sUserInfo);
  407. if (sre.Status == Constant.ServiceResultStatus.Success)
  408. {
  409. sre.Message = "OK";
  410. }
  411. else
  412. {
  413. OutputLog.TraceLog(LogPriority.Warning,
  414. this.ToString(),
  415. System.Reflection.MethodBase.GetCurrentMethod().Name,
  416. inputCode + sre.Message,
  417. LocalPath.LogExePath + "SmartDevice\\");
  418. }
  419. return sre;
  420. }
  421. catch (Exception ex)
  422. {
  423. OutputLog.TraceLog(LogPriority.Error,
  424. this.ToString(),
  425. System.Reflection.MethodBase.GetCurrentMethod().Name,
  426. inputCode + ex.ToString(),
  427. LocalPath.LogExePath);
  428. return new ServiceResultEntity() { Status = Constant.ServiceResultStatus.SystemError, Message = ex.ToString() };
  429. }
  430. }
  431. /// <summary>
  432. /// 登窑、入窑、出窑 接口 xuwei add 2019-11-19
  433. /// </summary>
  434. /// <param name="accountCode"></param>
  435. /// <param name="userCode"></param>
  436. /// <param name="groutingData"></param>
  437. /// <returns></returns>
  438. public string AddWorkPieceKiln(string accountCode, string userCode, int procedureID,
  439. string kilnCarCode, string barCodeAndPosition, string remarks)
  440. {
  441. string inputCode = $" accountCode:{accountCode} userCode:{userCode} procedureID:{procedureID} kilnCarCode:{kilnCarCode} barCodeAndPosition:{barCodeAndPosition} remarks:{remarks}";
  442. try
  443. {
  444. #region 验证用户 并配置参数 sUserInfo
  445. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  446. if (userInfo == null)
  447. {
  448. OutputLog.TraceLog(LogPriority.Warning,
  449. this.ToString(),
  450. System.Reflection.MethodBase.GetCurrentMethod().Name,
  451. " userInfo is null " + inputCode,
  452. LocalPath.LogExePath + "SmartDevice\\");
  453. return "EU-01";
  454. }
  455. SUserInfo sUserInfo = new SUserInfo();
  456. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  457. sUserInfo.AccountCode = accountCode;
  458. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  459. sUserInfo.UserCode = userCode;
  460. #endregion
  461. #region 按窑车号取窑车信息
  462. DataTable carInfo = SmartDeviceLogic.getKilnCarByCode(kilnCarCode);
  463. if (carInfo == null || carInfo.Rows.Count == 0)
  464. {
  465. OutputLog.TraceLog(LogPriority.Warning,
  466. this.ToString(),
  467. System.Reflection.MethodBase.GetCurrentMethod().Name,
  468. "窑车不存在" + inputCode,
  469. LocalPath.LogExePath + "SmartDevice\\");
  470. return "EP-02";
  471. }
  472. #endregion
  473. #region 配置参数 barcodeTable
  474. //入窑参数
  475. //"Barcode": "11100000012",
  476. //"KilnCarName": "TK21",
  477. //"KilnCode": "TK2",
  478. //"UserCode": "F8",
  479. //"UserID": 55,
  480. //"UserName": "胡贤万",
  481. //"KilnCarID": 35,
  482. //"KilnName": "新窑炉",
  483. //"KilnCarPosition": 2,
  484. //"KilnCarCode": "TK21",
  485. //"KilnID": 3
  486. DataTable barcodeTable = new DataTable();
  487. //入窑 卸窑 配置参数 barcodeTable
  488. if (string.IsNullOrWhiteSpace(barCodeAndPosition))
  489. {
  490. barcodeTable.TableName = "barcodeTable";
  491. barcodeTable.Columns.Add("UserID");
  492. barcodeTable.Columns.Add("UserCode");
  493. barcodeTable.Columns.Add("UserName");
  494. barcodeTable.Columns.Add("KilnID");
  495. barcodeTable.Columns.Add("KilnCode");
  496. barcodeTable.Columns.Add("KilnName");
  497. barcodeTable.Columns.Add("KilnCarCode");
  498. barcodeTable.Columns.Add("KilnCarID");
  499. barcodeTable.Columns.Add("KilnCarName");
  500. barcodeTable.Columns.Add("Remarks");
  501. DataRow drCollectType = barcodeTable.NewRow();
  502. drCollectType["UserID"] = userInfo.Rows[0]["UserID"].ToString();
  503. drCollectType["UserCode"] = userInfo.Rows[0]["UserCode"].ToString();
  504. drCollectType["UserName"] = userInfo.Rows[0]["UserName"].ToString();
  505. drCollectType["KilnID"] = carInfo.Rows[0]["KilnID"].ToString();
  506. drCollectType["KilnCode"] = carInfo.Rows[0]["KilnCode"].ToString();
  507. drCollectType["KilnName"] = carInfo.Rows[0]["KilnName"].ToString();
  508. drCollectType["KilnCarID"] = carInfo.Rows[0]["KilnCarID"].ToString();
  509. drCollectType["KilnCarCode"] = carInfo.Rows[0]["KilnCarCode"].ToString();
  510. drCollectType["KilnCarName"] = carInfo.Rows[0]["KilnCarName"].ToString();
  511. drCollectType["Remarks"] = remarks;
  512. barcodeTable.Rows.Add(drCollectType);
  513. }
  514. else
  515. {
  516. //登窑 添加数据 配置参数 barcodeTable
  517. barcodeTable.TableName = "barcodeTable";
  518. barcodeTable.Columns.Add("UserID");
  519. barcodeTable.Columns.Add("UserCode");
  520. barcodeTable.Columns.Add("UserName");
  521. barcodeTable.Columns.Add("BarCode");
  522. barcodeTable.Columns.Add("KilnID");
  523. barcodeTable.Columns.Add("KilnCode");
  524. barcodeTable.Columns.Add("KilnName");
  525. barcodeTable.Columns.Add("KilnCarID");
  526. barcodeTable.Columns.Add("KilnCarCode");
  527. barcodeTable.Columns.Add("KilnCarName");
  528. barcodeTable.Columns.Add("KilnCarPosition");
  529. barcodeTable.Columns.Add("Remarks");
  530. JArray barCodeArray = JArray.Parse(barCodeAndPosition);
  531. for (int i = 0; i < barCodeArray.Count; i++)
  532. {
  533. DataRow drCollectType = barcodeTable.NewRow();
  534. drCollectType["BarCode"] = barCodeArray[i]["barCode"].ToString();
  535. drCollectType["UserID"] = userInfo.Rows[0]["UserID"].ToString();
  536. drCollectType["UserCode"] = userInfo.Rows[0]["UserCode"].ToString();
  537. drCollectType["UserName"] = userInfo.Rows[0]["UserName"].ToString();
  538. drCollectType["KilnID"] = carInfo.Rows[0]["KilnID"].ToString();
  539. drCollectType["KilnCode"] = carInfo.Rows[0]["KilnCode"].ToString();
  540. drCollectType["KilnName"] = carInfo.Rows[0]["KilnName"].ToString();
  541. drCollectType["KilnCarID"] = carInfo.Rows[0]["KilnCarID"].ToString();
  542. drCollectType["KilnCarCode"] = carInfo.Rows[0]["KilnCarCode"].ToString();
  543. drCollectType["KilnCarName"] = carInfo.Rows[0]["KilnCarName"].ToString();
  544. drCollectType["KilnCarPosition"] = barCodeArray[i]["kilnCarPosition"].ToString();
  545. drCollectType["Remarks"] = remarks;
  546. barcodeTable.Rows.Add(drCollectType);
  547. }
  548. }
  549. #endregion
  550. #region 调用原始业务逻辑
  551. DataTable dt = SmartDeviceLogic.AddWorkPieceKiln(procedureID, barcodeTable, sUserInfo);
  552. #endregion
  553. #region 输出结果
  554. if (dt != null && dt.Rows.Count > 0)
  555. {
  556. string out_msg = dt.Rows[0]["out_errMsg"].ToString();
  557. if (!string.IsNullOrWhiteSpace(out_msg))
  558. {
  559. OutputLog.TraceLog(LogPriority.Warning,
  560. this.ToString(),
  561. System.Reflection.MethodBase.GetCurrentMethod().Name,
  562. inputCode + JsonHelper.ToJson(dt),
  563. LocalPath.LogExePath + "SmartDevice\\");
  564. //if (out_msg.StartsWith("无效条码"))
  565. //{
  566. // return "EP-01";
  567. //}
  568. //if (out_msg.Contains("不能到达该工序"))
  569. //{
  570. // return "EP-02=" + out_msg;
  571. //}
  572. return "EP-00=" + out_msg;
  573. }
  574. }
  575. return "OK";
  576. #endregion
  577. }
  578. catch (Exception ex)
  579. {
  580. OutputLog.TraceLog(LogPriority.Error,
  581. this.ToString(),
  582. System.Reflection.MethodBase.GetCurrentMethod().Name,
  583. inputCode + ex.ToString(),
  584. LocalPath.LogExePath);
  585. return "EE";
  586. }
  587. }
  588. /// <summary>
  589. /// 条码、外箱码、服务码打印
  590. /// </summary>
  591. /// <param name="accountCode"></param>
  592. /// <param name="userCode"></param>
  593. /// <param name="printerID"></param>
  594. /// <param name="barcode"></param>
  595. /// <param name="remarks"></param>
  596. /// <returns></returns>
  597. public string PrintBarcode(string accountCode, string userCode, string barcode, int? printerID, int copies, string remarks)
  598. {
  599. string inputCode = $" accountCode:{accountCode} userCode:{userCode} barcode:{barcode} printerID:{printerID} copies:{copies} remarks:{remarks}";
  600. try
  601. {
  602. #region 验证用户 并配置参数 sUserInfo
  603. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  604. if (userInfo == null)
  605. {
  606. OutputLog.TraceLog(LogPriority.Warning,
  607. this.ToString(),
  608. System.Reflection.MethodBase.GetCurrentMethod().Name,
  609. " userInfo is null " + inputCode,
  610. LocalPath.LogExePath + "SmartDevice\\");
  611. return "EU-01";
  612. }
  613. SUserInfo sUserInfo = new SUserInfo();
  614. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  615. sUserInfo.AccountCode = accountCode;
  616. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  617. sUserInfo.UserCode = userCode;
  618. #endregion
  619. #region 调用原始业务逻辑
  620. ServiceResultEntity sre = BarcodePrintLogic.PrintBarcode_3C(barcode, copies, printerID, sUserInfo, 3);
  621. if (sre.Status != Constant.ServiceResultStatus.Success)
  622. {
  623. return "EE=" + sre.Message;
  624. }
  625. #endregion
  626. #region 输出结果
  627. return "OK";
  628. #endregion
  629. }
  630. catch (Exception ex)
  631. {
  632. OutputLog.TraceLog(LogPriority.Error,
  633. this.ToString(),
  634. System.Reflection.MethodBase.GetCurrentMethod().Name,
  635. inputCode + ex.ToString(),
  636. LocalPath.LogExePath);
  637. return "EE";
  638. }
  639. }
  640. /// <summary>
  641. /// 条码、外箱码、服务码打印
  642. /// </summary>
  643. /// <param name="accountCode"></param>
  644. /// <param name="userCode"></param>
  645. /// <param name="barcode"></param>
  646. /// <param name="ws_id">工位ID</param>
  647. /// <returns></returns>
  648. public string PrintBarcode_3BL(string accountCode, string userCode, string barcode, int ws_id)
  649. {
  650. string inputCode = $" accountCode:{accountCode} userCode:{userCode} barcode:{barcode} ws_id:{ws_id}";
  651. try
  652. {
  653. #region 验证用户 并配置参数 sUserInfo
  654. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  655. if (userInfo == null)
  656. {
  657. OutputLog.TraceLog(LogPriority.Warning,
  658. this.ToString(),
  659. System.Reflection.MethodBase.GetCurrentMethod().Name,
  660. " userInfo is null " + inputCode,
  661. LocalPath.LogExePath + "SmartDevice\\");
  662. return "EU-01";
  663. }
  664. SUserInfo sUserInfo = new SUserInfo();
  665. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  666. sUserInfo.AccountCode = accountCode;
  667. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  668. sUserInfo.UserCode = userCode;
  669. #endregion
  670. #region 调用原始业务逻辑
  671. ServiceResultEntity sre = BarcodePrintLogic.PrintBarcode_3BL(barcode, ws_id, sUserInfo);
  672. if (sre.Status != Constant.ServiceResultStatus.Success)
  673. {
  674. return "EE=" + sre.Message;
  675. }
  676. #endregion
  677. #region 输出结果
  678. return "OK";
  679. #endregion
  680. }
  681. catch (Exception ex)
  682. {
  683. OutputLog.TraceLog(LogPriority.Error,
  684. this.ToString(),
  685. System.Reflection.MethodBase.GetCurrentMethod().Name,
  686. inputCode + ex.ToString(),
  687. LocalPath.LogExePath);
  688. return "EE";
  689. }
  690. }
  691. /// <summary>
  692. /// 条码、外箱码、服务码打印
  693. /// </summary>
  694. /// <param name="accountCode"></param>
  695. /// <param name="userCode"></param>
  696. /// <param name="printerID"></param>
  697. /// <param name="barcode"></param>
  698. /// <param name="remarks"></param>
  699. /// <returns></returns>
  700. public string PrintBarcodeTest(string accountCode, string userCode, string barcode, int? printerID, int copies, string remarks, int printWay)
  701. {
  702. string inputCode = $" accountCode:{accountCode} userCode:{userCode} barcode:{barcode} printerID:{printerID} copies:{copies} remarks:{remarks}";
  703. try
  704. {
  705. #region 验证用户 并配置参数 sUserInfo
  706. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  707. if (userInfo == null)
  708. {
  709. OutputLog.TraceLog(LogPriority.Warning,
  710. this.ToString(),
  711. System.Reflection.MethodBase.GetCurrentMethod().Name,
  712. " userInfo is null " + inputCode,
  713. LocalPath.LogExePath + "SmartDevice\\");
  714. return "EU-01";
  715. }
  716. SUserInfo sUserInfo = new SUserInfo();
  717. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  718. sUserInfo.AccountCode = accountCode;
  719. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  720. sUserInfo.UserCode = userCode;
  721. #endregion
  722. #region 调用原始业务逻辑
  723. ServiceResultEntity sre = BarcodePrintLogic.PrintBarcode_3C(barcode, copies, printerID, sUserInfo, printWay);
  724. if (sre.Status != Constant.ServiceResultStatus.Success)
  725. {
  726. return "EE=" + sre.Message;
  727. }
  728. #endregion
  729. #region 输出结果
  730. return "OK";
  731. #endregion
  732. }
  733. catch (Exception ex)
  734. {
  735. OutputLog.TraceLog(LogPriority.Error,
  736. this.ToString(),
  737. System.Reflection.MethodBase.GetCurrentMethod().Name,
  738. inputCode + ex.ToString(),
  739. LocalPath.LogExePath);
  740. return "EE";
  741. }
  742. }
  743. #region 防伪码
  744. /// <summary>
  745. /// 读取防伪码设置
  746. /// </summary>
  747. /// <param name="accountCode"></param>
  748. /// <param name="userCode"></param>
  749. /// <param name="barCode"></param>
  750. /// <param name="procedureID"></param>
  751. /// <returns>OK=1 绑定 OK=2 验证 OK=0 不处理</returns>
  752. public string GetStatusByBarcode(string accountCode, string userCode, string barCode, string procedureID)
  753. {
  754. string inputCode = $" accountCode:{accountCode} userCode:{userCode} barCode:{barCode} procedureID:{procedureID}";
  755. try
  756. {
  757. #region 验证用户 并配置参数 sUserInfo
  758. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  759. if (userInfo == null)
  760. {
  761. OutputLog.TraceLog(LogPriority.Warning,
  762. this.ToString(),
  763. System.Reflection.MethodBase.GetCurrentMethod().Name,
  764. " userInfo is null " + inputCode,
  765. LocalPath.LogExePath + "SmartDevice\\");
  766. return "EU-01";
  767. }
  768. SUserInfo sUserInfo = new SUserInfo();
  769. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  770. sUserInfo.AccountCode = accountCode;
  771. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  772. sUserInfo.UserCode = userCode;
  773. #endregion
  774. #region 调用原始业务逻辑
  775. ServiceResultEntity sre = PDAModuleLogic.GetStatusByBarcode(barCode, procedureID, sUserInfo);
  776. if (sre.Status != Constant.ServiceResultStatus.Success)
  777. {
  778. return "EM=" + sre.Message;
  779. }
  780. #endregion
  781. #region 输出结果
  782. return "OK=" + sre.Data.Tables[0].Rows[0]["STATUS"].ToString();
  783. #endregion
  784. }
  785. catch (Exception ex)
  786. {
  787. OutputLog.TraceLog(LogPriority.Error,
  788. this.ToString(),
  789. System.Reflection.MethodBase.GetCurrentMethod().Name,
  790. inputCode + ex.ToString(),
  791. LocalPath.LogExePath);
  792. return "EX";
  793. }
  794. }
  795. /// <summary>
  796. /// 防伪码绑定和防伪码更改
  797. /// </summary>
  798. /// <param name="barCode">条码</param>
  799. /// <param name="securityCode">防伪码</param>
  800. /// <param name="procedureID">工序</param>
  801. /// <returns></returns>
  802. public string UpdateSecurityCodeByBarcode(string accountCode, string userCode, string barCode, string securityCode, string procedureID) {
  803. string inputCode = $"accountCode:{accountCode} userCode:{userCode} barCode:{barCode} securityCode:{securityCode} procedureID:{procedureID}";
  804. try
  805. {
  806. #region 验证用户 并配置参数 sUserInfo
  807. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  808. if (userInfo == null)
  809. {
  810. OutputLog.TraceLog(LogPriority.Warning,
  811. this.ToString(),
  812. System.Reflection.MethodBase.GetCurrentMethod().Name,
  813. " userInfo is null " + inputCode,
  814. LocalPath.LogExePath + "SmartDevice\\");
  815. return "EU-01";
  816. }
  817. SUserInfo sUserInfo = new SUserInfo();
  818. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  819. sUserInfo.AccountCode = accountCode;
  820. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  821. sUserInfo.UserCode = userCode;
  822. #endregion
  823. #region 调用原始业务逻辑
  824. ServiceResultEntity sre = PDAModuleLogic.UpdateSecurityCodeByBarcode(barCode, securityCode, procedureID, sUserInfo);
  825. if (sre.Status != Constant.ServiceResultStatus.Success)
  826. {
  827. return "EM=" + sre.Message;
  828. }
  829. #endregion
  830. #region 输出结果
  831. return "OK";
  832. #endregion
  833. }
  834. catch (Exception ex)
  835. {
  836. OutputLog.TraceLog(LogPriority.Error,
  837. this.ToString(),
  838. System.Reflection.MethodBase.GetCurrentMethod().Name,
  839. inputCode + ex.ToString(),
  840. LocalPath.LogExePath);
  841. return "EX";
  842. }
  843. }
  844. /// <summary>
  845. /// 防伪码校验
  846. /// </summary>
  847. /// <param name="barCode">条码</param>
  848. /// <param name="securityCode">防伪码</param>
  849. /// <returns></returns>
  850. public string CheckSecurityCodeByBarcode(string accountCode, string userCode, string barCode, string securityCode) {
  851. string inputCode = $" accountCode:{accountCode} userCode:{userCode} barCode:{barCode} securityCode:{securityCode}";
  852. try
  853. {
  854. #region 验证用户 并配置参数 sUserInfo
  855. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  856. if (userInfo == null)
  857. {
  858. OutputLog.TraceLog(LogPriority.Warning,
  859. this.ToString(),
  860. System.Reflection.MethodBase.GetCurrentMethod().Name,
  861. " userInfo is null " + inputCode,
  862. LocalPath.LogExePath + "SmartDevice\\");
  863. return "EU-01";
  864. }
  865. SUserInfo sUserInfo = new SUserInfo();
  866. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  867. sUserInfo.AccountCode = accountCode;
  868. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  869. sUserInfo.UserCode = userCode;
  870. #endregion
  871. #region 调用原始业务逻辑
  872. ServiceResultEntity sre = PDAModuleLogic.CheckSecurityCodeByBarcode(barCode, securityCode, sUserInfo);
  873. if (sre.Status != Constant.ServiceResultStatus.Success)
  874. {
  875. return "EM=" + sre.Message;
  876. }
  877. #endregion
  878. #region 输出结果
  879. return "OK";
  880. #endregion
  881. }
  882. catch (Exception ex)
  883. {
  884. OutputLog.TraceLog(LogPriority.Error,
  885. this.ToString(),
  886. System.Reflection.MethodBase.GetCurrentMethod().Name,
  887. inputCode + ex.ToString(),
  888. LocalPath.LogExePath);
  889. return "EX";
  890. }
  891. }
  892. #endregion
  893. }
  894. }