From 80aa0cb51bc007f85c74c2cad0fb8e24a60cb371 Mon Sep 17 00:00:00 2001 From: cnf <3200815559@qq.com> Date: 星期四, 11 九月 2025 17:30:19 +0800 Subject: [PATCH] 销售与其他出入库功能挪移 --- service/Wom/WomdaaManager.cs | 4 entity/Base/RequestInfo.cs | 63 ++++ service/Warehouse/MesXsckManager.cs | 95 ++++-- service/Wom/WomdaahbManager.cs | 5 service/Warehouse/MesXsthManager.cs | 99 ++++-- Controllers/Warehouse/MesItemQtrkController.cs | 8 Controllers/BaseController.cs | 21 + Controllers/Warehouse/MesXsthController.cs | 6 service/Warehouse/MesItemQtManager.cs | 290 +++++++++++++++---- Controllers/Warehouse/MesXsckController.cs | 6 entity/MesItemQtDatall.cs | 6 Controllers/Warehouse/MesItemQtController.cs | 71 ++++ service/Warehouse/MesItemQtrkManager.cs | 182 +++++++---- 13 files changed, 630 insertions(+), 226 deletions(-) diff --git a/Controllers/BaseController.cs b/Controllers/BaseController.cs new file mode 100644 index 0000000..52ffce2 --- /dev/null +++ b/Controllers/BaseController.cs @@ -0,0 +1,21 @@ +锘縰sing Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; + +public class BaseController : ControllerBase +{ + private RequestInfo _requestInfo; + + protected RequestInfo RequestInfo + { + get + { + if (_requestInfo == null) + { + //蹇呭~椤� + //_requestInfo.ValidateRequired("OrgId"); + _requestInfo = HttpContext.RequestServices.GetService<RequestInfo>(); + } + return _requestInfo; + } + } +} \ No newline at end of file diff --git a/Controllers/Warehouse/MesItemQtController.cs b/Controllers/Warehouse/MesItemQtController.cs index 7daac28..3a80f9e 100644 --- a/Controllers/Warehouse/MesItemQtController.cs +++ b/Controllers/Warehouse/MesItemQtController.cs @@ -1,6 +1,7 @@ 锘縰sing System.Dynamic; using Microsoft.AspNetCore.Mvc; using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.service.@base; using NewPdaSqlServer.service.Warehouse; using NewPdaSqlServer.util; @@ -11,9 +12,11 @@ /// </summary> [Route("api/[controller]")] [ApiController] -public class MesItemQtController : ControllerBase +public class MesItemQtController : BaseController { private readonly MesItemQtManager _manager = new(); + + private readonly MesPrintMangeer _mCf = new(); #region 鍩虹CRUD @@ -60,7 +63,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = _manager.GetPendingQtList(); + resultInfos.tbBillList = _manager.GetPendingQtList(RequestInfo); return new ResponseResult { status = 0, @@ -81,7 +84,7 @@ /// <returns>寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃</returns> /// <remarks> /// 璇锋眰绀轰緥: - /// POST /api/MesItemQt/GetPendingQtList + /// POST /api/MesItemQt/GetPendingQtDetailList /// { /// "userName": "admin", // 鐢ㄦ埛鍚�(蹇呭~) /// "billNo": "QT20240101001" // 閫�鏂欏崟鍙�(蹇呭~) @@ -91,13 +94,12 @@ /// <response code="200">鎴愬姛鑾峰彇閫�鏂欏崟鏄庣粏</response> /// <response code="400">鑾峰彇澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response> [HttpPost("GetPendingQtDetailList")] - public ResponseResult GetPendingQtDetailList( - [FromBody] WarehouseQuery query) + public ResponseResult GetPendingQtDetailList([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = _manager.GetPendingQtList(query); + resultInfos.tbBillList = _manager.GetPendingQtDetailList(query, RequestInfo); return new ResponseResult { status = 0, @@ -134,13 +136,38 @@ [HttpPost("OutScanBarcode")] public ResponseResult OutScanBarcode([FromBody] WarehouseQuery query) { + //try + //{ + // dynamic resultInfos = new ExpandoObject(); + // var (form, items, message) = _manager.OutScanBarcode(query); + // resultInfos.form = form; + // resultInfos.items = items; + // resultInfos.message = message; + // return new ResponseResult + // { + // status = 0, + // message = "OK", + // data = resultInfos + // }; + //} + //catch (Exception ex) + //{ + // return ResponseResult.ResponseError(ex); + //} + try { dynamic resultInfos = new ExpandoObject(); - var (form, items, message) = _manager.OutScanBarcode(query); - resultInfos.form = form; - resultInfos.items = items; - resultInfos.message = message; + resultInfos.tbBillList = _manager.ScanCode(query); + if (resultInfos.tbBillList.result == "2") + { + return new ResponseResult + { + status = Convert.ToInt32(resultInfos.tbBillList.result), + message = resultInfos.tbBillList.strMsg, + data = resultInfos + }; + } return new ResponseResult { status = 0, @@ -198,5 +225,29 @@ } } + + [HttpPost("ScanCodeCF")] + public ResponseResult ScanCodeCF(WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = new ExpandoObject(); + resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query); + var scanResult = _manager.ScanCodeCF(query); + resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + #endregion } \ No newline at end of file diff --git a/Controllers/Warehouse/MesItemQtrkController.cs b/Controllers/Warehouse/MesItemQtrkController.cs index d881817..bef03d4 100644 --- a/Controllers/Warehouse/MesItemQtrkController.cs +++ b/Controllers/Warehouse/MesItemQtrkController.cs @@ -11,7 +11,7 @@ /// </summary> [Route("api/[controller]")] [ApiController] -public class MesItemQtrkController : ControllerBase +public class MesItemQtrkController : BaseController { private readonly MesItemQtrkManager _manager = new(); @@ -84,7 +84,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = _manager.GetQtckList(); + resultInfos.tbBillList = _manager.GetQtckList(RequestInfo); return new ResponseResult { status = 0, @@ -134,7 +134,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = _manager.GetQtckDetailList(query); + resultInfos.tbBillList = _manager.GetQtckDetailList(query, RequestInfo); //if(resultInfos.tbBillList.Count < 1) //{ @@ -181,7 +181,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.message = _manager.ScanInDepotsQT(query); + resultInfos = _manager.ScanInDepotsQT(query); return new ResponseResult { status = 0, diff --git a/Controllers/Warehouse/MesXsckController.cs b/Controllers/Warehouse/MesXsckController.cs index bd252cf..8ea3e24 100644 --- a/Controllers/Warehouse/MesXsckController.cs +++ b/Controllers/Warehouse/MesXsckController.cs @@ -12,7 +12,7 @@ /// </summary> [Route("api/[controller]")] [ApiController] -public class MesXsckController : ControllerBase +public class MesXsckController : BaseController { private readonly MesXsckManager _manager = new(); @@ -231,7 +231,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = _manager.GetFHTZBillNo(query); + resultInfos.tbBillList = _manager.GetFHTZBillNo(query, RequestInfo); return new ResponseResult { status = 0, @@ -266,7 +266,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = _manager.GetMesItemFHTZetailByBillNo(query); + resultInfos.tbBillList = _manager.GetMesItemFHTZetailByBillNo(query, RequestInfo); return new ResponseResult { status = 0, diff --git a/Controllers/Warehouse/MesXsthController.cs b/Controllers/Warehouse/MesXsthController.cs index 3241ac0..6b6e66f 100644 --- a/Controllers/Warehouse/MesXsthController.cs +++ b/Controllers/Warehouse/MesXsthController.cs @@ -12,7 +12,7 @@ /// </summary> [Route("api/[controller]")] [ApiController] -public class MesXsthController : ControllerBase +public class MesXsthController : BaseController { private readonly MesXsthManager _manager = new(); @@ -176,7 +176,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = _manager.GetXsthBillNo(query); + resultInfos.tbBillList = _manager.GetXsthBillNo(query, RequestInfo); return new ResponseResult { status = 0, @@ -202,7 +202,7 @@ try { dynamic resultInfos = new ExpandoObject(); - resultInfos.tbBillList = _manager.GetMesItemDetailByBillNo(query); + resultInfos.tbBillList = _manager.GetMesItemDetailByBillNo(query, RequestInfo); if (resultInfos.tbBillList.Count < 1) { diff --git a/entity/Base/RequestInfo.cs b/entity/Base/RequestInfo.cs new file mode 100644 index 0000000..08a12ba --- /dev/null +++ b/entity/Base/RequestInfo.cs @@ -0,0 +1,63 @@ +锘縰sing Microsoft.AspNetCore.Http; +using System.Dynamic; + +public class RequestInfo : DynamicObject +{ + private readonly IHttpContextAccessor _httpContextAccessor; + private readonly ExpandoObject _data = new ExpandoObject(); + + public RequestInfo(IHttpContextAccessor httpContextAccessor) + { + _httpContextAccessor = httpContextAccessor; + InitializeData(); + } + + private void InitializeData() + { + // 鍒濆鍖栨墍鏈夐渶瑕佺殑璇锋眰澶村弬鏁� + SetValue("OrgId", GetHeaderValue("OrgId")); + //// 鍙互缁х画娣诲姞鍏朵粬鍙傛暟 + //SetValue("UserId", GetHeaderValue("UserId")); + //SetValue("Language", GetHeaderValue("Language")); + } + + public override bool TryGetMember(GetMemberBinder binder, out object result) + { + string name = binder.Name; + return ((IDictionary<string, object>)_data).TryGetValue(name, out result); + } + + public override bool TrySetMember(SetMemberBinder binder, object value) + { + ((IDictionary<string, object>)_data)[binder.Name] = value; + return true; + } + + public string GetHeaderValue(string key) + { + var httpContext = _httpContextAccessor.HttpContext; + if (httpContext?.Request.Headers.TryGetValue(key, out var value) == true) + { + return value.ToString(); + } + return null; + } + + private void SetValue(string key, object value) + { + ((IDictionary<string, object>)_data)[key] = value; + } + + // 娣诲姞涓�涓柟娉曟潵妫�鏌ュ繀闇�鍙傛暟鏄惁瀛樺湪 + public void ValidateRequired(params string[] requiredFields) + { + foreach (var field in requiredFields) + { + if (!((IDictionary<string, object>)_data).ContainsKey(field) || + ((IDictionary<string, object>)_data)[field] == null) + { + throw new ArgumentException($"璇锋眰澶翠腑缂哄皯蹇呴渶鐨� {field} 鍙傛暟"); + } + } + } +} \ No newline at end of file diff --git a/entity/MesItemQtDatall.cs b/entity/MesItemQtDatall.cs index 57fe40f..174a795 100644 --- a/entity/MesItemQtDatall.cs +++ b/entity/MesItemQtDatall.cs @@ -101,4 +101,10 @@ /// </summary> [SugarColumn(IsIgnore = true)] public string? Qt011 { get; set; } + + /// <summary> + /// 浠撳簱id + /// </summary> + [SugarColumn(ColumnName = "depotId")] + public int? DepotId { get; set; } } \ No newline at end of file diff --git a/service/Warehouse/MesItemQtManager.cs b/service/Warehouse/MesItemQtManager.cs index 50c0199..a254c1e 100644 --- a/service/Warehouse/MesItemQtManager.cs +++ b/service/Warehouse/MesItemQtManager.cs @@ -1,9 +1,13 @@ -锘縰sing NewPdaSqlServer.DB; +锘縰sing Masuit.Tools; +using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using NewPdaSqlServer.entity.Base; using NewPdaSqlServer.util; using SqlSugar; +using System.Data; +using System.Data.SqlClient; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace NewPdaSqlServer.service.Warehouse; @@ -14,17 +18,33 @@ /// 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� /// </summary> /// <returns>閫�鏂欏崟鍙峰垪琛�</returns> - public List<string> GetPendingQtList() - { - const string sql = @"SELECT qtck - FROM MES_ITEM_QT - WHERE qt015 = 1 - AND qt026 = 1 - AND QT029 = 1 - AND qt032 = 1 - AND QT014 = 0 "; + public dynamic GetPendingQtList(dynamic RequestInfo) + { + var orgId = RequestInfo.OrgId; - return Db.Ado.SqlQuery<string>(sql); + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); + + // 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� + var parameters = new[] + { + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + try + { + // 杩斿洖鍗曞彿瀛楃涓插垪琛� + var blDetails = Db.Ado.SqlQuery<string>( + "EXEC prc_pda_qtck_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + return blDetails; + } + catch (Exception ex) + { + throw new Exception($"{ex.Message}"); + } } /// <summary> @@ -32,61 +52,48 @@ /// </summary> /// <param name="query">浠撳簱鏌ヨ鍙傛暟锛屽寘鍚敤鎴峰悕鍜屽崟鎹彿</param> /// <returns>寰呭鐞嗙殑閫�鏂欏崟鏄庣粏鍒楄〃</returns> - public ProductionPickDto GetPendingQtList(WarehouseQuery query) + public dynamic GetPendingQtDetailList(dynamic query, dynamic RequestInfo) { - // 浠庢煡璇㈠弬鏁颁腑鑾峰彇鐢ㄦ埛鍚嶅拰鍗曟嵁鍙� - var c_User = query.userName; - var p_bill_no = query.billNo; + var orgId = RequestInfo.OrgId; - // 鏍规嵁鍗曟嵁鍙锋煡璇㈤��鏂欏崟涓昏〃淇℃伅 - var mesItemQt = Db.Queryable<MesItemQt>() - .Where(it => it.Qtck == p_bill_no) - .First(); + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); - // 濡傛灉鏈壘鍒伴��鏂欏崟锛屾姏鍑哄紓甯� - if (mesItemQt == null) throw new Exception($"鏈煡璇㈠埌姝ゅ叾浠栧叆搴撶敵璇峰崟 {p_bill_no}"); - - //// 妫�鏌ラ��鏂欏崟鐨勫鏍哥姸鎬�(Qt015)锛屾湭瀹℃牳鍒欐姏鍑哄紓甯� - //if (mesItemQt.Qt015 == false) - // throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 鏈鏍革紝璇风‘璁わ紒"); - - // 妫�鏌ラ��鏂欏崟鐨勫畬缁撶姸鎬�(Qt014)锛屽凡瀹岀粨鍒欐姏鍑哄紓甯� - if (mesItemQt.Qt014 == true) - throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 宸插畬缁擄紝璇风‘璁わ紒"); - - var sql = @"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel, - ISNULL(A.qd007,0) FQty,ISNULL(A.qd008,0) SQty,ISNULL(A.qd007,0) - ISNULL(A.qd008,0) DSQty, - dbo.F_QX_GETRECODEPOTSE(A.itemId,'','','') as RecoKw - FROM MES_ITEM_QT_DATALL A - LEFT JOIN MES_ITEM_QT B ON A.qtGuid = B.guid - LEFT JOIN MES_ITEMS C ON A.itemId = C.item_id - WHERE B.qtck = @billNo AND (qt015 = 1 AND qt026 =1 AND QT029 = 1 AND qt032 = 1)"; - - var sqlParams = new List<SugarParameter> { - new("@billNo", query.billNo) + var parameters = new[] +{ + new SugarParameter("@billNo",query.billNo), + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) }; - - var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql, sqlParams); - - // 妫�鏌ラ��鏂欏崟鐨勫畬缁撶姸鎬�(Qt014)锛屽凡瀹岀粨鍒欐姏鍑哄紓甯� - if (womdabs.Count < 1) - throw new Exception($"璇ュ叾浠栧嚭搴撶敵璇峰崟 {p_bill_no} 鏈叏閮ㄥ鏍革紝璇风‘璁わ紒"); - - var DS_list = womdabs.Where(s => s.DSQty > 0).ToList(); - - var YS_list = womdabs.Where(s => s.SQty > 0).ToList(); - - var dto = new ProductionPickDto + try { - //daa001 = womdaa.Daa001, - //PlanNo = womcaa.Caa020, - items = DS_list, - Ysitems = YS_list - }; - - return dto; + List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( + "EXEC prc_pda_qtck_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 寰呮壂鐗╂枡 + var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 宸叉壂鐗╂枡 + return new + { + items = items, + ysitems = ysitems, + allList = blDetails, + }; + } + catch (Exception ex) + { + // 淇濈暀鍘熸湁寮傚父澶勭悊閫昏緫 + throw new Exception($"{ex.Message}"); + } } + /// <summary> + /// 鎵爜鍑哄簱 + /// </summary> + /// <param name="query"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> public (WarehouseQuery form, List<MesItemQtDatall> item, string message) OutScanBarcode( WarehouseQuery query) @@ -115,6 +122,9 @@ if (barcode == null) throw new Exception($"mes涓笉瀛樺湪姝ゆ潯鐮�,璇锋牳瀵癸紒{p_item_barcode}"); + + + // 鑾峰彇搴撳瓨淇℃伅 var stock = Db.Queryable<MesInvItemStocks>() @@ -149,11 +159,6 @@ if (mesItemQt == null) throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 涓嶅瓨鍦紝璇风‘璁わ紒"); - // 妫�鏌ヤ粨搴撴槸鍚︿竴鑷� - if (Convert.ToInt32(mesItemQt.Qt008) != stock.DepotId) - throw new Exception( - $"鎵爜鍑鸿揣浠撳簱id{mesItemQt.Qt008}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟stock.DepotId}涓嶄竴鑷达紝璇锋牳瀵癸紒"); - // 鑾峰彇鍑哄簱鍗曟槑缁� var qtDetail = Db.Queryable<MesItemQtDatall>() .Where(it => @@ -162,6 +167,19 @@ .First(); if (qtDetail == null) throw new Exception("鎵爜鐗╂枡闈炴湰娆″嚭搴撶敵璇风墿鏂欙紝璇锋牳瀵癸紒"); + + + if (mesItemQt.Qt014 == true) + throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 宸插畬缁擄紝璇风‘璁わ紒"); + + // 妫�鏌ヤ粨搴撴槸鍚︿竴鑷� + if (qtDetail.DepotId != stock.DepotId) + throw new Exception( + $"鎵爜鍑鸿揣浠撳簱id{qtDetail.DepotId}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟stock.DepotId}涓嶄竴鑷达紝璇锋牳瀵癸紒"); + + + + // 妫�鏌ュ墿浣欐暟閲� var remainingQty = (qtDetail.Qd007 ?? 0) - (qtDetail.Qd008 ?? 0); @@ -191,6 +209,8 @@ var message = $"璇风‘璁ゅ彂鏂欐暟閲忥紒锛佸凡甯﹀嚭婊¤冻鍏朵粬鍑哄簱鍗曠殑鍙戞枡鏁伴噺 {remainingQty} 纭鍚庤鐐瑰嚮鏉$爜鎷嗗垎"; + + throw new Exception($"鏉$爜鏁伴噺瓒呭嚭鍙戞枡鏁伴噺锛岃鎷嗗垎鍚庡啀鎵弿锛�"); query.itemNo = stock.ItemNo; query.Num = stock.Quantity; @@ -456,6 +476,12 @@ return (query, mesItemQtDatalls, mess); } + /// <summary> + /// 鎷嗗垎鏉$爜骞跺嚭搴� + /// </summary> + /// <param name="query"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> public (WarehouseQuery form, List<MesItemQtDatall> item, string message) PrintQtckBarcode( WarehouseQuery query) @@ -859,4 +885,140 @@ }); return (query, mesItemQtDatalls, message); } + + + /// <summary> + /// 鍏朵粬鍑哄簱锛堟柊锛夊瓨鍌ㄨ繃绋� + /// </summary> + /// <param name="query"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public ProductionPickDto ScanCode(WarehouseQuery query) + { + var _strMsg = ""; + var _intSum = ""; + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖"); + if (query.billNo.IsNullOrEmpty()) throw new Exception("鐢宠鍗曞彿涓嶅厑璁镐负绌�"); if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�"); + + using (var cmd = new SqlCommand("[prc_pda_QTCK]", conn)) + { + try + { + conn.Open(); + cmd.CommandType = CommandType.StoredProcedure; + SqlParameter[] parameters = + { + new("@outMsg", SqlDbType.NVarChar, 300), + new("@outSum", SqlDbType.NVarChar, 300), + new("@barcode_num", SqlDbType.NVarChar, 300), + new("@split_num", SqlDbType.NVarChar, 300), + new("@c_User", query.userName), + new("@p_biLL_no", query.billNo), + new("@p_item_barcode", query.barcode) + }; + parameters[0].Direction = ParameterDirection.Output; + parameters[1].Direction = ParameterDirection.Output; + parameters[2].Direction = ParameterDirection.Output; + parameters[3].Direction = ParameterDirection.Output; + foreach (var parameter in parameters) + cmd.Parameters.Add(parameter); + cmd.ExecuteNonQuery(); + _strMsg = parameters[0].Value.ToString(); + _intSum = parameters[1].Value.ToString(); + + var barcodeNum = parameters[2].Value.ToString(); + var splitNum = parameters[3].Value.ToString(); + + var result = Convert.ToInt32(_intSum); + if (result <= 0) throw new Exception(_strMsg); + + var dto = new ProductionPickDto + { + daa001 = query.billNo, + barcodeNum = barcodeNum, + splitNum = splitNum, + barcode = query.barcode, + result = result.ToString() + }; + + return dto; + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + finally + { + conn.Close(); + } + } + } + } + + + public ProductionPickDto ScanCodeCF(WarehouseQuery query) + { + if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖"); + if (query.billNo.IsNullOrEmpty()) throw new Exception("鐢宠鍗曞彿涓嶅厑璁镐负绌�"); + if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�"); + + if (query.Num is null or 0) throw new Exception("鏉$爜鎷嗗垎鏁颁笉鍏佽涓虹┖鎴栬�呬负0"); + + var _strMsg = ""; + var _intSum = ""; + var _cfBar = "";//鎷嗗垎鍚庢潯鐮� + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + using (var cmd = new SqlCommand("[prc_pda_QTCK_CF]", conn)) + { + try + { + conn.Open(); + cmd.CommandType = CommandType.StoredProcedure; + SqlParameter[] parameters = + { + new("@outMsg", SqlDbType.NVarChar, 2000), + new("@outSum", SqlDbType.NVarChar, 300), + new("@outCfBar", SqlDbType.NVarChar, 300), + new("@c_User", query.userName), + new("@p_biLL_no", query.billNo), + new("@p_item_barcode", query.barcode), + new("@num", query.Num) + }; + parameters[0].Direction = ParameterDirection.Output; + parameters[1].Direction = ParameterDirection.Output; + parameters[2].Direction = ParameterDirection.Output; + foreach (var parameter in parameters) + cmd.Parameters.Add(parameter); + cmd.ExecuteNonQuery(); + _strMsg = parameters[0].Value.ToString(); + _intSum = parameters[1].Value.ToString(); + _cfBar = parameters[2].Value.ToString(); + + + var result = Convert.ToInt32(_intSum); + if (result <= 0) throw new Exception(_strMsg); + + var dto = new ProductionPickDto + { + daa001 = query.billNo, + barcode = query.barcode,//鍘熸潯鐮� + cfBarcode = _cfBar//鎷嗗垎鍚庢潯鐮� + }; + + return dto; + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + finally + { + conn.Close(); + } + } + } + } } \ No newline at end of file diff --git a/service/Warehouse/MesItemQtrkManager.cs b/service/Warehouse/MesItemQtrkManager.cs index 9eb138c..9443399 100644 --- a/service/Warehouse/MesItemQtrkManager.cs +++ b/service/Warehouse/MesItemQtrkManager.cs @@ -10,61 +10,71 @@ public class MesItemQtrkManager : Repository<MesItemQtrk> { - public List<string> GetQtckList() + public dynamic GetQtckList(dynamic RequestInfo) { - //return Db.Queryable<MesItemQtrk>() - // .Where(x => (x.Qt015 ?? 0) == 1 && (x.Qt014 ?? 0) == 0) - // .Select(x => x.Qtck) - // .ToList(); + var orgId = RequestInfo.OrgId; - const string sql = @"SELECT qtck - FROM MES_ITEM_QTRK - WHERE QT015 = 1 AND QT028 = 1 AND QT032 = 1 - AND QT014 = 0 "; + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); - return Db.Ado.SqlQuery<string>(sql); - } - - public ProductionPickDto GetQtckDetailList(WarehouseQuery query) - { - // 鍏宠仈鏌ヨ鐗╂枡琛ㄣ�佺墿鏂欐槑缁嗚〃鍜岀墿鏂欏熀纭�淇℃伅琛� - if (string.IsNullOrEmpty(query.billNo)) throw new Exception("鐢宠鍗曞彿涓虹┖"); - - var mesInvItemOuts = base.GetSingle(it => it.Qtck == query.billNo); - if (mesInvItemOuts == null) throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曚笉瀛樺湪"); - - var sql = @"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel, - ISNULL(A.qd007,0) FQty,ISNULL(A.qd008,0) SQty,ISNULL(A.qd007,0) - ISNULL(A.qd008,0) DSQty - FROM MES_ITEM_QTRR_DETAIL A - LEFT JOIN MES_ITEM_QTRK B ON A.qtrkGuid = B.guid - LEFT JOIN MES_ITEMS C ON A.itemId = C.item_id - WHERE B.qtck = @billNo AND QT015 = 1 AND QT028 = 1 AND QT032 = 1 AND QT014 = 0 "; - - var sqlParams = new List<SugarParameter> { - new("@billNo", query.billNo) - }; - - var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql, sqlParams); - - if (womdabs.Count < 1) - throw new Exception($"璇ュ叾浠栧叆搴撶敵璇峰崟 {query.billNo} 鏈叏閮ㄥ鏍告垨宸插畬缁擄紝璇风‘璁わ紒"); - - var DS_list = womdabs.Where(s => s.DSQty > 0).ToList(); - - var YS_list = womdabs.Where(s => s.SQty > 0).ToList(); - - var dto = new ProductionPickDto + // 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� + var parameters = new[] { - //daa001 = womdaa.Daa001, - //PlanNo = womcaa.Caa020, - items = DS_list, - Ysitems = YS_list + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) }; - - return dto; + try + { + // 杩斿洖鍗曞彿瀛楃涓插垪琛� + var blDetails = Db.Ado.SqlQuery<string>( + "EXEC prc_pda_qtrk_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + return blDetails; + } + catch (Exception ex) + { + throw new Exception($"{ex.Message}"); + } } - public string ScanInDepotsQT(WarehouseQuery query) + public dynamic GetQtckDetailList(dynamic query, dynamic RequestInfo) + { + var orgId = RequestInfo.OrgId; + + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); + + var parameters = new[] +{ + new SugarParameter("@billNo",query.billNo), + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + try + { + List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( + "EXEC prc_pda_qtrk_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 寰呮壂鐗╂枡 + var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 宸叉壂鐗╂枡 + return new + { + items = items, + ysitems = ysitems + }; + } + catch (Exception ex) + { + // 淇濈暀鍘熸湁寮傚父澶勭悊閫昏緫 + throw new Exception($"{ex.Message}"); + } + } + + public dynamic ScanInDepotsQT(WarehouseQuery query) { var sectionCode = query.sectionCode; var billNo = query.billNo; @@ -72,31 +82,24 @@ // 1. 楠岃瘉搴撲綅鏉$爜鏄惁涓虹┖ if (string.IsNullOrEmpty(sectionCode)) throw new Exception("璇锋壂搴撲綅鏉$爜锛�"); - // 2. 鏌ヨ搴撲綅瀵瑰簲鐨勪粨搴撶紪鐮� - var depotId = Db.Queryable<MesDepotSections, MesDepots>( - (a, b) => new JoinQueryInfos( - JoinType.Inner, a.DepotGuid == b.Guid)) - .Where((a, b) => a.DepotSectionCode == sectionCode) - .Select((a, b) => b.DepotId) - .First(); + var sqlParams = new List<SugarParameter> { new("@sectionCode", sectionCode) }; - if (depotId == null) + var sql2 = @" SELECT TOP 1 b.depot_code, + b.depot_id, + B.FSubsidiary, + B.depot_name + FROM MES_DEPOT_SECTIONS a + INNER JOIN + MES_DEPOTS b ON a.depot_guid = b.Guid + WHERE a.depot_section_code = @sectionCode;"; + + var depotInfo = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).First(); + + if (depotInfo is null) throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒"); - // 3. 鏌ヨ鐢宠鍗曞搴旂殑浠撳簱 - var qtrk = Db.Queryable<MesItemQtrk>() - .Where(x => x.Qtck == billNo) - .Select(x => x.Qt008) - .First(); - - if (qtrk == null) throw new Exception($"搴撲綅缂栫爜 {sectionCode} 涓嶅瓨鍦紝璇风‘璁わ紒"); - - // 4. 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱 - if (depotId != Convert.ToInt32(qtrk)) - throw new Exception($"鎵爜搴撲綅 {sectionCode} 涓嶅睘浜庣敵璇蜂粨搴�!"); - // 5. 杩斿洖鎴愬姛淇℃伅 - return $"浠撳簱锛歿qtrk} 搴撲綅锛歿sectionCode}"; + return depotInfo; } public (WarehouseQuery form, List<MesItemQtrrDetail> item) @@ -127,6 +130,20 @@ var c_depot_code = depotInfo.DepotCode; var c_depot_id = depotInfo.DepotId; + + var sqlParams = new List<SugarParameter> { new("@barcode", p_item_barcode), new("@billNo", p_bill_no) }; + +// var sql1 = @" SELECT TOP 1 A.rkCkId +//FROM MES_QA_ITEMS_DETECT_01 A +// LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_id = B.ITEM_ID +//WHERE order_type = '鍏跺畠鍏ュ簱妫�' +// AND A.lot_no = @billNo +// AND ITEM_BARCODE = @barcode "; + +// var appDepotInfo = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams).First(); + + + var mesDepost = Db.Queryable<MesDepots>() .Where(s => s.DepotId == c_depot_id).First(); @@ -164,9 +181,30 @@ if (qtrk == null) throw new Exception("鍏朵粬鍏ュ簱鐢宠鍗曚笉瀛樺湪锛�"); - // 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱 - if (c_depot_id != Convert.ToInt32(qtrk.Qt008)) - throw new Exception($"鎵爜搴撲綅 {p_section_code} 涓嶅睘浜庣敵璇蜂粨搴�!"); + + if (qtrk.Qt008 != c_depot_id.ToString()) + throw new Exception($"璇� {p_section_code} 瀵瑰簲鐨勪粨搴� 涓� 妫�楠屽垽瀹氱殑鍏ュ簱浠撳簱涓嶄竴鑷达紝璇风‘璁わ紒"); + + var sql = @"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel, + ISNULL(A.qd007,0) FQty,ISNULL(A.qd008,0) SQty,ISNULL(A.qd007,0) - ISNULL(A.qd008,0) DSQty + FROM MES_ITEM_QTRR_DETAIL A + LEFT JOIN MES_ITEM_QTRK B ON A.qtrkGuid = B.guid + LEFT JOIN MES_ITEMS C ON A.itemId = C.item_id + WHERE B.qtck = @billNo AND QT015 = 1 AND QT028 = 1 AND QT032 = 1 AND QT014 = 0 "; + //AND QT014 = 0 + + var sqlParams1 = new List<SugarParameter> { + new("@billNo", p_bill_no) + }; + + var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql, sqlParams1); + + if (womdabs.Count < 1) + throw new Exception($"璇ュ叾浠栧叆搴撶敵璇峰崟 {query.billNo} 鏈叏閮ㄥ鏍告垨宸插畬缁擄紝璇风‘璁わ紒"); + + //// 楠岃瘉搴撲綅鏄惁灞炰簬鐢宠浠撳簱 + //if (c_depot_id != Convert.ToInt32(qtrk.Qt008)) + // throw new Exception($"鎵爜搴撲綅 {p_section_code} 涓嶅睘浜庣敵璇蜂粨搴�!"); // 6. 鏌ヨ鐢宠鍗曟槑缁� var detail = Db.Queryable<MesItemQtrrDetail>() diff --git a/service/Warehouse/MesXsckManager.cs b/service/Warehouse/MesXsckManager.cs index d5da216..df9f864 100644 --- a/service/Warehouse/MesXsckManager.cs +++ b/service/Warehouse/MesXsckManager.cs @@ -20,57 +20,82 @@ /// 鑾峰彇鐢熶骇鍙戣揣閫氱煡鍗曞彿鍒楄〃 /// </summary> /// <returns>鍙戣揣閫氱煡鍗曞彿鍒楄〃</returns> - public List<string> GetFHTZBillNo(WarehouseQuery query) + public dynamic GetFHTZBillNo(dynamic query, dynamic RequestInfo) { - var list = Db.Queryable<SalesDeliver>() - .Where(s => (s.FApproverStatus ?? false) == true) - .Select(s => s.BillNo) - .ToList(); - return list; + var orgId = RequestInfo.OrgId; + + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); + + // 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� + var parameters = new[] + { + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + try + { + // 杩斿洖鍗曞彿瀛楃涓插垪琛℅et_Qt_ck_List + var blDetails = Db.Ado.SqlQuery<string>( + "EXEC prc_pda_xsck_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + return blDetails; + } + catch (Exception ex) + { + throw new Exception($"{ex.Message}"); + } } /// <summary> /// 鏍规嵁鍙戣揣閫氱煡鍗曡幏鍙栧搴斾唬鍙戣揣鏄庣粏 prc_rf_pda_scan_zout_showbl /// </summary> /// <returns>鍙戣揣閫氱煡鍗曟槑缁嗗垪琛�</returns> - public List<ItemDetailModel> GetMesItemFHTZetailByBillNo( - WarehouseQuery query) + public dynamic GetMesItemFHTZetailByBillNo(dynamic query, dynamic RequestInfo) { if (string.IsNullOrEmpty(query.billNo)) throw new Exception("璇烽�夊崟鎹彿锛�"); - // 妫�鏌ュ彂璐ч�氱煡鍗曟槸鍚﹀瓨鍦ㄤ笖瀹℃牳 - var mesItem = Db.Queryable<SalesDeliver>() - .Where(a => a.BillNo == query.billNo && a.FApproverStatus == true) - .First(); + if (query == null) + throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull"); - if (mesItem == null) - throw new Exception("鍗曟嵁鍙蜂笉瀛樺湪鎴栨湭瀹℃牳锛�"); + if (string.IsNullOrEmpty(query.billNo?.ToString())) + throw new ArgumentException("鍗曟嵁鍙蜂笉鑳戒负绌�", nameof(query.billNo)); - if (mesItem.FinishStatus == true) - throw new Exception("鍗曟嵁鍙峰凡瀹岀粨锛�"); + var orgId = RequestInfo.OrgId; + + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); // 鑾峰彇鏈畬鎴愮殑鍙戣揣閫氱煡鍗曟槑缁� - var blDetails = Db.Queryable<SalesDeliver, SalesDeliverDetail, SalesOrderDetail,MesItems>((a, b, c, d) => - new JoinQueryInfos(JoinType.Left, a.Id == b.Pid, - JoinType.Left, b.SalesDetailId == c.Id, - JoinType.Left, c.MaterialId == d.ItemId.ToString())) - .Where((a, b) => a.BillNo == query.billNo - && (b.FMustQty ?? 0) - (b.FRealQty ?? 0) > 0) - .Select((a, b, c, d) => new ItemDetailModel + var parameters = new[] +{ + new SugarParameter("@billNo", query.billNo), + new SugarParameter("@pi_orgId",orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + try + { + List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( + "EXEC prc_pda_xsck_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 寰呮壂鐗╂枡 + var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 宸叉壂鐗╂枡 + return new { - ItemNo = d.ItemNo, - ItemName = d.ItemName, - ItemModel = d.ItemModel, - FQty = b.FMustQty, - SQty = b.FRealQty, - FMaterialId = d.ItemId.ToString(), - Id = b.Id.ToString() - - }) - .ToList(); - - return blDetails; + items = items, + ysitems = ysitems + }; + } + catch (Exception ex) + { + // 淇濈暀鍘熸湁寮傚父澶勭悊閫昏緫 + throw new Exception($"{ex.Message}"); + } } /// <summary> diff --git a/service/Warehouse/MesXsthManager.cs b/service/Warehouse/MesXsthManager.cs index 56a163f..27d063f 100644 --- a/service/Warehouse/MesXsthManager.cs +++ b/service/Warehouse/MesXsthManager.cs @@ -19,13 +19,33 @@ /// 鑾峰彇閿�鍞��璐х敵璇峰垪琛� /// </summary> /// <returns>閿�鍞��璐х敵璇峰垪琛�</returns> - public List<string> GetXsthBillNo(WarehouseQuery query) + public dynamic GetXsthBillNo(WarehouseQuery query,dynamic RequestInfo) { - var list = Db.Queryable<SalesReturnNotice>() - .Where(s => s.CheckStatus == true) - .Select(s => s.BillNo).ToList(); + var orgId = RequestInfo.OrgId; - return list; + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); + + // 鑾峰彇鏈畬鎴愮殑閫�鏂欏崟鍙峰垪琛� + var parameters = new[] + { + new SugarParameter("@pi_orgId", orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + try + { + // 杩斿洖鍗曞彿瀛楃涓插垪琛� + var blDetails = Db.Ado.SqlQuery<string>( + "EXEC prc_pda_xsth_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + return blDetails; + } + catch (Exception ex) + { + throw new Exception($"{ex.Message}"); + } } /// <summary> @@ -33,35 +53,50 @@ /// </summary> /// <param name="query">浠撳簱鏌ヨ鍙傛暟</param> /// <returns>鐗╂枡鏄庣粏鍒楄〃</returns> - public List<ItemDetailModel> GetMesItemDetailByBillNo( - WarehouseQuery query) + public dynamic GetMesItemDetailByBillNo(dynamic query, dynamic RequestInfo) { - // 鍏宠仈鏌ヨ鐗╂枡琛ㄣ�佺墿鏂欐槑缁嗚〃鍜岀墿鏂欏熀纭�淇℃伅琛� - var mesItemTblDetails = Db - .Queryable<SalesReturnNotice, SalesReturnNoticeDetail, MesItems>( - (a, b, c) => new JoinQueryInfos( - JoinType.Left, - a.Id == b.Pid, - JoinType.Left, - b.MaterialId == c.Id.ToString()) - ).Where((a, b, c) => a.BillNo == query.billNo && a.CheckStatus == true) - .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel + if (string.IsNullOrEmpty(query.billNo)) + throw new Exception("璇烽�夊崟鎹彿锛�"); + + if (query == null) + throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull"); + + if (string.IsNullOrEmpty(query.billNo?.ToString())) + throw new ArgumentException("鍗曟嵁鍙蜂笉鑳戒负绌�", nameof(query.billNo)); + + var orgId = RequestInfo.OrgId; + + if (orgId == null) + throw new Exception("缁勭粐涓嶅瓨鍦紒"); + + // 鑾峰彇鏈畬鎴愮殑閿�鍞��璐ф槑缁� + var parameters = new[] +{ + new SugarParameter("@billNo", query.billNo), + new SugarParameter("@pi_orgId",orgId), + new SugarParameter("@inP1", null), + new SugarParameter("@inP2", null), + new SugarParameter("@inP3", null), + new SugarParameter("@inP4", null) + }; + try + { + List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( + "EXEC prc_pda_xsth_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); + var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 寰呮壂鐗╂枡 + var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 宸叉壂鐗╂枡 + return new { - ItemNo = c.ItemNo, - ItemName = c.ItemName, - ItemModel = c.ItemModel, - FQty = b.SqQty, // 鐢宠鏁伴噺 - SQty = b.YsQty, // 宸叉壂鏁伴噺 - Pid = b.Pid.ToString(), - FMaterialId = b.MaterialId, - Id = b.Id.ToString() - }).ToList(); - - // 绛涢�夊嚭寰呴��鏁伴噺澶т簬宸查��鏁伴噺鐨勮褰� - //var itemTblDetails = mesItemTblDetails - // .Where(s => (s.Tld005 ?? 0) - (s.Tld006 ?? 0) > 0).ToList(); - - return mesItemTblDetails; + items = items, + ysitems = ysitems, + Count = items.Count + ysitems.Count + }; + } + catch (Exception ex) + { + // 淇濈暀鍘熸湁寮傚父澶勭悊閫昏緫 + throw new Exception($"{ex.Message}"); + } } /// <summary> diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs index 4522f26..c5dff00 100644 --- a/service/Wom/WomdaaManager.cs +++ b/service/Wom/WomdaaManager.cs @@ -192,8 +192,10 @@ FROM WOMDAB B LEFT JOIN WOMDAA A ON A.guid = B.daaGuid LEFT JOIN MES_ITEMS C ON B.dab003 = C.item_id + LEFT JOIN MES_BACK_FLASH F ON b.dab003 = F.ItemId LEFT JOIN WOMCAB D ON B.erpid = D.ERPID - WHERE daa001 = '{0}' AND F_WPVT_BASE_QTR='{1}' AND ISSUE_TYPE = 1 ORDER BY DAB002", query.daa001,query.userName); + left join SYS_USER e on e.sid = c.F_WPVT_BASE_QTR + WHERE daa001 = '{0}' AND e.account='{1}' AND ISSUE_TYPE = 1 AND (F.ItemId is null OR F.checkStatus<>1) ORDER BY DAB002", query.daa001,query.userName); var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql); diff --git a/service/Wom/WomdaahbManager.cs b/service/Wom/WomdaahbManager.cs index 4c4edc2..4540be1 100644 --- a/service/Wom/WomdaahbManager.cs +++ b/service/Wom/WomdaahbManager.cs @@ -238,7 +238,8 @@ left join mes_items m on M.ID = b.dab003 left join MES_UNIT u on u.id = ahbl.UNIT left join [dbo].[v_caa] v on v.guid = a.guid - WHERE ahb.daahb001 = '{0}' AND D.ISSUE_TYPE = 1 + LEFT JOIN MES_BACK_FLASH F ON b.dab003 = F.ItemId + WHERE ahb.daahb001 = '{0}' AND D.ISSUE_TYPE = 1 AND (F.ItemId is null OR F.checkStatus<>1) group by m.item_no ORDER BY m.item_no ", query.hbNo); @@ -983,7 +984,7 @@ C.item_no, C.item_name, C.item_model -FROM MES_INV_ITEM_OUTS A + FROM MES_INV_ITEM_OUTS A LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B ON A.GUID = B.ITEM_OUT_ID LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id LEFT JOIN SYS_USER D ON A.create_by = D.ACCOUNT -- Gitblit v1.9.3