SmartDeviceService.cs 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015
  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. /// <summary>
  894. /// 切换商标
  895. /// </summary>
  896. /// <returns></returns>
  897. public string SaveBarCodeLogo(string accountCode, string userCode, string barcode,int newlogoid, int ws_id)
  898. {
  899. string inputCode = $" accountCode:{accountCode} userCode:{userCode} barcode:{barcode} newlogoid:{newlogoid} ws_id:{ws_id}";
  900. try
  901. {
  902. #region 验证用户 并配置参数 sUserInfo
  903. DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
  904. if (userInfo == null)
  905. {
  906. OutputLog.TraceLog(LogPriority.Warning,
  907. this.ToString(),
  908. System.Reflection.MethodBase.GetCurrentMethod().Name,
  909. " userInfo is null " + inputCode,
  910. LocalPath.LogExePath + "SmartDevice\\");
  911. return "EU-01";
  912. }
  913. SUserInfo sUserInfo = new SUserInfo();
  914. sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
  915. sUserInfo.AccountCode = accountCode;
  916. sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
  917. sUserInfo.UserCode = userCode;
  918. #endregion
  919. #region 调用原始业务逻辑
  920. string returnMessage = "";
  921. int returnValue = PMModuleLogicDAL.SaveBarCodeLogo(barcode, newlogoid, sUserInfo, out returnMessage);
  922. if (returnValue > 0)
  923. {
  924. return "OK";
  925. }
  926. else if (returnValue == -2)
  927. {
  928. return "EE=该条码未注浆";
  929. }
  930. else if (returnValue == -3)
  931. {
  932. return "EE=已交接的产品不能变更商标";
  933. }
  934. else if (returnValue == -5)
  935. {
  936. return "EE=该商标已超过生产计划允许变更数量,不能变更商标";
  937. }
  938. else if (returnValue == -6)
  939. {
  940. return "EE=该商标无计划,不允许变更商标";
  941. }
  942. else
  943. {
  944. return "EE=" + returnMessage;
  945. }
  946. #endregion
  947. }
  948. catch (Exception ex)
  949. {
  950. OutputLog.TraceLog(LogPriority.Error,
  951. this.ToString(),
  952. System.Reflection.MethodBase.GetCurrentMethod().Name,
  953. inputCode + ex.ToString(),
  954. LocalPath.LogExePath);
  955. return "EE";
  956. }
  957. }
  958. }
  959. }