PDAModuleLogicEntrucking.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. /*******************************************************************************
  2. * Copyright(c) 2019 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PDAModuleLogicWorkShop3.cs
  5. * 2.功能描述:PDA相关处理(三车间专用)。
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 徐伟 2019/11/05 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Drawing.Imaging;
  15. using System.IO;
  16. using System.Text;
  17. using Dongke.IBOSS.PRD.Basics.BaseResources;
  18. using Dongke.IBOSS.PRD.Basics.DataAccess;
  19. using Dongke.IBOSS.PRD.Basics.Library;
  20. using Dongke.IBOSS.PRD.Service.DataModels;
  21. using Dongke.IBOSS.PRD.WCF.DataModels;
  22. using Dongke.IBOSS.PRD.WCF.DataModels.HRModule;
  23. using Dongke.IBOSS.PRD.WCF.DataModels.PCModule;
  24. using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
  25. using Oracle.ManagedDataAccess.Client;
  26. using Newtonsoft.Json.Linq;
  27. using Dongke.IBOSS.PRD.Service.CMNModuleService;
  28. using System.Collections;
  29. namespace Dongke.IBOSS.PRD.Service.PDAModuleLogic
  30. {
  31. /// <summary>
  32. /// 三车间专用接口
  33. /// </summary>
  34. public partial class PDAModuleLogic
  35. {
  36. #region feiyue add 2022-07-20 装板接口
  37. /// <summary>
  38. /// 生产工号装具操作权限
  39. /// </summary>
  40. /// <param name="groutingLineNo"></param>
  41. /// <param name="sUser"></param>
  42. /// <returns></returns>
  43. public static ServiceResultEntity CheckEntruckUser(string functionCode,string currentUserCode, SUserInfo sUser)
  44. {
  45. ServiceResultEntity sre = new ServiceResultEntity();
  46. sre.Data = new DataSet();
  47. sre.Status = Constant.ServiceResultStatus.Success;
  48. IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  49. string sqlStr = "";
  50. try
  51. {
  52. conn.Connect();
  53. if (sre.Status == Constant.ServiceResultStatus.Success)
  54. {
  55. sqlStr = $@"
  56. SELECT
  57. TMUR.FunctionCode
  58. FROM
  59. TP_MST_UserRight TMUR
  60. INNER JOIN TP_MST_USER U ON U.USERID = TMUR.USERID
  61. WHERE
  62. TMUR.FunctionCode = '{functionCode}'
  63. AND u.USERCODE = '{currentUserCode}'
  64. AND u.accountID = {sUser.AccountID}
  65. ";
  66. DataTable dt = conn.GetSqlResultToDt(sqlStr);
  67. if (dt.Rows.Count == 0)
  68. {
  69. sre.Status = Constant.ServiceResultStatus.NoFunRight;
  70. sre.Message = "工号"+ currentUserCode + "无该操作权限!";
  71. }
  72. else
  73. {
  74. sre.Status = Constant.ServiceResultStatus.Success;
  75. sre.Message = "操作成功!";
  76. }
  77. }
  78. }
  79. catch (Exception ex)
  80. {
  81. throw ex;
  82. }
  83. finally
  84. {
  85. conn.Disconnect();
  86. }
  87. //返回数据
  88. return sre;
  89. }
  90. /// <summary>
  91. /// 获取装具的使用状态
  92. /// </summary>
  93. /// <param name="entruckingCode"></param>
  94. /// <param name="sUser"></param>
  95. /// <returns></returns>
  96. public static ServiceResultEntity GetTruckStatus(string entruckingCode, SUserInfo sUser)
  97. {
  98. ServiceResultEntity sre = new ServiceResultEntity();
  99. sre.Data = new DataSet();
  100. sre.Status = Constant.ServiceResultStatus.Success;
  101. IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  102. string sqlStr = "";
  103. try
  104. {
  105. conn.Connect();
  106. if (sre.Status == Constant.ServiceResultStatus.Success)
  107. {
  108. sqlStr = $@"
  109. SELECT
  110. TPE.STATUS
  111. FROM TP_PM_ENTRUCKING TPE
  112. WHERE TPE.VALUEFLAG = '1'
  113. AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
  114. ";
  115. DataTable dt = conn.GetSqlResultToDt(sqlStr);
  116. sre.Data.Tables.Add(dt);
  117. if (dt.Rows.Count == 0)
  118. {
  119. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  120. sre.Message = "无效装具条码!";
  121. }
  122. else
  123. {
  124. sre.Status = Constant.ServiceResultStatus.Success;
  125. sre.Message = "操作成功!";
  126. }
  127. }
  128. }
  129. catch (Exception ex)
  130. {
  131. throw ex;
  132. }
  133. finally
  134. {
  135. conn.Disconnect();
  136. }
  137. //返回数据
  138. return sre;
  139. }
  140. /// <summary>
  141. /// 验证产品条码有效性,及产品与装具的绑定状态
  142. /// </summary>
  143. /// <param name="barCode"></param>
  144. /// <param name="sUser"></param>
  145. /// <returns></returns>
  146. public static ServiceResultEntity CheckTruckBarCode(string barCode, SUserInfo sUser)
  147. {
  148. ServiceResultEntity sre = new ServiceResultEntity();
  149. sre.Data = new DataSet();
  150. sre.Status = Constant.ServiceResultStatus.Success;
  151. IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  152. string sqlStr = "";
  153. try
  154. {
  155. conn.Connect();
  156. if (sre.Status == Constant.ServiceResultStatus.Success)
  157. {
  158. sqlStr = $@"select 1 from TP_PM_GroutingDailyDetail where barcode='{barCode}' and valueflag=1";
  159. DataTable dt = conn.GetSqlResultToDt(sqlStr);
  160. if (dt.Rows.Count == 0)
  161. {
  162. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  163. sre.Message = "无效条码!";
  164. }
  165. else
  166. {
  167. //产品与装具的绑定状态
  168. sqlStr = $@"
  169. SELECT
  170. TPE.EntruckingCode
  171. FROM TP_PM_ENTRUCKING TPE
  172. INNER JOIN TP_PM_EntruckingDetail TPED
  173. ON TPE.EntruckingCode = TPED.EntruckingCode
  174. AND TPE.Batch = TPED.Batch
  175. WHERE TPE.Status = 1
  176. AND TPED.BARCODE = '{barCode}'";
  177. dt = conn.GetSqlResultToDt(sqlStr);
  178. if (dt.Rows.Count > 0)
  179. {
  180. sre.Status = Constant.ServiceResultStatus.Other;
  181. sre.Message = "产品" + barCode + "已在装具" + dt.Rows[0]["EntruckingCode"] + "上"; ;
  182. }
  183. else
  184. {
  185. sre.Status = Constant.ServiceResultStatus.Success;
  186. sre.Message = "操作成功!";
  187. }
  188. }
  189. }
  190. }
  191. catch (Exception ex)
  192. {
  193. throw ex;
  194. }
  195. finally
  196. {
  197. conn.Disconnect();
  198. }
  199. //返回数据
  200. return sre;
  201. }
  202. /// <summary>
  203. /// 绑定装具
  204. /// </summary>
  205. /// <param name="barcodes"></param>
  206. /// <param name="entruckingCode"></param>
  207. /// <param name="currentUserCode"></param>
  208. /// <param name="sUser"></param>
  209. /// <returns></returns>
  210. public static ServiceResultEntity AddTruckBarCodes(string[] barcodes, string entruckingCode, string currentUserCode, SUserInfo sUser)
  211. {
  212. ServiceResultEntity sre = new ServiceResultEntity();
  213. sre.Data = new DataSet();
  214. sre.Status = Constant.ServiceResultStatus.Success;
  215. IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  216. string sqlStr = "";
  217. int execute = 0;
  218. try
  219. {
  220. conn.Connect();
  221. if (sre.Status == Constant.ServiceResultStatus.Success)
  222. {
  223. //获取最大批次
  224. sqlStr = $@"SELECT
  225. TPE.BATCH,TPE.STATUS
  226. FROM TP_PM_ENTRUCKING TPE
  227. WHERE TPE.VALUEFLAG = '1'
  228. AND TPE.ENTRUCKINGCODE = '{entruckingCode}'";
  229. DataTable dt = conn.GetSqlResultToDt(sqlStr);
  230. if (dt.Rows.Count == 0)
  231. {
  232. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  233. sre.Message = "无效装具条码!";
  234. }
  235. else if (dt.Rows[0]["STATUS"].ToString().Equals("0"))
  236. {
  237. int batch = Convert.ToInt32(dt.Rows[0]["BATCH"]) + 1;
  238. for (int i = 0; i < barcodes.Length; i++)
  239. {
  240. //获取产品条码当前工序
  241. sqlStr = $@"
  242. select PROCEDUREID from TP_PM_INPRODUCTION where barcode = '{barcodes[i]}'
  243. ";
  244. string procedureid = conn.GetSqlResultToStr(sqlStr);
  245. //插入装具明细
  246. sqlStr = $@"
  247. INSERT INTO TP_PM_EntruckingDetail (
  248. ENTRUCKINGCODE,
  249. BARCODE,
  250. BATCH,
  251. DOFUNCTION,
  252. PROCEDUREID,
  253. REMARKS,
  254. ACCOUNTID,
  255. USERID,
  256. USERCODE,
  257. VALUEFLAG,
  258. CREATEUSERID,
  259. UPDATEUSERID )
  260. SELECT
  261. '{entruckingCode}',
  262. '{barcodes[i]}',
  263. '{batch}',
  264. 1,
  265. {procedureid},
  266. '',
  267. '{sUser.AccountID}',
  268. USERID,
  269. '{currentUserCode}',
  270. 1,
  271. '{sUser.UserID}',
  272. '{sUser.UserID}'
  273. FROM TP_MST_USER WHERE USERCODE = '{currentUserCode}'
  274. ";
  275. execute = conn.ExecuteNonQuery(sqlStr);
  276. if (execute > 0)
  277. {
  278. sre.Status = Constant.ServiceResultStatus.Success;
  279. sre.Message = "操作完成!";
  280. }
  281. else
  282. {
  283. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  284. sre.Message = "操作失败,没有更新任何数据!";
  285. }
  286. }
  287. }
  288. else {
  289. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  290. sre.Message = "装具不可用!";
  291. }
  292. conn.Commit();
  293. }
  294. }
  295. catch (Exception ex)
  296. {
  297. conn.Rollback();
  298. throw ex;
  299. }
  300. finally
  301. {
  302. conn.Disconnect();
  303. }
  304. //返回数据
  305. return sre;
  306. }
  307. /// <summary>
  308. /// 获取装具上的产品信息
  309. /// </summary>
  310. /// <param name="entruckingCode"></param>
  311. /// <param name="sUser"></param>
  312. /// <returns></returns>
  313. public static ServiceResultEntity GetTruckBarCodes(string entruckingCode, SUserInfo sUser)
  314. {
  315. ServiceResultEntity sre = new ServiceResultEntity();
  316. sre.Data = new DataSet();
  317. sre.Status = Constant.ServiceResultStatus.Success;
  318. IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  319. string sqlStr = "";
  320. try
  321. {
  322. conn.Connect();
  323. if (sre.Status == Constant.ServiceResultStatus.Success)
  324. {
  325. sqlStr = $@"
  326. SELECT
  327. TPE.STATUS
  328. FROM TP_PM_ENTRUCKING TPE
  329. WHERE TPE.VALUEFLAG = '1'
  330. AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
  331. ";
  332. DataTable dt = conn.GetSqlResultToDt(sqlStr);
  333. sre.Data.Tables.Add(dt);
  334. if (dt.Rows.Count == 0)
  335. {
  336. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  337. sre.Message = "无效装具条码!";
  338. }
  339. else if (dt.Rows[0]["STATUS"].Equals("1"))
  340. {
  341. sqlStr = $@"
  342. SELECT
  343. TD.BARCODE,G.GOODSCODE,P.PROCEDURENAME,U.USERCODE
  344. FROM
  345. TP_PM_ENTRUCKINGDETAIL TD
  346. INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE AND T.BATCH = TD.BATCH
  347. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = TD.BARCODE
  348. INNER JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
  349. INNER JOIN TP_PC_PROCEDURE P ON P.PROCEDUREID = IP.PROCEDUREID
  350. INNER JOIN TP_MST_USER U ON U.USERID = IP.USERID
  351. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  352. WHERE
  353. TD.ENTRUCKINGCODE = '{entruckingCode}'
  354. AND T.STATUS = '1'
  355. ";
  356. dt = conn.GetSqlResultToDt(sqlStr);
  357. sre.Data.Tables.Add(dt);
  358. if (dt.Rows.Count == 0)
  359. {
  360. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  361. sre.Message = "装具上无产品!";
  362. }
  363. else
  364. {
  365. sre.Status = Constant.ServiceResultStatus.Success;
  366. sre.Message = "操作成功!";
  367. }
  368. }
  369. else {
  370. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  371. sre.Message = "装具未使用";
  372. }
  373. }
  374. }
  375. catch (Exception ex)
  376. {
  377. throw ex;
  378. }
  379. finally
  380. {
  381. conn.Disconnect();
  382. }
  383. //返回数据
  384. return sre;
  385. }
  386. /// <summary>
  387. /// 解绑
  388. /// </summary>
  389. /// <param name="entruckingCode"></param>
  390. /// <param name="sUser"></param>
  391. /// <returns></returns>
  392. public static ServiceResultEntity UnbindTruckBarCodes(string entruckingCode,string currentUserCode, SUserInfo sUser)
  393. {
  394. ServiceResultEntity sre = new ServiceResultEntity();
  395. sre.Data = new DataSet();
  396. sre.Status = Constant.ServiceResultStatus.Success;
  397. IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  398. string sqlStr = "";
  399. try
  400. {
  401. conn.Connect();
  402. if (sre.Status == Constant.ServiceResultStatus.Success)
  403. {
  404. sqlStr = $@"
  405. SELECT
  406. TPE.STATUS
  407. FROM TP_PM_ENTRUCKING TPE
  408. WHERE TPE.VALUEFLAG = '1'
  409. AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
  410. ";
  411. DataTable dt = conn.GetSqlResultToDt(sqlStr);
  412. sre.Data.Tables.Add(dt);
  413. if (dt.Rows.Count == 0)
  414. {
  415. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  416. sre.Message = "无效装具条码!";
  417. }
  418. else if (dt.Rows[0]["STATUS"].Equals("1"))
  419. {
  420. //插入装具明细
  421. sqlStr = $@"
  422. INSERT INTO TP_PM_EntruckingDetail (
  423. ENTRUCKINGCODE,
  424. BARCODE,
  425. BATCH,
  426. DOFUNCTION,
  427. PROCEDUREID,
  428. REMARKS,
  429. ACCOUNTID,
  430. USERID,
  431. USERCODE,
  432. VALUEFLAG,
  433. CREATEUSERID,
  434. UPDATEUSERID )
  435. SELECT
  436. '{entruckingCode}',
  437. TD.BARCODE,
  438. TD.BATCH,
  439. 2,
  440. IP.PROCEDUREID,
  441. '',
  442. {sUser.AccountID},
  443. CU.USERID,
  444. '{currentUserCode}',
  445. '1',
  446. {sUser.UserID},
  447. {sUser.UserID}
  448. FROM
  449. TP_PM_ENTRUCKINGDETAIL TD
  450. INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE AND T.BATCH = TD.BATCH
  451. INNER JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
  452. INNER JOIN TP_MST_USER CU ON CU.USERCODE = '{currentUserCode}' AND CU.VALUEFLAG = '1'
  453. WHERE
  454. TD.ENTRUCKINGCODE = '{entruckingCode}'
  455. AND T.STATUS = '1'
  456. ";
  457. int execute = conn.ExecuteNonQuery(sqlStr);
  458. dt = conn.GetSqlResultToDt(sqlStr);
  459. sre.Data.Tables.Add(dt);
  460. if (dt.Rows.Count == 0)
  461. {
  462. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  463. sre.Message = "装具上无产品!";
  464. }
  465. else
  466. {
  467. sre.Status = Constant.ServiceResultStatus.Success;
  468. sre.Message = "操作成功!";
  469. }
  470. }
  471. else
  472. {
  473. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  474. sre.Message = "装具未使用";
  475. }
  476. }
  477. }
  478. catch (Exception ex)
  479. {
  480. throw ex;
  481. }
  482. finally
  483. {
  484. conn.Disconnect();
  485. }
  486. //返回数据
  487. return sre;
  488. }
  489. /// <summary>
  490. /// 增补
  491. /// </summary>
  492. /// <param name="barcode"></param>
  493. /// <param name="entruckingCode"></param>
  494. /// <param name="currentUserCode"></param>
  495. /// <param name="sUser"></param>
  496. /// <returns></returns>
  497. public static ServiceResultEntity AddTruckBarCode(string barcode, string entruckingCode, string currentUserCode, SUserInfo sUser)
  498. {
  499. ServiceResultEntity sre = new ServiceResultEntity();
  500. sre.Data = new DataSet();
  501. sre.Status = Constant.ServiceResultStatus.Success;
  502. IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  503. string sqlStr = "";
  504. int execute = 0;
  505. try
  506. {
  507. conn.Connect();
  508. if (sre.Status == Constant.ServiceResultStatus.Success)
  509. {
  510. //获取最大批次
  511. sqlStr = $@"SELECT
  512. TPE.BATCH,TPE.STATUS
  513. FROM TP_PM_ENTRUCKING TPE
  514. WHERE TPE.VALUEFLAG = '1'
  515. AND TPE.ENTRUCKINGCODE = '{entruckingCode}'";
  516. DataTable dt = conn.GetSqlResultToDt(sqlStr);
  517. if (dt.Rows.Count == 0)
  518. {
  519. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  520. sre.Message = "无效装具条码!";
  521. }
  522. else if (dt.Rows[0]["STATUS"].ToString().Equals("1"))
  523. {
  524. int batch = Convert.ToInt32(dt.Rows[0]["BATCH"]) + 1;
  525. //获取产品条码当前工序
  526. sqlStr = $@"
  527. select PROCEDUREID from TP_PM_INPRODUCTION where barcode = '{barcode}'
  528. ";
  529. string procedureid = conn.GetSqlResultToStr(sqlStr);
  530. //插入装具明细
  531. sqlStr = $@"
  532. INSERT INTO TP_PM_EntruckingDetail (
  533. ENTRUCKINGCODE,
  534. BARCODE,
  535. BATCH,
  536. DOFUNCTION,
  537. PROCEDUREID,
  538. REMARKS,
  539. ACCOUNTID,
  540. USERID,
  541. USERCODE,
  542. VALUEFLAG,
  543. CREATEUSERID,
  544. UPDATEUSERID )
  545. SELECT
  546. '{entruckingCode}',
  547. '{barcode}',
  548. '{batch}',
  549. 1,
  550. {procedureid},
  551. '',
  552. '{sUser.AccountID}',
  553. USERID,
  554. '{currentUserCode}',
  555. 1,
  556. '{sUser.UserID}',
  557. '{sUser.UserID}'
  558. FROM TP_MST_USER WHERE USERCODE = '{currentUserCode}'
  559. ";
  560. execute = conn.ExecuteNonQuery(sqlStr);
  561. if (execute > 0)
  562. {
  563. sre.Status = Constant.ServiceResultStatus.Success;
  564. sre.Message = "操作完成!";
  565. }
  566. else
  567. {
  568. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  569. sre.Message = "操作失败,没有更新任何数据!";
  570. }
  571. }
  572. else
  573. {
  574. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  575. sre.Message = "装具未使用不可增补!";
  576. }
  577. conn.Commit();
  578. }
  579. }
  580. catch (Exception ex)
  581. {
  582. conn.Rollback();
  583. throw ex;
  584. }
  585. finally
  586. {
  587. conn.Disconnect();
  588. }
  589. //返回数据
  590. return sre;
  591. }
  592. /// <summary>
  593. /// 拆减产品
  594. /// </summary>
  595. /// <param name="entruckingCode"></param>
  596. /// <param name="sUser"></param>
  597. /// <returns></returns>
  598. public static ServiceResultEntity UnbindTruckBarCode(string barcode,string entruckingCode, string currentUserCode, SUserInfo sUser)
  599. {
  600. ServiceResultEntity sre = new ServiceResultEntity();
  601. sre.Data = new DataSet();
  602. sre.Status = Constant.ServiceResultStatus.Success;
  603. IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  604. string sqlStr = "";
  605. try
  606. {
  607. conn.Connect();
  608. if (sre.Status == Constant.ServiceResultStatus.Success)
  609. {
  610. sqlStr = $@"
  611. SELECT
  612. TPE.STATUS
  613. FROM TP_PM_ENTRUCKING TPE
  614. WHERE TPE.VALUEFLAG = '1'
  615. AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
  616. ";
  617. DataTable dt = conn.GetSqlResultToDt(sqlStr);
  618. sre.Data.Tables.Add(dt);
  619. if (dt.Rows.Count == 0)
  620. {
  621. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  622. sre.Message = "无效装具条码!";
  623. }
  624. else if (dt.Rows[0]["STATUS"].Equals("1"))
  625. {
  626. //插入装具明细
  627. sqlStr = $@"
  628. INSERT INTO TP_PM_EntruckingDetail (
  629. ENTRUCKINGCODE,
  630. BARCODE,
  631. BATCH,
  632. DOFUNCTION,
  633. PROCEDUREID,
  634. REMARKS,
  635. ACCOUNTID,
  636. USERID,
  637. USERCODE,
  638. VALUEFLAG,
  639. CREATEUSERID,
  640. UPDATEUSERID )
  641. SELECT
  642. '{entruckingCode}',
  643. TD.BARCODE,
  644. TD.BATCH,
  645. 2,
  646. IP.PROCEDUREID,
  647. '',
  648. {sUser.AccountID},
  649. CU.USERID,
  650. '{currentUserCode}',
  651. '1',
  652. {sUser.UserID},
  653. {sUser.UserID}
  654. FROM
  655. TP_PM_ENTRUCKINGDETAIL TD
  656. INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE AND T.BATCH = TD.BATCH
  657. INNER JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
  658. INNER JOIN TP_MST_USER CU ON CU.USERCODE = '{currentUserCode}' AND CU.VALUEFLAG = '1'
  659. WHERE
  660. TD.ENTRUCKINGCODE = '{entruckingCode}'
  661. AND TD.BARCODE = '{barcode}'
  662. AND T.STATUS = '1'
  663. ";
  664. int execute = conn.ExecuteNonQuery(sqlStr);
  665. dt = conn.GetSqlResultToDt(sqlStr);
  666. sre.Data.Tables.Add(dt);
  667. if (dt.Rows.Count == 0)
  668. {
  669. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  670. sre.Message = "装具上无产品!";
  671. }
  672. else
  673. {
  674. sre.Status = Constant.ServiceResultStatus.Success;
  675. sre.Message = "操作成功!";
  676. }
  677. }
  678. else
  679. {
  680. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  681. sre.Message = "装具未使用";
  682. }
  683. }
  684. }
  685. catch (Exception ex)
  686. {
  687. throw ex;
  688. }
  689. finally
  690. {
  691. conn.Disconnect();
  692. }
  693. //返回数据
  694. return sre;
  695. }
  696. #endregion
  697. }
  698. }