InStockSearchService.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. using DapperORMCore.Context.DataContext;
  2. using DapperORMCore.Model.CoreModel;
  3. using DapperORMCore.Repository.IRepositorys;
  4. using DapperORMCore.String.Consts;
  5. using Microsoft.Extensions.Configuration;
  6. using NXWMS.DataAccess.Entity;
  7. using NXWMS.IService.NXPDA.InStock;
  8. using NXWMS.IService.NXWMS.Inspection;
  9. using NXWMS.Model.AppModels.Condition.Balance;
  10. using NXWMS.Model.AppModels.Condition.Base;
  11. using NXWMS.Model.AppModels.Condition.NXPDA.InStock;
  12. using NXWMS.Model.AppModels.Result.Balance;
  13. using NXWMS.Model.AppModels.Result.Base;
  14. using NXWMS.Model.AppModels.Result.Inspection;
  15. using NXWMS.Model.AppModels.Result.NXPDA.InStock;
  16. using NXWMS.Model.Common;
  17. using NXWMS.Service;
  18. using NXWMS.String.Enums;
  19. using System;
  20. using System.Collections.Generic;
  21. using System.Data;
  22. using System.Linq;
  23. using System.Text;
  24. using System.Threading.Tasks;
  25. using WestDistance.DapperORM.Repository.Repositorys;
  26. namespace NXWMS.Service.NXPDA.InStock
  27. {
  28. /// <summary>
  29. /// 入库查询接口
  30. /// </summary>
  31. [AutoInject(typeof(IInStockSearchService), InjectType.Scope)]
  32. public class InStockSearchService : ServiceBase, IInStockSearchService
  33. {
  34. /// <summary>
  35. /// 系统操作仓储中转
  36. /// </summary>
  37. private IDataRepositoryContext _dataContext;
  38. /// <summary>
  39. /// SQL节点仓储
  40. /// </summary>
  41. private ISQLNodeRepository _iSQLNodeRepository;
  42. /// <summary>
  43. /// 配置
  44. /// </summary>
  45. private IConfiguration _configuration;
  46. private IWmsQaInspectionService _wmsQaInspectionService;
  47. public InStockSearchService(IDataRepositoryContext dataRepositoryContext, IWmsQaInspectionService wmsQaInspectionService, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository)
  48. {
  49. this._dataContext = dataRepositoryContext;
  50. this._configuration = configuration;
  51. this._iSQLNodeRepository = iSQLNodeRepository;
  52. this._wmsQaInspectionService = wmsQaInspectionService;
  53. }
  54. public OperateResultInfo<List<InReceiptResult>> GetReceiptList(InReceiptCondition info)
  55. {
  56. //if (string.IsNullOrWhiteSpace(info.No) && info.Date == null && string.IsNullOrWhiteSpace(info.SupplierName))
  57. //{
  58. // return FailMessageStatus("参数错误", new List<InReceiptResult>());
  59. //}
  60. var sqlAndBuilder = new StringBuilder();
  61. var sqlOrBuilder = new StringBuilder();
  62. //var sql = $@"SELECT DISTINCT NO=WMS_IN_RECEIPT.RECEIPT_NO,DATE=WMS_IN_RECEIPT.RECEIPT_TIME,SupplierName=WMS_IN_RECEIPT_DTL.SUPPLIER_NAME,
  63. // WMS_IN_RECEIPT.RECEIPT_STATUS,WMS_IN_RECEIPT.RECEIPT_TYPE,
  64. // SYS_USER.USER_NAME,WMS_IN_RECEIPT.UPDATE_TIME,
  65. // Type = {_iSQLNodeRepository.GetEnumIntCaseString<InstockType>("RECEIPT_TYPE", "WMS_IN_RECEIPT")},
  66. // Status = {_iSQLNodeRepository.GetEnumIntCaseString<InReceiptStatus>("RECEIPT_STATUS", "WMS_IN_RECEIPT")},
  67. // UserName = SYS_USER.USER_NAME,
  68. // WMS_IN_RECEIPT.RECEIPTER from WMS_IN_RECEIPT
  69. // JOIN WMS_IN_RECEIPT_DTL ON WMS_IN_RECEIPT.RECEIPT_ID=WMS_IN_RECEIPT_DTL.RECEIPT_ID
  70. // LEFT JOIN SYS_USER ON SYS_USER.USER_CODE=WMS_IN_RECEIPT.RECEIPTER
  71. // WHERE WMS_IN_RECEIPT.RECEIPT_STATUS NOT IN (111,0)";
  72. var sql = $@" SELECT DISTINCT WMS_IN_RECEIPT.RECEIPT_NO as NO,
  73. WMS_IN_RECEIPT.RECEIPT_TIME AS Date,
  74. WMS_IN_RECEIPT.RECEIPT_STATUS
  75. ,WMS_IN_RECEIPT.RECEIPT_TYPE,
  76. SYS_USER.USER_NAME,WMS_IN_RECEIPT.UPDATE_TIME,
  77. SYS_USER.USER_NAME as UserName,
  78. WMS_IN_RECEIPT.RECEIPTER,
  79. c.DICTIONARY_ITEM_NAME AS Type,d.DICTIONARY_ITEM_NAME as Status
  80. from WMS_IN_RECEIPT
  81. JOIN WMS_IN_RECEIPT_DTL ON WMS_IN_RECEIPT.RECEIPT_ID = WMS_IN_RECEIPT_DTL.RECEIPT_ID
  82. LEFT JOIN SYS_USER ON SYS_USER.USER_CODE = WMS_IN_RECEIPT.RECEIPTER
  83. left join (select * from BAS_DICTIONARY where DICTIONARY_CODE='ReceiptTypeDesc') as c on WMS_IN_RECEIPT.RECEIPT_TYPE=c.DICTIONARY_ITEM_CODE
  84. left join (select * from BAS_DICTIONARY where DICTIONARY_CODE='ReceiptOrderStatusDesc') as d on WMS_IN_RECEIPT.RECEIPT_STATUS=d.DICTIONARY_ITEM_CODE
  85. Where WMS_IN_RECEIPT.RECEIPT_STATUS NOT IN(111) and RECEIPT_DTL_QTY<>RECEIPT_TRAY_QTY ";
  86. sqlAndBuilder = string.IsNullOrWhiteSpace(info.No) ?
  87. sqlAndBuilder :
  88. sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("RECEIPT_NO", info.No, DBOperationString._ContainIn,
  89. "WMS_IN_RECEIPT"));
  90. if (info.Date != null)
  91. {
  92. sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("RECEIPT_TIME", info.Date.Value.ToString("yyyy-MM-dd"), DBOperationString._LargeEqual,
  93. "WMS_IN_RECEIPT"));
  94. sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("RECEIPT_TIME", info.Date.Value.AddDays(1).ToString("yyyy-MM-dd"), DBOperationString._SmallEqual,
  95. "WMS_IN_RECEIPT"));
  96. }
  97. sqlAndBuilder = string.IsNullOrWhiteSpace(info.SupplierName) ?
  98. sqlAndBuilder :
  99. sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("SUPPLIER_NAME", info.SupplierName, DBOperationString._ContainIn,
  100. "WMS_IN_RECEIPT_DTL"));
  101. sql = sql + (sqlAndBuilder.Length > 0 ? sqlAndBuilder.ToString() : "");
  102. var results = new DataRepository<InReceiptResult>(_dataContext).Query(sql);
  103. return SuccessStatus(results.ToList());
  104. }
  105. public OperateResultInfo<InReceiptDTLMainResult> GetReceiptDTLList(InReceiptCondition info)
  106. {
  107. if (string.IsNullOrWhiteSpace(info.No) && info.Date == null && string.IsNullOrWhiteSpace(info.SupplierName))
  108. {
  109. return FailMessageStatus("参数错误", new InReceiptDTLMainResult());
  110. }
  111. var sqlAndBuilder = new StringBuilder();
  112. var sqlOrBuilder = new StringBuilder();
  113. var sql = $@"SELECT DISTINCT BatchNo=WMS_IN_RECEIPT_DTL.BATCH_NO,QTY=WMS_IN_RECEIPT_DTL.ARRIVAL_QTY,MaterielCode=WMS_IN_RECEIPT_DTL.MATERIEL_CODE,
  114. MaterielName=WMS_IN_RECEIPT_DTL.MATERIEL_NAME,UnitName=BAS_UNIT.UNIT_NAME,OperateTime=WMS_IN_RECEIPT_DTL.UPDATE_TIME,
  115. WMS_IN_RECEIPT.RECEIPT_NO,
  116. WMS_IN_RECEIPT.RECEIPTER from WMS_IN_RECEIPT
  117. JOIN WMS_IN_RECEIPT_DTL ON WMS_IN_RECEIPT.RECEIPT_ID=WMS_IN_RECEIPT_DTL.RECEIPT_ID
  118. LEFT JOIN SYS_USER ON SYS_USER.USER_CODE=WMS_IN_RECEIPT.RECEIPTER
  119. JOIN BAS_UNIT ON BAS_UNIT.UNIT_CODE=WMS_IN_RECEIPT_DTL.UNIT_CODE
  120. WHERE WMS_IN_RECEIPT.RECEIPT_STATUS NOT IN (111,0)
  121. AND WMS_IN_RECEIPT.RECEIPT_NO='{info.No}'";
  122. var results = new DataRepository<InReceiptDTLResult>(_dataContext).Query(sql);
  123. return SuccessStatus(new InReceiptDTLMainResult
  124. {
  125. inReceiptDTLResults = results.ToList(),
  126. QTY = results.Sum(s => s.QTY),
  127. TypeQTY = results.Count()
  128. });
  129. }
  130. public OperateResultInfo<List<InReceiptPalletResult>> GetReceiptPalletList(InReceiptPalletCondition info)
  131. {
  132. if (string.IsNullOrWhiteSpace(info.PalletCode))
  133. {
  134. return FailMessageStatus("参数错误", new List<InReceiptPalletResult>());
  135. }
  136. var palletResult = new DataRepository<BAS_PALLET>(_dataContext).Query("PALLET_CODE", info.PalletCode)
  137. .Where(s => s.USED_FLAG == 1 && s.DEL_FLAG == 0).Any();
  138. if (!palletResult)
  139. {
  140. return FailMessageStatus("托盘编码不存在,请重新录入!", new List<InReceiptPalletResult>());
  141. }
  142. var sql = $@"SELECT MaterielCode = WMS_IN_RECEIPT_RECORD.MATERIEL_CODE,
  143. MaterielName=WMS_IN_RECEIPT_RECORD.MATERIEL_NAME,QTY=WMS_IN_RECEIPT_RECORD.RECEIPT_QTY,
  144. TwoVessel = BAS_PACKAGE.PACKAGE_NAME
  145. from WMS_IN_RECEIPT_RECORD
  146. JOIN WMS_IN_RECEIPT ON WMS_IN_RECEIPT_RECORD.RECEIPT_NO = WMS_IN_RECEIPT.RECEIPT_NO
  147. JOIN BAS_PACKAGE ON WMS_IN_RECEIPT_RECORD.PACKAGE_CODE = BAS_PACKAGE.PACKAGE_CODE
  148. WHERE WMS_IN_RECEIPT.RECEIPT_STATUS = 55
  149. AND WMS_IN_RECEIPT_RECORD.PALLET_CODE = '{info.PalletCode}'";
  150. var results = new DataRepository<InReceiptPalletResult>(_dataContext).Query(sql);
  151. return SuccessStatus(results.ToList());
  152. }
  153. public OperateResultInfo<InArrivalBarCodeResult> GetReceiptBarCodeInfo(InArrivalBarCodeCondition info)
  154. {
  155. var sql = $@"SELECT MaterielCode=WMS_IN_RECEIPT_DTL.MATERIEL_CODE,
  156. RECEIPT_NO=WMS_IN_RECEIPT.RECEIPT_NO,
  157. MaterielName = WMS_IN_RECEIPT_DTL.MATERIEL_NAME,SpecsModel = BAS_MATERIEL.SPECS_MODEL,
  158. BatchNo = WMS_IN_RECEIPT_DTL.BATCH_NO,ArrivalQTY = WMS_IN_RECEIPT_DTL.ARRIVAL_QTY,
  159. ReceiptTrayQty=WMS_IN_RECEIPT_DTL.RECEIPT_TRAY_QTY,
  160. ReceiptQTY = WMS_IN_RECEIPT_DTL.RECEIPT_DTL_QTY,TwoVessel = BAS_PACKAGE.PACKAGE_NAME,
  161. BinCode = BAS_BIN.BIN_CODE,BinName = BAS_BIN.BIN_NAME,
  162. UnitCode = BAS_UNIT.UNIT_CODE,UnitName = BAS_UNIT.UNIT_NAME,Remark = WMS_IN_RECEIPT_DTL.DESCRIBE,
  163. ReceiptDtlId = WMS_IN_RECEIPT_DTL.RECEIPT_DTL_ID
  164. FROM WMS_IN_RECEIPT
  165. JOIN WMS_IN_RECEIPT_DTL ON WMS_IN_RECEIPT.RECEIPT_ID = WMS_IN_RECEIPT_DTL.RECEIPT_ID
  166. JOIN BAS_MATERIEL ON WMS_IN_RECEIPT_DTL.MATERIEL_CODE = BAS_MATERIEL.MATERIEL_CODE
  167. LEFT JOIN BAS_PACKAGE ON WMS_IN_RECEIPT_DTL.PACKAGE_CODE = BAS_PACKAGE.PACKAGE_CODE
  168. LEFT JOIN BAS_UNIT ON BAS_UNIT.UNIT_CODE = WMS_IN_RECEIPT_DTL.UNIT_CODE
  169. LEFT JOIN WMS_IN_RECEIPT_RECORD ON WMS_IN_RECEIPT_RECORD.ARRIVAL_NO = WMS_IN_RECEIPT.ARRIVAL_NO
  170. AND WMS_IN_RECEIPT_RECORD.MATERIEL_BARCODE = WMS_IN_RECEIPT_DTL.MATERIEL_BARCODE
  171. LEFT JOIN BAS_BIN ON WMS_IN_RECEIPT_RECORD.BIN_CODE = BAS_BIN.BIN_CODE
  172. where WMS_IN_RECEIPT_DTL.MATERIEL_CODE='{info.MaterielCode}' and WMS_IN_RECEIPT_DTL.RECEIPT_DTL_ID={info.ReceiptDtlId}";
  173. if (!string.IsNullOrWhiteSpace(info.Statuss))
  174. {
  175. sql = sql + " AND WMS_IN_RECEIPT.RECEIPT_STATUS in(" + info.Statuss + ")";
  176. }
  177. if (!string.IsNullOrWhiteSpace(info.DTLStatuss))
  178. {
  179. sql = sql + " AND WMS_IN_RECEIPT_DTL.RECEIPT_DTL_STATUS in(" + info.Statuss + ")";
  180. }
  181. var results = new DataRepository<InArrivalBarCodeResult>(_dataContext).Query(sql).FirstOrDefault();
  182. return SuccessStatus(results);
  183. }
  184. public OperateResultInfo<InArtificialPutAwayDTLResult> GetArtificialPutAwayList(InArtificialPutAwayCondition info)
  185. {
  186. if (string.IsNullOrWhiteSpace(info.PalletCode) || string.IsNullOrWhiteSpace(info.BinCode))
  187. {
  188. return FailMessageStatus("参数错误", new InArtificialPutAwayDTLResult());
  189. }
  190. var sql = $@"SELECT MaterielCode = WMS_IN_RECEIPT_RECORD.MATERIEL_CODE,
  191. MaterielName=WMS_IN_RECEIPT_RECORD.MATERIEL_NAME,QTY=WMS_IN_RECEIPT_RECORD.RECEIPT_QTY,
  192. TwoVessel = BAS_PACKAGE.PACKAGE_NAME
  193. from WMS_IN_RECEIPT_RECORD
  194. JOIN WMS_IN_RECEIPT ON WMS_IN_RECEIPT_RECORD.RECEIPT_NO = WMS_IN_RECEIPT.RECEIPT_NO
  195. JOIN BAS_PACKAGE ON WMS_IN_RECEIPT_RECORD.PACKAGE_CODE = BAS_PACKAGE.PACKAGE_CODE
  196. WHERE WMS_IN_RECEIPT.RECEIPT_STATUS = 99
  197. AND WMS_IN_RECEIPT_RECORD.PALLET_CODE = '{info.PalletCode}'
  198. AND WMS_IN_RECEIPT_RECORD.BIN_CODE = '{info.BinCode}'";
  199. var results = new DataRepository<InArtificialPutAwayResult>(_dataContext).Query(sql);
  200. sql = $@"SELECT WMS_IN_RECEIPT_RECORD.*
  201. from WMS_IN_RECEIPT_RECORD
  202. JOIN WMS_IN_RECEIPT ON WMS_IN_RECEIPT_RECORD.RECEIPT_NO = WMS_IN_RECEIPT.RECEIPT_NO
  203. JOIN BAS_PACKAGE ON WMS_IN_RECEIPT_RECORD.PACKAGE_CODE = BAS_PACKAGE.PACKAGE_CODE
  204. WHERE
  205. WMS_IN_RECEIPT_RECORD.PALLET_CODE = '{info.PalletCode}'
  206. AND WMS_IN_RECEIPT_RECORD.BIN_CODE = '{info.BinCode}'";
  207. var resultsTemp = new DataRepository<InArtificialPutAwayResult>(_dataContext).Query(sql);
  208. return SuccessStatus(new InArtificialPutAwayDTLResult { InArtificialPutAwayList = results.ToList(), IsEffective = resultsTemp.Any() });
  209. }
  210. public OperateResultInfo<InInspectionPalletMainResult> GetInspectionPalletList(InInspectionPalletCondition info)
  211. {
  212. if (string.IsNullOrWhiteSpace(info.PalletCode))
  213. {
  214. return FailMessageStatus("参数错误", new InInspectionPalletMainResult());
  215. }
  216. var sql = $@"SELECT MaterielCode = WMS_QA_INSPECTION_DTL.MATERIEL_CODE,
  217. MaterielName=WMS_QA_INSPECTION_DTL.MATERIEL_NAME,QTY=WMS_IN_RECEIPT_RECORD.RECEIPT_QTY,
  218. TwoVessel = BAS_PACKAGE.PACKAGE_NAME,
  219. Result = {_iSQLNodeRepository.GetEnumIntCaseString<InspectionResultStatus>("INSPECTION_RESULT", "WMS_QA_INSPECTION_DTL")}
  220. from WMS_QA_INSPECTION_DTL
  221. JOIN WMS_QA_INSPECTION ON WMS_QA_INSPECTION_DTL.INSPECTION_ID = WMS_QA_INSPECTION_DTL.INSPECTION_ID
  222. JOIN BAS_PACKAGE ON WMS_QA_INSPECTION_DTL.PACKAGE_CODE = BAS_PACKAGE.PACKAGE_CODE
  223. JOIN WMS_IN_RECEIPT_RECORD ON WMS_IN_RECEIPT_RECORD.MATERIEL_BARCODE =WMS_QA_INSPECTION_DTL.MATERIEL_BARCODE
  224. WHERE WMS_QA_INSPECTION.INSPECTION_STATUS = 11
  225. AND WMS_QA_INSPECTION_DTL.INSPECTION_DTL_STATUS=11
  226. AND WMS_IN_RECEIPT_RECORD.PALLET_CODE = '{info.PalletCode}'";
  227. var results = new DataRepository<InInspectionPalletResult>(_dataContext).Query(sql);
  228. return SuccessStatus(new InInspectionPalletMainResult
  229. {
  230. Details = results,
  231. IsEffective = new DataRepository<BAS_PALLET>(_dataContext).Query("PALLET_CODE", info.PalletCode).
  232. Where(s => s.USED_FLAG == 1 && s.DEL_FLAG == 0).Any() &&
  233. new DataRepository<WMS_IN_RECEIPT_RECORD>(_dataContext).Query("PALLET_CODE", info.PalletCode).
  234. Where(s => s.RECEIPT_RECORD_STATUS == 0 && s.INSPECTION_RESULT == "WAIT").Any()
  235. });
  236. }
  237. /// <summary>
  238. ///
  239. /// </summary>
  240. /// <param name="info"></param>
  241. /// <returns></returns>
  242. public OperateResultInfo<InInspectionBarCodeResult> GetInspectionBarCodeInfo(InInspectionBarCodeCondition info)
  243. {
  244. if (string.IsNullOrWhiteSpace(info.BarCode))
  245. {
  246. return FailMessageStatus("参数错误", new InInspectionBarCodeResult());
  247. }
  248. var sql = $@"
  249. select * from ( SELECT g.RECEIPT_DTL_QTY, A.INSPECTION_DTL_ID, A.NEWID, A.INSPECTION_ID, D.INSPECTION_NO, F.MATERIEL_TYPE_CODE,
  250. F.MATERIEL_TYPE_NAME, A.MATERIEL_CODE, A.MATERIEL_NAME, A.MATERIEL_BARCODE, A.MATERIEL_SPEC,
  251. A.UNIT_CODE, A.BATCH_NO, A.PACKAGE_CODE, A.SUPPLIER_CODE, A.SUPPLIER_NAME, A.PRODUCT_DATE,
  252. A.EXP_DATE, A.REGION_CODE, A.REGION_NAME, A.BIN_CODE, A.BIN_NAME, A.BILL_NO, A.BILL_DTL_ID,
  253. A.TRAY_CODE, A.PALLET_CODE, A.TRAY_DTL_ID, A.INSPECTION_RESULT,
  254. CASE A.INSPECTION_RESULT WHEN 'Wait' THEN '未质检' WHEN 'OK' THEN '质检合格' WHEN 'NG' THEN '质检不合格' ELSE
  255. '未知' END AS INSPECTION_RESULT_NAME, A.INSPECTION_DTL_STATUS,
  256. CASE A.INSPECTION_DTL_STATUS WHEN 0 THEN '初始创建' WHEN 11 THEN '质检审核' WHEN 55 THEN '质检中' WHEN
  257. 77 THEN '结果确认完成' WHEN 99 THEN '质检完成' WHEN 100 THEN '强制完成' WHEN 111 THEN '已删除' ELSE '未知状态'
  258. END AS INSPECTION_DTL_STATUS_NAME, A.ITEM_STATUS,
  259. CASE A.ITEM_STATUS WHEN 1 THEN '正常品' WHEN 2 THEN '临期品' WHEN 3 THEN '过期品' ELSE '未知' END AS ITEM_STATUS_NAME,
  260. A.DESCRIBE, A.CREATE_BY, B.USER_NAME AS CREATE_NAME, A.CREATE_TIME, A.UPDATE_BY,
  261. C.USER_NAME AS UPDATE_NAME, A.UPDATE_TIME, A.DATA_VERSION, A.REMARKS1, A.REMARKS2, A.REMARKS3,
  262. A.REMARKS4, A.REMARKS5
  263. FROM dbo.WMS_QA_INSPECTION_DTL AS A LEFT OUTER JOIN
  264. dbo.SYS_USER AS B ON A.CREATE_BY = B.USER_ID LEFT OUTER JOIN
  265. dbo.SYS_USER AS C ON A.UPDATE_BY = C.USER_ID LEFT OUTER JOIN
  266. dbo.WMS_QA_INSPECTION AS D ON A.INSPECTION_ID = D.INSPECTION_ID LEFT OUTER JOIN
  267. dbo.BAS_MATERIEL AS E ON A.MATERIEL_CODE = E.MATERIEL_CODE LEFT OUTER JOIN
  268. dbo.BAS_MATERIEL_TYPE AS F ON E.MATERIEL_TYPE = F.MATERIEL_TYPE_CODE
  269. LEFT JOIN VW_WMS_IN_RECEIPT_DTL AS G ON A.BILL_NO=G.RECEIPT_NO AND BILL_DTL_ID=G.RECEIPT_DTL_ID) as tbl
  270. WHERE INSPECTION_DTL_STATUS = 0 AND INSPECTION_RESULT
  271. = 'Wait' and INSPECTION_NO='{info.InspectionCode}' and MATERIEL_BARCODE='{info.BarCode}'";
  272. var results = new DataRepository<InInspectionBarCodeResult>(_dataContext).Query(sql).FirstOrDefault();
  273. return SuccessStatus(results);
  274. }
  275. /// <summary>
  276. /// 按单号查询可以录入的单据
  277. /// </summary>
  278. /// <param name="InspectionCode"></param>
  279. /// <returns></returns>
  280. public OperateResultInfo<WmsQaInspectionResult> CheckInspection(string InspectionCode)
  281. {
  282. var page = this._wmsQaInspectionService.GetWmsQaInspectionListForPage(new Model.AppModels.Condition.Inspection.WmsQaInspectionSearchMd()
  283. {
  284. InspectionNoMsg = InspectionCode,
  285. PageNum = 1,
  286. EveryPageQty = 1,
  287. });
  288. if (page.Data != null && page.Data.Count > 0)
  289. {
  290. return SuccessStatus(_wmsQaInspectionService.GetWmsQaInspectionDtlListForID(new WmsQaInspectionResult()
  291. {
  292. INSPECTION_ID = page.Data[0].INSPECTION_ID
  293. }).Data); ;
  294. }
  295. return SuccessStatus(page.Data != null && page.Data.Count() > 0 ? page.Data.FirstOrDefault() : null);
  296. //var strSQL = " select * from WMS_QA_INSPECTION where INSPECTION_NO=@InspectionCode and INSPECTION_STATUS=0";
  297. // var result = new DataRepository<WmsQaInspectionResult>(_dataContext).ExecuteScalar(strSQL, new { InspectionCode });
  298. // return SuccessStatus(result);
  299. }
  300. }
  301. }