From 43021e27282a22f25b51d499333e73225266e9c3 Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期四, 14 八月 2025 17:34:50 +0800
Subject: [PATCH] 领料模块
---
service/Warehouse/TransferOutManager.cs | 355 +++++--
service/Warehouse/MesItemBlManager.cs | 114 +-
entity/Womdaahb.cs | 422 +++++++++
Dto/service/ProductionPickDto.cs | 1
service/Wom/WomdaahbManager.cs | 1090 ++++++++++++++++++++++++
Controllers/Warehouse/TransferOutController.cs | 50
Controllers/Wom/WomdaahbController.cs | 587 +++++++++++++
7 files changed, 2,456 insertions(+), 163 deletions(-)
diff --git a/Controllers/Warehouse/TransferOutController.cs b/Controllers/Warehouse/TransferOutController.cs
index 314ce0f..e4a02de 100644
--- a/Controllers/Warehouse/TransferOutController.cs
+++ b/Controllers/Warehouse/TransferOutController.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;
@@ -14,6 +15,8 @@
public class TransferOutController : ControllerBase
{
private readonly TransferOutManager _manager = new();
+
+ private readonly MesPrintMangeer _mCf = new();
#region 鍩虹CRUD
@@ -166,6 +169,30 @@
}
}
+
+ [HttpPost("GetTransferInDetailListByBillNo")]
+ public ResponseResult GetTransferInDetailListByBillNo(
+ [FromBody] WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList =
+ _manager.GetTransferInDetailListByBillNo(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+
/// <summary>
/// 鎵弿鏉$爜杩涜璋冩嫧鍑哄簱澶勭悊
/// </summary>
@@ -197,9 +224,16 @@
try
{
dynamic resultInfos = new ExpandoObject();
- var (form, items) = _manager.ScanMoveBarcode(query);
- resultInfos.form = form;
- resultInfos.items = items;
+ resultInfos.tbBillList = _manager.ScanMoveBarcode(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,
@@ -236,14 +270,16 @@
/// </remarks>
/// <response code="200">鍒嗗壊鎴愬姛</response>
/// <response code="400">鍒嗗壊澶辫触锛岃繑鍥炲叿浣撻敊璇俊鎭�</response>
- [HttpPost("SplitBarcode")]
- public ResponseResult SplitBarcode([FromBody] WarehouseQuery query)
+ [HttpPost("ScanCodeCF")]
+ public ResponseResult ScanCodeCF(WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
- var message = _manager.SplitBarcode(query);
- resultInfos.tbBillList = message;
+ 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,
diff --git a/Controllers/Wom/WomdaahbController.cs b/Controllers/Wom/WomdaahbController.cs
new file mode 100644
index 0000000..779ca5a
--- /dev/null
+++ b/Controllers/Wom/WomdaahbController.cs
@@ -0,0 +1,587 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.service.@base;
+using NewPdaSqlServer.service.Wom;
+using NewPdaSqlServer.util;
+
+namespace NewPdaSqlServer.Controllers.Wom;
+
+[ApiController]
+[Route("api/[controller]")]
+public class WomdaaController : ControllerBase
+{
+ private readonly WomdaaManager m = new();
+ private readonly MesPrintMangeer _mCf = new();
+
+ #region 鐢熶骇棰嗘枡
+
+ //GetProductionPickDaa001
+ /// <summary>
+ /// 妯$硦鏌ヨ宸ュ崟鍙峰苟杩斿洖
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetProductionPickDaa001")]
+ public ResponseResult GetProductionPickDaa001(WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetProductionPickDaa001(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ //GetItemsByDaa001
+ /// <summary>
+ /// 鏍规嵁宸ュ崟鍙疯幏鍙栦唬棰嗙墿鏂欐槑缁�
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetItemsByDaa001")]
+ public ResponseResult GetItemsByDaa001(WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetItemsByDaa001(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ //ScanCode
+ [HttpPost("ScanCode")]
+ public ResponseResult ScanCode(WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.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,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ //ScanCodeCF
+ [HttpPost("ScanCodeCF")]
+ public ResponseResult ScanCodeCF(WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = new ExpandoObject();
+ //resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query);
+ var scanResult = m.ScanCodeCF(query);
+ resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎵�鏈�
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetList")]
+ public ResponseResult GetList()
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetList();
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+
+ /// <summary>
+ /// 鏍规嵁涓婚敭鑾峰彇
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetById")]
+ public ResponseResult GetById(int id)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetById(id);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鏍规嵁涓婚敭鍒犻櫎
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("DeleteByIds")]
+ public ResponseResult DeleteByIds([FromBody] object[] ids)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.DeleteByIds(ids);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 娣诲姞
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("Insert")]
+ public ResponseResult Add([FromBody] Womdaa data)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.Insert(data);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 娣诲姞杩斿洖鑷
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("InsertReturnIdentity")]
+ public ResponseResult InsertReturnIdentity([FromBody] Womdaa data)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.InsertReturnIdentity(data);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+
+ /// <summary>
+ /// 淇敼
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("Update")]
+ public ResponseResult Update([FromBody] Womdaa data)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.Update(data);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+ #endregion
+
+ #region 鐜板満绠$悊
+
+
+ /// <summary>
+ /// 鎵弿娉ㄥ鐮侊紝鑾峰彇宸ュ崟鍜屾潯鐮佷俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("getZsBarInfo")]
+ public ResponseResult getZsBarInfo([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ // 鍏堝垵濮嬪寲tbBillList灞炴��
+ resultInfos.tbBillList = new ExpandoObject();
+ resultInfos.tbBillList.ZsBarInfo = m.getZsBarInfo(query);
+ resultInfos.tbBillList.Traceability = m.getTraceability(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+
+ /// <summary>
+ /// 浜у搧缁戝畾锛岃拷婧爜鍜屾祦姘寸爜缁戝畾
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("ProductBinding")]
+ public ResponseResult ProductBinding([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ // 鍏堝垵濮嬪寲tbBillList灞炴��
+ resultInfos.tbBillList = new ExpandoObject();
+ resultInfos.tbBillList = m.ProductBinding(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍗℃澘淇℃伅
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("getKbBarInfo")]
+ public ResponseResult getKbBarInfo([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ // 鍏堝垵濮嬪寲tbBillList灞炴��
+ resultInfos.tbBillList = new ExpandoObject();
+ resultInfos.tbBillList.KbBarInfo = m.getKbBarInfo(query);
+ resultInfos.tbBillList.KbBarMxInfo = m.getKbBarMxInfo(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇绠辩爜淇℃伅
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("getXBarInfo")]
+ public ResponseResult getXBarInfo([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ // 鍏堝垵濮嬪寲tbBillList灞炴��
+ resultInfos.tbBillList = new ExpandoObject();
+ resultInfos.tbBillList.XBarInfo = m.getXBarInfo(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 缁戝畾绠辩爜涓庢墭鏉跨爜
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("submitAllChecked")]
+ public ResponseResult submitAllChecked([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ // 鍏堝垵濮嬪寲tbBillList灞炴��
+ resultInfos.tbBillList = new ExpandoObject();
+ resultInfos.tbBillList = m.submitAllChecked(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鏍稿閫佹
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("submitInspection")]
+ public ResponseResult submitInspection([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ // 鍏堝垵濮嬪寲tbBillList灞炴��
+ resultInfos.tbBillList = new ExpandoObject();
+ resultInfos.tbBillList = m.SubmitKbInspection(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ //GetItemsXcsl
+ /// <summary>
+ /// 鏍规嵁宸ュ崟鍙疯幏鍙栧緟鏀舵枡鐗╂枡鏄庣粏
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetItemsXcsl")]
+ public ResponseResult GetItemsXcsl(WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetItemsXcsl(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+
+ //GetItemsXcsl
+ /// <summary>
+ /// 鐗╂枡鏉$爜鏀舵枡
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("ScanXcsl")]
+ public ResponseResult ScanXcsl(dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.ScanXcsl(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ //GetItemsXcsl
+ /// <summary>
+ /// 鏍规嵁绾夸綋鑾峰彇浠櫒閲嶉噺
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetWeightByXt")]
+ public ResponseResult GetWeightByXt(dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetWeightByXt(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+
+ /// <summary>
+ /// 鐜板満鏀舵枡鑾峰彇鍙�夊伐鍗曚俊鎭�
+ /// </summary>
+ /// <param name="query"></param>
+ /// <returns></returns>
+ [HttpPost("GetXcslDaa")]
+ public ResponseResult GetXcslDaa([FromBody] dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetXcslDaa(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+
+ //GetItemsXctl
+ /// <summary>
+ /// 鏍规嵁宸ュ崟鍙疯幏鍙栧緟鎶曟枡鐗╂枡鏄庣粏
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("GetItemsXctl")]
+ public ResponseResult GetItemsXctl(WarehouseQuery query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetItemsXctl(query);
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ //GetItemsXcsl
+ /// <summary>
+ /// 鐗╂枡鏉$爜鎶曟枡
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost("ScanXctl")]
+ public ResponseResult ScanXctl(dynamic query)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.ScanXctl(query);
+ 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/Dto/service/ProductionPickDto.cs b/Dto/service/ProductionPickDto.cs
index 935b3a2..518aaaf 100644
--- a/Dto/service/ProductionPickDto.cs
+++ b/Dto/service/ProductionPickDto.cs
@@ -6,6 +6,7 @@
public class ProductionPickDto
{
public string? ItemModel { get; set; }
+ public string? itemNo { get; set; }
public string? PlanNo { get; set; }
public string? daa001 { get; set; }
diff --git a/entity/Womdaahb.cs b/entity/Womdaahb.cs
new file mode 100644
index 0000000..edf9b93
--- /dev/null
+++ b/entity/Womdaahb.cs
@@ -0,0 +1,422 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+/// </summary>
+[SugarTable("WOMDAAHB")]
+public class Womdaahb
+{
+ /// <summary>
+ /// 榛樿鍊�: (newid())
+ /// </summary>
+ [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
+ public Guid Guid { get; set; }
+
+ /// <summary>
+ /// </summary>
+ [SugarColumn(ColumnName = "pbaGuid")]
+ public Guid? PbaGuid { get; set; }
+
+ /// <summary>
+ /// </summary>
+ [SugarColumn(ColumnName = "caaGuid")]
+ public Guid? CaaGuid { get; set; }
+
+ ///// <summary>
+ ///// 鑷鍒�
+ ///// </summary>
+ //[SugarColumn(ColumnName = "id")]
+ //public int? Id { get; set; }
+
+ ///// <summary>
+ ///// 鎺掍骇ID
+ ///// </summary>
+ //[SugarColumn(ColumnName = "pid")]
+ //public int? Pid { get; set; }
+
+ /// <summary>
+ /// 鍗曞彿
+ /// </summary>
+ [SugarColumn(ColumnName = "daa001")]
+ public string? Daa001 { get; set; }
+
+ /// <summary>
+ /// 浜у搧ID
+ /// </summary>
+ [SugarColumn(ColumnName = "daa002")]
+ public string? Daa002 { get; set; }
+
+ /// <summary>
+ /// 浜у搧鍚嶇О
+ /// </summary>
+ [SugarColumn(ColumnName = "daa003")]
+ public string? Daa003 { get; set; }
+
+ /// <summary>
+ /// 浜у搧瑙勬牸
+ /// </summary>
+ [SugarColumn(ColumnName = "daa004")]
+ public string? Daa004 { get; set; }
+
+ /// <summary>
+ /// 鍗曚綅
+ /// </summary>
+ [SugarColumn(ColumnName = "daa005")]
+ public string? Daa005 { get; set; }
+
+ /// <summary>
+ /// ERP棰勮寮�宸ユ椂闂�
+ /// </summary>
+ [SugarColumn(ColumnName = "daa006")]
+ public DateTime? Daa006 { get; set; }
+
+ /// <summary>
+ /// ERP棰勮瀹屽伐鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "daa007")]
+ public DateTime? Daa007 { get; set; }
+
+ /// <summary>
+ /// 宸ュ崟鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "daa008")]
+ public int? Daa008 { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [SugarColumn(ColumnName = "daa009")]
+ public string? Daa009 { get; set; }
+
+ /// <summary>
+ /// 鍏ュ簱鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "daa010")]
+ public int? Daa010 { get; set; }
+
+ /// <summary>
+ /// 宸茬敓浜ч噺
+ /// </summary>
+ [SugarColumn(ColumnName = "daa011")]
+ public int? Daa011 { get; set; }
+
+ /// <summary>
+ /// 鎶ュ簾鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "daa012")]
+ public int? Daa012 { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔杞﹂棿
+ /// </summary>
+ [SugarColumn(ColumnName = "daa013")]
+ public string? Daa013 { get; set; }
+
+ /// <summary>
+ /// 鎶曟枡鍗曞崟鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "daa014")]
+ public string? Daa014 { get; set; }
+
+ /// <summary>
+ /// 鐢熶骇绾垮埆
+ /// </summary>
+ [SugarColumn(ColumnName = "daa015")]
+ public string? Daa015 { get; set; }
+
+ /// <summary>
+ /// 瀹為檯寮�宸ユ棩
+ /// </summary>
+ [SugarColumn(ColumnName = "daa016")]
+ public DateTime? Daa016 { get; set; }
+
+ /// <summary>
+ /// 瀹為檯瀹屽伐鏃�
+ /// </summary>
+ [SugarColumn(ColumnName = "daa017")]
+ public DateTime? Daa017 { get; set; }
+
+ /// <summary>
+ /// 宸ュ崟鐘舵��
+ /// </summary>
+ [SugarColumn(ColumnName = "daa018")]
+ public string? Daa018 { get; set; }
+
+ /// <summary>
+ /// 榻愬鐘舵��
+ /// </summary>
+ [SugarColumn(ColumnName = "daa019")]
+ public string? Daa019 { get; set; }
+
+ /// <summary>
+ /// 瀹℃牳鐮�
+ /// </summary>
+ [SugarColumn(ColumnName = "fstatus")]
+ public int? Fstatus { get; set; }
+
+ /// <summary>
+ /// 瀹℃牳鏃ユ湡
+ /// </summary>
+ [SugarColumn(ColumnName = "check_date")]
+ public DateTime? CheckDate { get; set; }
+
+ /// <summary>
+ /// 瀹℃牳浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "check_user")]
+ public string? CheckUser { get; set; }
+
+ /// <summary>
+ /// 绾垮埆缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "daa020")]
+ public string? Daa020 { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍗曞崟鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "daa021")]
+ public string? Daa021 { get; set; }
+
+ /// <summary>
+ /// 閫氱煡澶囨枡锛�0-鏈�氱煡锛�1-閫氱煡
+ /// 榛樿鍊�: ((0))
+ /// </summary>
+ [SugarColumn(ColumnName = "daa022")]
+ public int? Daa022 { get; set; }
+
+ /// <summary>
+ /// 鐢熶骇搴忓彿
+ /// </summary>
+ [SugarColumn(ColumnName = "daa023")]
+ public int? Daa023 { get; set; }
+
+ /// <summary>
+ /// 鎺掍骇鏃ユ湡
+ /// </summary>
+ [SugarColumn(ColumnName = "daa024")]
+ public string? Daa024 { get; set; }
+
+ /// <summary>
+ /// 棣栦欢鏄惁妫�楠�1-妫�楠岋紝0鏈楠�
+ /// </summary>
+ [SugarColumn(ColumnName = "daa025")]
+ public string? Daa025 { get; set; }
+
+ /// <summary>
+ /// 棣栦欢妫�楠岀粨鏋�
+ /// </summary>
+ [SugarColumn(ColumnName = "daa026")]
+ public string? Daa026 { get; set; }
+
+ /// <summary>
+ /// 宸叉姤妫�锛�0-鏈姤妫�锛�1-宸叉姤妫�
+ /// </summary>
+ [SugarColumn(ColumnName = "is_reportcheck")]
+ public int? IsReportcheck { get; set; }
+
+ /// <summary>
+ /// 鎶ユ浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "usname")]
+ public string? Usname { get; set; }
+
+ /// <summary>
+ /// 鎶ユ鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "reporttime")]
+ public DateTime? Reporttime { get; set; }
+
+ /// <summary>
+ /// 鏈哄彴缂栧彿
+ /// </summary>
+ [SugarColumn(ColumnName = "machine_no")]
+ public string? MachineNo { get; set; }
+
+ /// <summary>
+ /// 澶囨枡瀹屾垚1-瀹屾垚锛�0鏈畬鎴�
+ /// </summary>
+ [SugarColumn(ColumnName = "daa027")]
+ public int? Daa027 { get; set; }
+
+ /// <summary>
+ /// 澶囨枡瀹屾垚鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "daa028")]
+ public string? Daa028 { get; set; }
+
+ /// <summary>
+ /// 鏍囧噯宸ユ椂
+ /// </summary>
+ [SugarColumn(ColumnName = "prod_hour")]
+ public int? ProdHour { get; set; }
+
+ /// <summary>
+ /// 鍗曚汉灏忔椂浜ц兘
+ /// </summary>
+ [SugarColumn(ColumnName = "person_hour_capacity")]
+ public int? PersonHourCapacity { get; set; }
+
+ /// <summary>
+ /// 鐞嗚鏍囦骇
+ /// </summary>
+ [SugarColumn(ColumnName = "the_capacity")]
+ public int? TheCapacity { get; set; }
+
+ /// <summary>
+ /// 璁″垝鐢ㄤ汉鏁�
+ /// </summary>
+ [SugarColumn(ColumnName = "plan_personnel")]
+ public int? PlanPersonnel { get; set; }
+
+ /// <summary>
+ /// 璁″垝鏍囧噯浜ц兘
+ /// </summary>
+ [SugarColumn(ColumnName = "plan_capacity")]
+ public int? PlanCapacity { get; set; }
+
+ /// <summary>
+ /// 鐞嗚鐢ㄦ椂/M
+ /// </summary>
+ [SugarColumn(ColumnName = "the_min")]
+ public int? TheMin { get; set; }
+
+ /// <summary>
+ /// 鐞嗚鐢ㄦ椂/H
+ /// </summary>
+ [SugarColumn(ColumnName = "the_hour")]
+ public int? TheHour { get; set; }
+
+ /// <summary>
+ /// 绾夸綋绫诲埆
+ /// </summary>
+ [SugarColumn(ColumnName = "line_type")]
+ public string? LineType { get; set; }
+
+ /// <summary>
+ /// 鏍囧噯浜烘暟
+ /// </summary>
+ [SugarColumn(ColumnName = "personnel")]
+ public int? Personnel { get; set; }
+
+ /// <summary>
+ /// 鎹㈢嚎鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "change_line_time")]
+ public int? ChangeLineTime { get; set; }
+
+ /// <summary>
+ /// 浼戞伅鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "rest_time")]
+ public int? RestTime { get; set; }
+
+ /// <summary>
+ /// 鎺掍骇搴忓彿
+ /// </summary>
+ [SugarColumn(ColumnName = "schedule_order")]
+ public int? ScheduleOrder { get; set; }
+
+ /// <summary>
+ /// MES棰勮寮�宸ユ椂闂�
+ /// </summary>
+ [SugarColumn(ColumnName = "mes_start_prod")]
+ public DateTime? MesStartProd { get; set; }
+
+ /// <summary>
+ /// MES棰勮瀹屽伐鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "mes_end_prod")]
+ public DateTime? MesEndProd { get; set; }
+
+ /// <summary>
+ /// 鎺掍骇鎺ㄩ�佹爣璇�
+ /// </summary>
+ [SugarColumn(ColumnName = "prodts")]
+ public int? Prodts { get; set; }
+
+ /// <summary>
+ /// 棰勮澶囨枡鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "prepare_time")]
+ public DateTime? PrepareTime { get; set; }
+
+ /// <summary>
+ /// 鎻掍欢鎶曞叆浜烘暟
+ /// </summary>
+ [SugarColumn(ColumnName = "cj_worker")]
+ public int? CjWorker { get; set; }
+
+ /// <summary>
+ /// 鎻掍欢璁″垝鎶曞叆浜烘暟
+ /// </summary>
+ [SugarColumn(ColumnName = "p_cj_worker")]
+ public int? PCjWorker { get; set; }
+
+ /// <summary>
+ /// 鎻掍欢鏃ヤ骇閲�
+ /// </summary>
+ [SugarColumn(ColumnName = "cj_daily_out")]
+ public int? CjDailyOut { get; set; }
+
+ /// <summary>
+ /// 鎻掍欢鏍囧噯宸ユ椂
+ /// </summary>
+ [SugarColumn(ColumnName = "cj_std_hour")]
+ public int? CjStdHour { get; set; }
+
+ /// <summary>
+ /// 閿$剨鎶曞叆浜烘暟
+ /// </summary>
+ [SugarColumn(ColumnName = "hx_worker")]
+ public int? HxWorker { get; set; }
+
+ /// <summary>
+ /// 閿$剨璁″垝鎶曞叆浜烘暟
+ /// </summary>
+ [SugarColumn(ColumnName = "p_hx_worker")]
+ public int? PHxWorker { get; set; }
+
+ /// <summary>
+ /// 閿$剨鏃ヤ骇閲�
+ /// </summary>
+ [SugarColumn(ColumnName = "hx_daily_out")]
+ public int? HxDailyOut { get; set; }
+
+ /// <summary>
+ /// 閿$剨鏍囧噯宸ユ椂
+ /// </summary>
+ [SugarColumn(ColumnName = "hx_std_hour")]
+ public int? HxStdHour { get; set; }
+
+ /// <summary>
+ /// 鎻掍欢鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "cj_num")]
+ public int? CjNum { get; set; }
+
+ /// <summary>
+ /// 瀹㈡埛
+ /// </summary>
+ [SugarColumn(ColumnName = "cust")]
+ public string? Cust { get; set; }
+
+ /// <summary>
+ /// 鏄惁棣栨
+ /// </summary>
+ [SugarColumn(ColumnName = "IS_SJ")]
+ public int? IsSj { get; set; }
+
+ /// <summary>
+ /// 浜у搧缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "daa029")]
+ public string? Daa029 { get; set; }
+
+ /// <summary>
+ /// 瀹為檯绾夸綋缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "sj_xt")]
+ public string? SjXt { get; set; }
+}
\ No newline at end of file
diff --git a/service/Warehouse/MesItemBlManager.cs b/service/Warehouse/MesItemBlManager.cs
index c9b5ff5..93e4d24 100644
--- a/service/Warehouse/MesItemBlManager.cs
+++ b/service/Warehouse/MesItemBlManager.cs
@@ -132,29 +132,36 @@
try
{
// 璋冪敤瀛樺偍杩囩▼
- var parameters = new List<SqlParameter>
- {
- new SqlParameter("@c_user", query.userName),
- new SqlParameter("@p_bill_no", query.billNo ?? string.Empty),
- new SqlParameter("@p_item_barcode", query.barcode),
- new SqlParameter("@p_bl_no", query.blNo),
- new SqlParameter("@p_type", query.Type),
- new SqlParameter("@outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
- new SqlParameter("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
- new SqlParameter("@barcode_num", SqlDbType.Decimal) { Direction = ParameterDirection.Output },
- new SqlParameter("@split_num", SqlDbType.Decimal) { Direction = ParameterDirection.Output }
- };
+ var parameters = new SqlParameter[]
+ {
+ new SqlParameter("@C_USER", SqlDbType.NVarChar, 100) { Value = query.userName ?? string.Empty },
+ new SqlParameter("@P_BILL_NO", SqlDbType.NVarChar, 50) { Value = query.billNo ?? string.Empty },
+ new SqlParameter("@P_ITEM_BARCODE", SqlDbType.NVarChar, 100) { Value = query.barcode ?? string.Empty },
+ new SqlParameter("@P_BL_NO", SqlDbType.NVarChar, 100) { Value = query.blNo ?? string.Empty },
+ new SqlParameter("@P_TYPE", SqlDbType.NVarChar, 20) { Value = query.Type ?? string.Empty },
+ new SqlParameter("@OUT_MSG", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+ new SqlParameter("@OUT_SUM", SqlDbType.Int) { Direction = ParameterDirection.Output },
+ new SqlParameter("@BARCODE_NUM", SqlDbType.Decimal) {
+ Direction = ParameterDirection.Output,
+ Precision = 18,
+ Scale = 10
+ },
+ new SqlParameter("@SPLIT_NUM", SqlDbType.Decimal) {
+ Direction = ParameterDirection.Output,
+ Precision = 18,
+ Scale = 10
+ }
+ };
// 鎵ц瀛樺偍杩囩▼
- Db.Ado.ExecuteCommand(
- "EXEC PRC_PDA_SCBLCL @c_user, @p_bill_no, @p_item_barcode, @p_bl_no, @p_type, @outMsg OUTPUT, @outSum OUTPUT, @barcode_num OUTPUT, @split_num OUTPUT",
- parameters.ToArray());
+ string procedureName = "PRC_PDA_SCBLCL";
+ int res = DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters);
// 鑾峰彇杈撳嚭鍙傛暟
outMsg = parameters[5].Value?.ToString() ?? "";
- outSum = Convert.ToInt32(parameters[6].Value);
- barcodeNum = Convert.ToDecimal(parameters[7].Value);
- splitNum = Convert.ToDecimal(parameters[8].Value);
+ outSum = parameters[6].Value as int? ?? 0; // 榛樿鍊兼牴鎹渶姹傝皟鏁�
+ barcodeNum = parameters[7].Value as decimal? ?? 0m;
+ splitNum = parameters[8].Value as decimal? ?? 0m;
// 澶勭悊瀛樺偍杩囩▼杩斿洖鐨勭粨鏋�
if (outSum == 2) // 闇�瑕佹媶鍒�
@@ -598,7 +605,7 @@
WarehouseQuery query)
{
- // 杈撳叆鍙傛暟楠岃瘉锛堜繚鎸佷笉鍙橈級
+ // Validate input parameters
if (string.IsNullOrEmpty(query.userName))
throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒");
@@ -614,47 +621,41 @@
if (string.IsNullOrEmpty(query.blNo))
throw new Exception("琛ユ枡鍗曞彿涓嶈兘涓虹┖锛�");
- // 鍑嗗瀛樺偍杩囩▼鍙傛暟
- var outMsg = "";
- var outSum = -1;
- var outCfBar = "";
+ // Prepare parameters for the stored procedure
+ var parameters = new List<SugarParameter>
+{
+ new SugarParameter("@C_USER", query.userName),
+ new SugarParameter("@P_BILL_NO", query.billNo),
+ new SugarParameter("@P_ITEM_BARCODE", query.barcode),
+ new SugarParameter("@P_BL_NO", query.blNo),
+ new SugarParameter("@P_TYPE", query.Type),
+ new SugarParameter("@NUM", query.Num),
+ new SugarParameter("@OUT_MSG", "", System.Data.DbType.String, ParameterDirection.Output),
+ new SugarParameter("@OUT_SUM", 0, System.Data.DbType.Int32, ParameterDirection.Output),
+ new SugarParameter("@OUT_CF_BAR", "", System.Data.DbType.String, ParameterDirection.Output)
+};
- try
+ // Execute the stored procedure
+ Db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PDA_SCBLCL_CF", parameters);
+
+ // Get output parameters
+ var outMsg = parameters.FirstOrDefault(p => p.ParameterName == "@OUT_MSG")?.Value?.ToString();
+ var outSum = Convert.ToInt32(parameters.FirstOrDefault(p => p.ParameterName == "@OUT_SUM")?.Value ?? -1);
+ var outCfBar = parameters.FirstOrDefault(p => p.ParameterName == "@OUT_CF_BAR")?.Value?.ToString();
+
+ // Handle the result
+ if (outSum == -1)
{
- // 璋冪敤瀛樺偍杩囩▼
- var parameters = new List<SugarParameter>
- {
- new SugarParameter("@C_USER", query.userName), // 鎿嶄綔浜哄憳
- new SugarParameter("@P_BILL_NO", query.billNo), // 宸ュ崟鍙�
- new SugarParameter("@P_ITEM_BARCODE", query.barcode), // 鏉$爜
- new SugarParameter("@P_BL_NO", query.blNo), // 琛ユ枡鍗曞彿
- new SugarParameter("@P_TYPE", query.Type), // 绫诲瀷(鐢熶骇琛ユ枡/鐢熶骇瓒呴)
- new SugarParameter("@NUM", query.Num), // 鎷嗗垎鏁�
- new SugarParameter("@OUT_MSG", null, true), // 杈撳嚭娑堟伅
- new SugarParameter("@OUT_SUM", null, true), // 鎵ц缁撴灉(1鎴愬姛,-1澶辫触)
- new SugarParameter("@OUT_CF_BAR", null, true) // 杈撳嚭鏂版潯鐮佺紪鍙�
- };
-
- // 鎵ц瀛樺偍杩囩▼
- Db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PDA_SCBLCL_CF", parameters);
-
- // 鑾峰彇杈撳嚭鍙傛暟
- outMsg = parameters.First(p => p.ParameterName == "@OUT_MSG").Value?.ToString();
- outSum = Convert.ToInt32(parameters.First(p => p.ParameterName == "@OUT_SUM").Value);
- outCfBar = parameters.First(p => p.ParameterName == "@OUT_CF_BAR").Value?.ToString();
-
- // 澶勭悊瀛樺偍杩囩▼杩斿洖缁撴灉
- if (outSum != 1)
- {
- throw new Exception(outMsg ?? "鎿嶄綔澶辫触");
- }
- }
- catch (Exception ex)
- {
- throw new Exception(outMsg ?? ex.Message);
+ throw new Exception(outMsg ?? "鎿嶄綔澶辫触");
}
- // 鑾峰彇寰呭彂鏂欐槑缁嗗垪琛紙淇濇寔涓嶅彉锛�
+ if (outSum == 2)
+ {
+ // Handle case where barcode needs to be split
+ // You might want to return the new barcode to the client
+ }
+
+ // Get pending list for the supplement order
var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) =>
new JoinQueryInfos(JoinType.Left, a.Id == b.Mid))
.Where((a, b) => a.BlNo == query.blNo
@@ -670,7 +671,6 @@
})
.ToList();
- // 杩斿洖缁撴灉锛堟垚鍔熺姸鎬佸拰寰呭彂鏂欏垪琛級
return (outSum == 1, pendingList);
//if (string.IsNullOrEmpty(query.userName))
diff --git a/service/Warehouse/TransferOutManager.cs b/service/Warehouse/TransferOutManager.cs
index 06d5955..34119aa 100644
--- a/service/Warehouse/TransferOutManager.cs
+++ b/service/Warehouse/TransferOutManager.cs
@@ -42,6 +42,7 @@
// 鏍规嵁pid鏌ヨ瀵瑰簲鐨勫嚭搴撳崟鍙�
var billNos = Db.Queryable<MesDbck>()
.Where(x => result.Contains(x.Id) && x.FApproveStatus == 1)
+ .OrderBy(x => x.FCreateDate)
.Select(x => x.FBillNo)
.ToList();
@@ -53,41 +54,144 @@
/// </summary>
/// <param name="query">鏌ヨ鍙傛暟,鍖呭惈鍗曟嵁鍙�</param>
/// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns>
- public List<ItemDetailModel> GetTransferOutDetailListByBillNo(
+ public ProductionPickDto GetTransferOutDetailListByBillNo(
WarehouseQuery query)
{
- var p_bill_no = query.billNo;
+ if (string.IsNullOrEmpty(query.billNo)) throw new Exception("璋冩嫧鍗曞彿涓虹┖");
- // 鏍规嵁SQL鏌ヨ鏉′欢鑾峰彇寰呭鐞嗙殑鍑哄簱鏄庣粏
- // 鍏宠仈鏌ヨTransferOutDetail銆乀ransferOut鍜孧esItems涓夊紶琛�
- // 绛涢�夋潯浠�:鏈畬鎴愭暟閲忓ぇ浜�0涓斿崟鎹凡瀹℃牳
- var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>(
- (b, a, s) => new JoinQueryInfos(
- JoinType.Left, b.Pid == a.Id,
- JoinType.Left, b.FMaterialId == s.Id.ToString()))
- .Where((b, a, s) =>
- !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0))
- && a.FBillNo == p_bill_no // 鍖归厤鍗曟嵁鍙�
- && a.FApproveStatus == 1) // 鍗曟嵁宸插鏍�
- .OrderBy((b, a, s) => s.ItemNo)
- .Select((b, a, s) => new ItemDetailModel
- {
- ItemNo = s.ItemNo,
- ItemName = s.ItemName,
- ItemModel = s.ItemModel,
- FQty = b.FQty, // 鐢宠鏁伴噺
- SQty = b.SQty, // 宸叉壂鏁伴噺
- RQty = b.RQty, // 宸叉壂鏁伴噺
- // 淇濈暀鍏朵粬蹇呰瀛楁...
- Pid = b.Pid.ToString(),
- FMaterialId = b.FMaterialId,
- Id = b.Id.ToString()
- })
- .ToList();
+ var sql1 = string.Format(@"SELECT * FROM MES_DBCK WHERE FDocumentStatus = 'C' AND FBillNo = '{0}'", query.billNo);
- if(result.Count < 1) throw new Exception("璇ヨ皟鎷ㄥ崟涓嶅瓨鍦ㄦ垨宸叉壂瀹岋紝璇烽噸鏂版壂鎻�");
+ var dbck = Db.Ado.SqlQuery<ItemDetailModel>(sql1);
- return result;
+ if (dbck.Count < 1) throw new Exception("璋冩嫧鍗曞彿涓嶅瓨鍦ㄦ垨鏈鏍革紒");
+
+ var sql2 = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.FQty - b.SQty DSQty ,
+ dbo.F_QX_GETRECODEPOTSE(B.FMATERIALID,'','','') as RecoKw
+ FROM MES_DBCK_DETAIL B
+ LEFT JOIN MES_DBCK A ON A.ID = B.pid
+ LEFT JOIN MES_ITEMS C ON B.FMATERIALID = C.item_id
+ LEFT JOIN WOMCAB D ON B.erpid = D.ERPID
+ WHERE A.FBillNo = '{0}' ORDER BY FSEQ", query.billNo);
+
+ var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql2);
+
+
+ var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
+
+ var YS_list = womdabs.Where(s => s.SQty > 0).ToList();
+
+ //var p_bill_no = query.billNo;
+
+ //// 鏍规嵁SQL鏌ヨ鏉′欢鑾峰彇寰呭鐞嗙殑鍑哄簱鏄庣粏
+ //// 鍏宠仈鏌ヨTransferOutDetail銆乀ransferOut鍜孧esItems涓夊紶琛�
+ //// 绛涢�夋潯浠�:鏈畬鎴愭暟閲忓ぇ浜�0涓斿崟鎹凡瀹℃牳
+ //var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>(
+ // (b, a, s) => new JoinQueryInfos(
+ // JoinType.Left, b.Pid == a.Id,
+ // JoinType.Left, b.FMaterialId == s.Id.ToString()))
+ // .Where((b, a, s) =>
+ // !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0))
+ // && a.FBillNo == p_bill_no // 鍖归厤鍗曟嵁鍙�
+ // && a.FApproveStatus == 1) // 鍗曟嵁宸插鏍�
+ // .OrderBy((b, a, s) => s.ItemNo)
+ // .Select((b, a, s) => new ItemDetailModel
+ // {
+ // ItemNo = s.ItemNo,
+ // ItemName = s.ItemName,
+ // ItemModel = s.ItemModel,
+ // FQty = b.FQty, // 鐢宠鏁伴噺
+ // SQty = b.SQty, // 宸叉壂鏁伴噺
+ // RQty = b.RQty, // 宸叉壂鏁伴噺
+ // // 淇濈暀鍏朵粬蹇呰瀛楁...
+ // Pid = b.Pid.ToString(),
+ // FMaterialId = b.FMaterialId,
+ // Id = b.Id.ToString()
+ // })
+ // .ToList();
+
+ //if(result.Count < 1) throw new Exception("璇ヨ皟鎷ㄥ崟涓嶅瓨鍦ㄦ垨宸叉壂瀹岋紝璇烽噸鏂版壂鎻�");
+
+ var dto = new ProductionPickDto
+ {
+ items = DS_list,
+ Ysitems = YS_list
+ // yisao = mesInvItemOutCDetailsList
+ };
+
+ return dto;
+ }
+
+
+ /// <summary>
+ /// 鏍规嵁鍗曟嵁鍙疯幏鍙栧緟澶勭悊鐨勮皟鎷ㄥ嚭搴撴槑缁嗗垪琛�
+ /// </summary>
+ /// <param name="query">鏌ヨ鍙傛暟,鍖呭惈鍗曟嵁鍙�</param>
+ /// <returns>寰呭鐞嗙殑璋冩嫧鍑哄簱鏄庣粏鍒楄〃</returns>
+ public ProductionPickDto GetTransferInDetailListByBillNo(
+ WarehouseQuery query)
+ {
+ if (string.IsNullOrEmpty(query.billNo)) throw new Exception("璋冩嫧鍗曞彿涓虹┖");
+
+ var sql1 = string.Format(@"SELECT * FROM MES_DBCK WHERE FDocumentStatus = 'C' AND FBillNo = '{0}'", query.billNo);
+
+ var dbck = Db.Ado.SqlQuery<ItemDetailModel>(sql1);
+
+ if (dbck.Count < 1) throw new Exception("璋冩嫧鍗曞彿涓嶅瓨鍦ㄦ垨鏈鏍革紒");
+
+ var sql2 = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.RQty RQty,b.SQty - b.RQty DSQty ,
+ dbo.F_QX_GETRECODEPOTSE(B.FMATERIALID,'','','') as RecoKw
+ FROM MES_DBCK_DETAIL B
+ LEFT JOIN MES_DBCK A ON A.ID = B.pid
+ LEFT JOIN MES_ITEMS C ON B.FMATERIALID = C.item_id
+ LEFT JOIN WOMCAB D ON B.erpid = D.ERPID
+ WHERE A.FBillNo = '{0}' ORDER BY FSEQ", query.billNo);
+
+ var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql2);
+
+
+ var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
+
+ var YS_list = womdabs.Where(s => s.RQty > 0).ToList();
+
+ //var p_bill_no = query.billNo;
+
+ //// 鏍规嵁SQL鏌ヨ鏉′欢鑾峰彇寰呭鐞嗙殑鍑哄簱鏄庣粏
+ //// 鍏宠仈鏌ヨTransferOutDetail銆乀ransferOut鍜孧esItems涓夊紶琛�
+ //// 绛涢�夋潯浠�:鏈畬鎴愭暟閲忓ぇ浜�0涓斿崟鎹凡瀹℃牳
+ //var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>(
+ // (b, a, s) => new JoinQueryInfos(
+ // JoinType.Left, b.Pid == a.Id,
+ // JoinType.Left, b.FMaterialId == s.Id.ToString()))
+ // .Where((b, a, s) =>
+ // !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0))
+ // && a.FBillNo == p_bill_no // 鍖归厤鍗曟嵁鍙�
+ // && a.FApproveStatus == 1) // 鍗曟嵁宸插鏍�
+ // .OrderBy((b, a, s) => s.ItemNo)
+ // .Select((b, a, s) => new ItemDetailModel
+ // {
+ // ItemNo = s.ItemNo,
+ // ItemName = s.ItemName,
+ // ItemModel = s.ItemModel,
+ // FQty = b.FQty, // 鐢宠鏁伴噺
+ // SQty = b.SQty, // 宸叉壂鏁伴噺
+ // RQty = b.RQty, // 宸叉壂鏁伴噺
+ // // 淇濈暀鍏朵粬蹇呰瀛楁...
+ // Pid = b.Pid.ToString(),
+ // FMaterialId = b.FMaterialId,
+ // Id = b.Id.ToString()
+ // })
+ // .ToList();
+
+ //if(result.Count < 1) throw new Exception("璇ヨ皟鎷ㄥ崟涓嶅瓨鍦ㄦ垨宸叉壂瀹岋紝璇烽噸鏂版壂鎻�");
+
+ var dto = new ProductionPickDto
+ {
+ items = DS_list,
+ Ysitems = YS_list
+ // yisao = mesInvItemOutCDetailsList
+ };
+
+ return dto;
}
public List<ItemDetailModel> GetDBCKDetal(
@@ -130,7 +234,7 @@
/// </summary>
/// <param name="query">鍖呭惈鍗曟嵁鍙枫�佺敤鎴峰悕鍜屾潯鐮佷俊鎭殑鏌ヨ鍙傛暟</param>
/// <returns>澶勭悊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏鍒楄〃</returns>
- public (WarehouseQuery form, List<ItemDetailModel> items)
+ public ProductionPickDto
ScanMoveBarcode(WarehouseQuery query)
{
var p_bill_no = query.billNo;
@@ -148,8 +252,7 @@
// 鏌ヨ鏉$爜搴撳瓨淇℃伅骞堕獙璇�
var stock = Db.Queryable<MesInvItemStocks>()
.Where(x => x.ItemBarcode == p_item_barcode
- && x.Quantity > 0
- && !string.IsNullOrEmpty(x.DepotsCode))
+ && x.Quantity > 0)
.First();
if (stock == null) throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{p_item_barcode}");
@@ -200,7 +303,18 @@
query.Fum = Convert.ToDecimal(splitNum);
// 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏
- return (query, GetDBCKDetal(query));
+ //return (query, GetDBCKDetal(query));
+ var dto = new ProductionPickDto
+ {
+ itemNo = item.ItemNo,
+ barcodeNum = barcodeNum,
+ splitNum = splitNum,
+ barcode = query.barcode,
+ strMsg = _strMsg,
+ result = _intSum
+ };
+
+ return dto;
}
catch (Exception ex)
{
@@ -223,6 +337,97 @@
ScanReceiveBarcode(WarehouseQuery query)
{
var p_bill_no = query.billNo;
+ var p_item_barcode = query.barcode;
+
+ var barinfo = Db.Queryable<MesInvItemStocks>()
+ .Where(x => x.ItemBarcode == p_item_barcode)
+ .First();
+
+
+ //// 楠岃瘉鍗曟嵁鍙�
+ //if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
+
+ //// 鏌ヨ鍑哄簱鍗曞苟楠岃瘉鐘舵��
+ //var transferOut = Db.Queryable<MesDbck>()
+ // .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1)
+ // .First();
+ //if (transferOut == null) throw new Exception("鏈壘鍒拌皟鎷ㄧ敵璇峰崟鎴栬�呰皟鎷ㄧ敵璇峰崟娌″鏍�");
+
+ // 鏌ヨ鏉$爜搴撳瓨淇℃伅骞堕獙璇�
+ var stock = Db.Queryable<MesDbckDetail>()
+ .Where(x => x.FMaterialId == barinfo.ItemId.ToString()
+ && x.FQty > 0
+ && !string.IsNullOrEmpty(x.FStockInId)
+ && !string.IsNullOrEmpty(x.FOwnerInId))
+ .First();
+ if (stock == null) throw new Exception($"璋冩嫧鏄庣粏涓� 銆愮墿鏂欍�戞垨 銆愯皟鍏ヤ粨搴撱�戞垨銆愯皟鍏ヨ揣涓汇�戜俊鎭笉瀛樺湪锛岃鏍稿锛亄p_item_barcode}");
+
+ // 鏌ヨ鐗╂枡淇℃伅
+ var item = Db.Queryable<MesItems>()
+ .Where(x => x.Id.ToString() == stock.FMaterialId)
+ .First();
+ if (item == null) throw new Exception("鏈壘鍒扮墿鏂�");
+
+ var _strMsg = "";
+ var _intSum = "";
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ using (var cmd = new SqlCommand("[prc_pda_DBRK]", 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("@outBillNo", SqlDbType.NVarChar, 300),
+ new("@c_user", query.userName),
+ new("@p_bill_no", p_bill_no),
+ new("@p_item_barcode", p_item_barcode),
+ new("@p_depot_section_code", query.sectionCode),
+ };
+ 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 outBillNo = parameters[3].Value.ToString();
+
+ var result = Convert.ToInt32(_intSum);
+ if (result <= 0) throw new Exception(_strMsg);
+
+ query.itemNo = item.ItemNo;
+ query.Num = Convert.ToDecimal(barcodeNum);
+ //query.Fum = Convert.ToDecimal(splitNum);
+ query.billNo = outBillNo;
+
+ // 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏
+ return (query, GetDBCKDetal(query));
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+ public ProductionPickDto ScanCodeCF(WarehouseQuery query)
+ {
+ var p_bill_no = query.daa001;
var p_item_barcode = query.barcode;
var barinfo = Db.Queryable<MesInvItemStocks>()
@@ -255,9 +460,10 @@
var _strMsg = "";
var _intSum = "";
+ var _cfBar = "";
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
- using (var cmd = new SqlCommand("[prc_pda_DBRK]", conn))
+ using (var cmd = new SqlCommand("[prc_pda_DBCK_CF]", conn))
{
try
{
@@ -265,86 +471,36 @@
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters =
{
- new("@outMsg", SqlDbType.NVarChar, 300),
+ new("@outMsg", SqlDbType.NVarChar, 2000),
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", p_bill_no),
- new("@p_item_barcode", p_item_barcode),
- new("@p_depot_section_code", query.sectionCode),
+ new("@outCfBar", SqlDbType.NVarChar, 300),
+ new("@c_User", query.userName),
+ new("@p_biLL_no", query.daa001),
+ 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;
- 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();
+ _cfBar = parameters[2].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);
- query.itemNo = item.ItemNo;
- query.Num = Convert.ToDecimal(barcodeNum);
- query.Fum = Convert.ToDecimal(splitNum);
-
- // 杩斿洖鏇存柊鍚庣殑琛ㄥ崟鍜屽緟澶勭悊鏄庣粏
- return (query, GetDBCKDetal(query));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
- finally
- {
- conn.Close();
- }
- }
- }
- }
-
- //璋冩嫧鍑哄簱鎷嗗垎 prc_pda_DBCK_CF
- public string SplitBarcode(WarehouseQuery query)
- {
- var _strMsg = "";
- var _intSum = "";
- using (var conn = new SqlConnection(DbHelperSQL.strConn))
- {
- using (var cmd = new SqlCommand("[prc_pda_DBRK]", conn))
- {
- try
- {
- conn.Open();
- cmd.CommandType = CommandType.StoredProcedure;
- SqlParameter[] parameters =
+ var dto = new ProductionPickDto
{
- new("@outMsg", SqlDbType.NVarChar, 300),
- new("@outSum", SqlDbType.NVarChar, 300),
- new("@c_user", query.userName),
- new("@p_bill_no", query.billNo),
- new("@p_item_barcode", query.barcode),
- new("@NUM", query.Fum),
+ daa001 = query.daa001,
+ barcode = query.barcode,//鍘熸潯鐮�
+ cfBarcode = _cfBar//鎷嗗垎鍚庢潯鐮�
};
-
- parameters[0].Direction = ParameterDirection.Output;
- parameters[1].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 result = Convert.ToInt32(_intSum);
- if (result <= 0) throw new Exception(_strMsg);
-
- return _strMsg;
+
+ return dto;
}
catch (Exception ex)
{
@@ -357,4 +513,5 @@
}
}
}
+
}
\ No newline at end of file
diff --git a/service/Wom/WomdaahbManager.cs b/service/Wom/WomdaahbManager.cs
new file mode 100644
index 0000000..1436d92
--- /dev/null
+++ b/service/Wom/WomdaahbManager.cs
@@ -0,0 +1,1090 @@
+锘縰sing System.Data;
+using System.Data.SqlClient;
+using System.Text;
+using Masuit.Tools;
+using Microsoft.SqlServer.Server;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.entity.Base;
+using SqlSugar;
+
+namespace NewPdaSqlServer.service.Wom;
+
+public class WomdaaManager : Repository<Womdaa>
+{
+ //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
+ //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 WomdaaManager.cs
+
+ //鑾峰彇宸ュ崟鍙�
+ public List<string> GetProductionPickDaa001(WarehouseQuery query)
+ {
+ var sql =
+ "SELECT DAA001 FROM WOMDAA A LEFT JOIN (SELECT COUNT(1) UN_NUM, PID FROM WOMDAB WHERE DAB006 > DAB007 GROUP BY DAB002) B ON A.GUID = B.daaGuid WHERE DAA001 = " +
+ query.daa001 +
+ " and DAA018 != '瀹屽伐' AND DAA022 = 1 AND UN_NUM > 0 AND ROWNUM <= 10 order by a.id desc";
+
+ return Db.Ado.SqlQuery<string>(sql);
+ }
+
+ //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡
+ public ProductionPickDto GetItemsByDaa001(WarehouseQuery query)
+ {
+ return getDaa001(query);
+ }
+
+ 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.daa001.IsNullOrEmpty()) throw new Exception("棰嗘枡鍗曞彿涓嶅厑璁镐负绌�");
+ if (query.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
+
+ using (var cmd = new SqlCommand("[prc_pda_SCLL]", 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.daa001),
+ 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.daa001,
+ barcodeNum = barcodeNum,
+ splitNum = splitNum,
+ barcode = query.barcode,
+ strMsg = _strMsg,
+ result = _intSum
+ };
+
+ return dto;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+ //prC_pda_SCLL_CF
+ public ProductionPickDto ScanCodeCF(WarehouseQuery query)
+ {
+ if (query.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
+ if (query.daa001.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_SCLL_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.daa001),
+ 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.daa001,
+ barcode = query.barcode,//鍘熸潯鐮�
+ cfBarcode = _cfBar//鎷嗗垎鍚庢潯鐮�
+ };
+
+ return dto;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+ private ProductionPickDto getDaa001(WarehouseQuery query)
+ {
+ if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�");
+
+ var womdaa = Db.Queryable<Womdaa, MesItems>((a, i) =>
+ new JoinQueryInfos(JoinType.Left,
+ a.Daa002 == i.ItemId.ToString()))
+ .Where((a, i) => a.Daa001 == query.daa001
+ && a.Fstatus == 1)
+ .Select((a, i) => new
+ {
+ a.Daa001, a.CaaGuid
+ }).First();
+
+ if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
+
+ //var womdabs = Db.Queryable<Womdaa, Womdab, MesItems, Womcab>(
+ // (a, b, c, d) =>
+ // new JoinQueryInfos(
+ // JoinType.Left,
+ // a.Guid == b.DaaGuid,
+ // JoinType.Inner,
+ // c.Id.ToString() ==
+ // b.Dab003,
+ // JoinType.Inner, b.Erpid == d.Erpid
+ // ))
+ // .Where((a, b, c, d) =>
+ // a.Daa001 == query.daa001 && d.Iss1ueType == "1")
+ // .Select((a, b, c, d) => new ItemDetailModel
+ // {
+ // ItemNo = c.ItemNo,
+ // ItemName = c.ItemName,
+ // ItemModel = c.ItemModel,
+ // FQty = b.Dab006, // 鐢宠鏁伴噺
+ // SQty = b.Dab007, // 宸叉壂鏁伴噺
+ // DSQty = b.Dab006 - b.Dab007, // 宸叉壂鏁伴噺
+ // })
+ // .ToList();
+
+ var sql =string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.dab006 FQty,b.dab007 SQty,b.dab006 - b.dab007 DSQty ,
+ dbo.F_QX_GETRECODEPOTSE(B.dab003,'','','') as RecoKw
+ 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 WOMCAB D ON B.erpid = D.ERPID
+ WHERE daa001 = '{0}' AND ISSUE_TYPE = 1 ORDER BY DAB002", query.daa001);
+
+ var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql);
+
+
+ var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
+
+ var YS_list = womdabs.Where(s => s.SQty > 0).ToList();
+
+ var mesInvItemOutCDetailsList = Db
+ .Queryable<MesInvItemOutCDetails, MesItems, MesDepots>
+ ((a, b, c) =>
+ new JoinQueryInfos(
+ JoinType.Inner, a.ItemId == b.Id,
+ JoinType.Inner, c.DepotId == a.DepotId
+ ))
+ .Where((a, b, c) => a.WorkNo == query.daa001)
+ .Select((a, b, c) => new MesInvItemOutCDetails
+ {
+ ItemName = b.ItemName,
+ ItemNo = b.ItemNo,
+ ItemId = a.ItemId,
+ DepotId = a.DepotId,
+ WorkNo = a.WorkNo,
+ DepotName = c.DepotName,
+ Quantity = a.Quantity
+ })
+ .ToList();
+
+ var womcaa = Db.Queryable<Womcaa>().Where(s => s.Guid == womdaa.CaaGuid)
+ .First();
+
+ if (womcaa == null)
+ {
+ throw new Exception("鐢熶骇浠诲姟鍗曚笉瀛樺湪");
+ }
+
+ var dto = new ProductionPickDto
+ {
+ daa001 = womdaa.Daa001,
+ PlanNo = womcaa.Caa020,
+ items = DS_list,
+ Ysitems = YS_list
+ // yisao = mesInvItemOutCDetailsList
+ };
+
+ return dto;
+ }
+
+ /// <summary>
+ /// 鑾峰彇宸ュ崟鏉$爜淇℃伅
+ /// </summary>
+ /// <param name="query"></param>
+ /// <returns></returns>
+ public dynamic getZsBarInfo(dynamic query)
+ {
+
+ var sql = string.Format(@"SELECT TOP 1 A.barCode AS zsBarcode,
+ D.name AS lineName,
+ D.line_no,
+ B.daa001,
+ C.item_no,
+ C.item_name,
+ C.item_model,
+ A.quantity as barQty,
+ B.daa008 as sumQty,
+ isnull((SELECT count(1) FROM WORK_COLLECT WHERE processNo = '{0}' AND ABOUT_GUID = A.ABOUT_GUID),0) AS finQty,
+ isnull((SELECT TOP 1 processNo FROM WORK_COLLECT WHERE WORK_COLLECT.barCode = '{1}' AND checkResult = '鈭�' ORDER BY WORK_COLLECT.createDate DESC ),'') AS lastGx
+FROM WORK_TRAC_CODE A
+ LEFT JOIN WOMDAA B ON A.ABOUT_GUID = B.guid
+ LEFT JOIN MES_ITEMS C ON B.daa002 = C.item_id
+ LEFT JOIN MES_WORKSHOP_LINE D ON A.lineId = D.id
+WHERE A.barCode = '{1}'", query.GX, query.Zsbarcode);
+
+ var ZsBarInfo = Db.Ado.SqlQuery<dynamic>(sql);
+
+ if (ZsBarInfo.Count < 1)
+ {
+ throw new Exception($"璇ヨ拷婧爜{query.Zsbarcode}涓嶅瓨鍦ㄤ笉瀛樺湪");
+ }
+
+ return ZsBarInfo;
+ }
+
+ //鑾峰彇鐢熶骇
+ public dynamic getTraceability(dynamic query)
+ {
+ var sql = string.Format(@"SELECT processNo, A.barCode, B.lineId, line_no, name AS lineName, checkResult, C.USER_NAME
+FROM WORK_COLLECT A
+ LEFT JOIN WORK_TRAC_CODE B ON A.barCode = B.barCode
+ LEFT JOIN SYS_USER C ON C.ACCOUNT = A.createBy
+ LEFT JOIN MES_WORKSHOP_LINE D ON B.lineId = D.id
+WHERE A.barCode = '{0}'", query.Zsbarcode);
+
+ var Traceability = Db.Ado.SqlQuery<dynamic>(sql);
+
+ return Traceability;
+ }
+
+ public dynamic ProductBinding(dynamic query)
+ {
+ if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+ // 2. 浣跨敤 string.IsNullOrEmpty 鐩存帴鍒ゆ柇瀛楃涓插睘鎬э紙閬垮厤 NullReferenceException锛�
+ if (string.IsNullOrEmpty(query.userName?.ToString()))
+ throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userName));
+
+ if (string.IsNullOrEmpty(query.ZsBar?.ToString()))
+ throw new ArgumentException("杩芥函鐮佷笉鍏佽涓虹┖", nameof(query.ZsBar));
+
+ if (string.IsNullOrEmpty(query.LsBar?.ToString()))
+ throw new ArgumentException("鍚庣洊鐮佷笉鍏佽涓虹┖", nameof(query.LsBar));
+
+ var _strMsg = "";
+ var _intSum = "";
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ using (var cmd = new SqlCommand("prc_pda_product_binding", conn))
+ {
+ try
+ {
+ conn.Open();
+ cmd.CommandType = CommandType.StoredProcedure;
+ SqlParameter[] parameters =
+ {
+ new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
+ new("@pi_trac_barcode", SqlDbType.NVarChar, 100) { Value = query.ZsBar },
+ new("@pi_ls_barcode", SqlDbType.NVarChar, 100) { Value = query.LsBar },
+ new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+ new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output }
+ };
+
+ foreach (var parameter in parameters)
+ cmd.Parameters.Add(parameter);
+
+ cmd.ExecuteNonQuery();
+
+ _strMsg = parameters[3].Value?.ToString() ?? "";
+ _intSum = parameters[4].Value?.ToString() ?? "-1";
+
+ var result = Convert.ToInt32(_intSum);
+ if (result <= 0) throw new Exception(_strMsg);
+
+ var dto = new
+ {
+ message = _strMsg,
+ status = result,
+ tracBarcode = query.ZsBar
+ };
+
+ return dto;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+
+ /// <summary>
+ /// 鑾峰彇鍗℃澘淇℃伅
+ /// </summary>
+ /// <param name="query"></param>
+ /// <returns></returns>
+ public dynamic getKbBarInfo(dynamic query)
+ {
+ if (string.IsNullOrEmpty(query.Kbbarcode?.ToString()))
+ throw new ArgumentException("鍗℃澘鏉$爜涓嶅厑璁镐负绌�", nameof(query.userName));
+
+ var sql = string.Format(@"SELECT OLDQTY,
+ ISNULL((SELECT COUNT(1) FROM MES_INV_ITEM_BARCODES_TBMX WHERE ABOUT_TB_BARCODE = '{0}'), 0) AS YSum,
+ DAA001
+FROM MES_INV_ITEM_BARCODES A LEFT JOIN WOMDAA B ON A.ABOUT_GUID = B.guid
+WHERE ITEM_BARCODE = '{0}' ", query.Kbbarcode);
+
+ var ZsBarInfo = Db.Ado.SqlQuery<dynamic>(sql);
+
+ if (ZsBarInfo.Count < 1)
+ {
+ throw new Exception($"璇ュ崱鏉跨爜{query.Zsbarcode}涓嶅瓨鍦紒");
+ }
+
+ return ZsBarInfo;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍗℃澘鏄庣粏淇℃伅
+ /// </summary>
+ /// <param name="query"></param>
+ /// <returns></returns>
+ public dynamic getKbBarMxInfo(dynamic query)
+ {
+
+ var sql = string.Format(@"SELECT ITEM_BARCODE, QUANTITY,item_no,item_name,item_model,weight
+FROM MES_INV_ITEM_BARCODES_TBMX A
+ LEFT JOIN WOMDAA B ON B.daa001 = A.DAA_001
+ LEFT JOIN MES_ITEMS C ON C.item_id = B.daa002
+WHERE ABOUT_TB_BARCODE = '{0}' ", query.Kbbarcode);
+
+ var ZsBarInfo = Db.Ado.SqlQuery<dynamic>(sql);
+
+
+ return ZsBarInfo;
+ }
+
+ /// <summary>
+ /// 鑾峰彇绠辨槑缁嗕俊鎭�
+ /// </summary>
+ /// <param name="query"></param>
+ /// <returns></returns>
+ public dynamic getXBarInfo(dynamic query)
+ {
+ //var sql1 = string.Format(@"SELECT 1 FROM MES_INV_ITEM_BARCODES_TBMX WHERE ITEM_BARCODE = '{0}' ", query.Xbarcode);
+
+ //var IS_CZ = Db.Ado.SqlQuery<dynamic>(sql1);
+
+ //if (IS_CZ.Count < 1)
+ //{
+ // throw new Exception($"璇ョ鏉$爜[{query.Xbarcode}]涓嶅瓨鍦紒");
+ //}
+
+
+ // 鏍¢獙瀛樺偍杩囩▼
+ if (string.IsNullOrEmpty(query.KbBar?.ToString()))
+ throw new ArgumentException("鍗℃澘鏉$爜涓嶅厑璁镐负绌�", nameof(query.KbBar));
+ // 鏍¢獙瀛樺偍杩囩▼
+ if (string.IsNullOrEmpty(query.Xbarcode?.ToString()))
+ throw new ArgumentException("绠辨潯鐮佷笉鍏佽涓虹┖", nameof(query.Xbarcode));
+
+ var successRecords = new List<dynamic>();
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ conn.Open();
+ using (var transaction = conn.BeginTransaction()) // 寮�鍚簨鍔�
+ {
+ try
+ {
+
+ using (var cmd = new SqlCommand("prc_pda_Xbar_binding_JY", conn, transaction))
+ {
+ cmd.CommandType = CommandType.StoredProcedure;
+ SqlParameter[] parameters =
+ {
+ new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
+ new("@pi_kb_barcode", SqlDbType.NVarChar, 100) { Value = query.KbBar },
+ new("@pi_ls_barcode", SqlDbType.NVarChar, 100) { Value = query.Xbarcode },
+ new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+ new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output }
+ };
+
+ foreach (var parameter in parameters)
+ cmd.Parameters.Add(parameter);
+
+ cmd.ExecuteNonQuery();
+
+ var _strMsg = parameters[3].Value?.ToString() ?? "";
+ var _intSum = parameters[4].Value?.ToString() ?? "-1";
+
+ var result = Convert.ToInt32(_intSum);
+ if (result <= 0)
+ {
+ //transaction.Rollback();
+ throw new Exception(_strMsg);
+ //return new {
+ // status = result,
+ // message = $"鎿嶄綔鍥炴粴锛歿_strMsg}",
+ // failedBarcode = xBar.iteM_BARCODE,
+ // successCount = successRecords.Count
+ //};
+ }
+
+ }
+
+ transaction.Commit(); // 鍏ㄩ儴鎴愬姛鎻愪氦浜嬪姟
+ }
+ catch (Exception ex)
+ {
+ transaction.Rollback();
+ throw new Exception($"寮傚父淇℃伅 锛歿ex.Message}");
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+
+ var sql2 = string.Format(@"SELECT ITEM_BARCODE, QUANTITY,item_no,item_name,item_model,'0' as is_hedui
+FROM MES_INV_ITEM_BARCODES_TBMX A
+ LEFT JOIN WOMDAA B ON B.daa001 = A.DAA_001
+ LEFT JOIN MES_ITEMS C ON C.item_id = B.daa002
+WHERE DAA_001 = '{0}'
+ AND ITEM_BARCODE = '{1}'
+ AND ISNULL(ABOUT_TB_BARCODE, '') = '' ", query.DAA001, query.Xbarcode);
+
+ var ZsBarInfo = Db.Ado.SqlQuery<dynamic>(sql2);
+
+ if (ZsBarInfo.Count < 1)
+ {
+ throw new Exception($"璇ョ鏉$爜[{query.Xbarcode}]瀵瑰簲宸ュ崟涓庢墭鐮佸伐鍗昜{query.DAA001}]涓嶅尮閰嶆垨宸茬粦瀹氭墭鐮侊紒");
+ }
+
+ return ZsBarInfo;
+ }
+
+ public dynamic submitAllChecked(dynamic query)
+ {
+ if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+ // 鍙傛暟鏍¢獙寮哄寲
+ if (string.IsNullOrEmpty(query.userName?.ToString()))
+ throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userName));
+
+ if (string.IsNullOrEmpty(query.KbBar?.ToString()))
+ throw new ArgumentException("鍗℃澘鏉$爜涓嶅厑璁镐负绌�", nameof(query.KbBar));
+
+ if (query.XbarInfo == null || !((IEnumerable<dynamic>)query.XbarInfo).GetEnumerator().MoveNext())
+ throw new ArgumentException("绠辩爜鍒楄〃涓嶈兘涓虹┖", nameof(query.XbarInfo));
+
+ var successRecords = new List<dynamic>();
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ conn.Open();
+ using (var transaction = conn.BeginTransaction()) // 寮�鍚簨鍔�
+ {
+ try
+ {
+ foreach (var xBar in query.XbarInfo) // 閬嶅巻绠辩爜闆嗗悎
+ {
+ using (var cmd = new SqlCommand("prc_pda_Xbar_binding", conn, transaction))
+ {
+ cmd.CommandType = CommandType.StoredProcedure;
+ SqlParameter[] parameters =
+ {
+ new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
+ new("@pi_kb_barcode", SqlDbType.NVarChar, 100) { Value = query.KbBar },
+ new("@pi_ls_barcode", SqlDbType.NVarChar, 100) { Value = xBar.iteM_BARCODE },
+ new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+ new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output }
+ };
+
+ foreach (var parameter in parameters)
+ cmd.Parameters.Add(parameter);
+
+ cmd.ExecuteNonQuery();
+
+ var _strMsg = parameters[3].Value?.ToString() ?? "";
+ var _intSum = parameters[4].Value?.ToString() ?? "-1";
+
+ var result = Convert.ToInt32(_intSum);
+ if (result <= 0)
+ {
+ //transaction.Rollback();
+ throw new Exception(_strMsg);
+ //return new {
+ // status = result,
+ // message = $"鎿嶄綔鍥炴粴锛歿_strMsg}",
+ // failedBarcode = xBar.iteM_BARCODE,
+ // successCount = successRecords.Count
+ //};
+ }
+
+ successRecords.Add(new {
+ kbBarcode = query.KbBar,
+ xBarcode = xBar.iteM_BARCODE,
+ processTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+ });
+ }
+ }
+ transaction.Commit(); // 鍏ㄩ儴鎴愬姛鎻愪氦浜嬪姟
+ return new {
+ status = 1,
+ message = "鎵归噺缁戝畾鎴愬姛",
+ successCount = successRecords.Count,
+ details = successRecords
+ };
+ }
+ catch (Exception ex)
+ {
+ transaction.Rollback();
+ throw new Exception($"寮傚父淇℃伅 锛歿ex.Message}");
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+ public dynamic SubmitKbInspection(dynamic query)
+ {
+ if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+ // 鍙傛暟鏍¢獙
+ if (string.IsNullOrEmpty(query.userAccount?.ToString()))
+ throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userAccount));
+
+ if (string.IsNullOrEmpty(query.KbBar?.ToString()))
+ throw new ArgumentException("鍗℃澘鏉$爜涓嶅厑璁镐负绌�", nameof(query.KbBar));
+
+ var _strMsg = "";
+ var _status = -1;
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ using (var cmd = new SqlCommand("prc_pda_KBbar_submitInspection", conn))
+ {
+ try
+ {
+ conn.Open();
+ cmd.CommandType = CommandType.StoredProcedure;
+ SqlParameter[] parameters =
+ {
+ new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userAccount },
+ new("@pi_kb_barcode", SqlDbType.NVarChar, 100) { Value = query.KbBar },
+ new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+ new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output }
+ };
+
+ foreach (var parameter in parameters)
+ cmd.Parameters.Add(parameter);
+
+ cmd.ExecuteNonQuery();
+
+ _strMsg = parameters[2].Value?.ToString() ?? "";
+ _status = Convert.ToInt32(parameters[3].Value ?? -1);
+
+ if (_status <= 0) throw new Exception(_strMsg);
+
+ return new {
+ message = _strMsg,
+ status = _status,
+ kbBarcode = query.KbBar
+ };
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"鍗℃澘閫佹澶辫触锛歿ex.Message}");
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+
+
+ //鏍规嵁宸ュ崟鍙疯繑鍥炰骇鍝佸瀷鍙峰拰寰呴鐗╂枡
+ public XcslResultDto GetItemsXcsl(WarehouseQuery query)
+ {
+ if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�");
+
+ var womdaa = Db.Queryable<Womdaa, MesItems>((a, i) =>
+ new JoinQueryInfos(JoinType.Left,
+ a.Daa002 == i.ItemId.ToString()))
+ .Where((a, i) => a.Daa001 == query.daa001
+ && a.Fstatus == 1)
+ .Select((a, i) => new
+ {
+ a.Daa001,
+ a.CaaGuid,
+ a.Daa008,
+ a.Daa021
+ }).First();
+
+ if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
+
+ // 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆
+ var sqlParams = new List<SugarParameter> { new("@daa001", query.daa001) };
+
+ var sql1 = @"SELECT A.item_out_no,
+ SUM(B.QUANTITY) AS BL_Num,
+ ISNULL(Sub.JS_Sum, 0) AS JS_Num, -- 浣跨敤LEFT JOIN瀛愭煡璇㈢殑缁撴灉
+ C.item_no,
+ C.item_name,
+ C.item_model,
+ D.USER_NAME
+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
+-- 鏂板LEFT JOIN鑱氬悎瀛愭煡璇�
+ LEFT JOIN (SELECT B1.ITEM_ID,
+ SUM(B1.QUANTITY) AS JS_Sum
+ FROM MES_INV_ITEM_OUTS A1
+ LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B1 ON A1.GUID = B1.ITEM_OUT_ID
+ WHERE A1.out_type = '鐢熶骇棰嗘枡'
+ AND A1.task_no = @daa001
+ AND ISNULL(B1.IS_XCSL, '0') = 1
+ GROUP BY B1.ITEM_ID -- 鎸塈TEM_ID鎻愬墠鑱氬悎
+) AS Sub ON Sub.ITEM_ID = C.item_id
+WHERE A.out_type = '鐢熶骇棰嗘枡'
+ AND A.task_no = @daa001
+GROUP BY A.item_out_no,
+ C.item_no,
+ C.item_name,
+ C.item_model,
+ D.USER_NAME,
+ C.item_id,
+ ISNULL(Sub.JS_Sum, 0);";
+
+ var XcslItem = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams);
+
+ var sql2 = @"SELECT B.ITEM_BARCODE ,B.QUANTITY,C.item_no,C.item_name,D.USER_NAME,A.create_date
+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
+WHERE out_type = '鐢熶骇棰嗘枡'
+AND A.task_no = @daa001
+AND ISNULL(IS_XCSL,'0') = 0";
+
+ var XcslWjsBar = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams);
+
+ var sql3 = @"SELECT B.ITEM_BARCODE ,B.QUANTITY,C.item_no,C.item_name,D.USER_NAME,B.XCSL_CREATE_DATE
+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 B.XCSL_CREATE_BY = D.ACCOUNT
+WHERE out_type = '鐢熶骇棰嗘枡'
+AND A.task_no = @daa001
+AND ISNULL(IS_XCSL,'0') = 1";
+
+ var XcslYjsBar = Db.Ado.SqlQuery<dynamic>(sql3, sqlParams);
+
+
+ var dto = new XcslResultDto
+ {
+ GD_Num = womdaa.Daa008,
+ workNo = womdaa.Daa021,
+ XcslItemList = XcslItem,
+ XcslWjsBarList = XcslWjsBar,
+ XcslYjsBarList = XcslYjsBar
+
+ };
+
+ return dto;
+ }
+
+ // 鐜板満鏀舵枡灞曠ず鍒楄〃
+ public class XcslResultDto
+ {
+ public int? GD_Num { get; set; }
+ public string? workNo { get; set; }
+ public List<dynamic> XcslItemList { get; set; }
+ public List<dynamic> XcslWjsBarList { get; set; }
+ public List<dynamic> XcslYjsBarList { get; set; }
+ }
+
+
+ public dynamic ScanXcsl(dynamic query)
+ {
+ if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+ // 鍙傛暟鏍¢獙锛堟牴鎹瓨鍌ㄨ繃绋嬫柊澧炲弬鏁帮級
+ if (string.IsNullOrEmpty(query.userAccount?.ToString()))
+ throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userAccount));
+
+ if (string.IsNullOrEmpty(query.Bar?.ToString()))
+ throw new ArgumentException("鐗╂枡鏉$爜涓嶅厑璁镐负绌�", nameof(query.Bar));
+
+ if (string.IsNullOrEmpty(query.DAA001?.ToString()))
+ throw new ArgumentException("宸ュ崟鍗曞彿涓嶅厑璁镐负绌�", nameof(query.DAA001));
+
+ var _strMsg = "";
+ var _status = -1;
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ using (var cmd = new SqlCommand("prc_pda_ScanXcsl", conn))
+ {
+ try
+ {
+ conn.Open();
+ cmd.CommandType = CommandType.StoredProcedure;
+ // 鏍规嵁瀛樺偍杩囩▼璋冩暣鍙傛暟椤哄簭鍜屽懡鍚�
+ SqlParameter[] parameters =
+ {
+ new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userAccount },
+ new("@pi_barcode", SqlDbType.NVarChar, 100) { Value = query.Bar },
+ new("@pi_daa001", SqlDbType.NVarChar, 100) { Value = query.DAA001 },
+ new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+ new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output }
+ };
+
+ foreach (var parameter in parameters)
+ cmd.Parameters.Add(parameter);
+
+ cmd.ExecuteNonQuery();
+
+ _strMsg = parameters[3].Value?.ToString() ?? "";
+ _status = Convert.ToInt32(parameters[4].Value ?? -1);
+
+ if (_status <= 0) throw new Exception(_strMsg);
+
+ return new
+ {
+ message = _strMsg,
+ status = _status,
+ daa001 = query.DAA001,
+ barCode = query.Bar
+ };
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"浜х嚎鏀舵枡澶辫触锛歿ex.Message}");
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+
+ public dynamic GetWeightByXt(dynamic query)
+ {
+ if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓簄ull");
+
+ // 鍙傛暟鏍¢獙
+ if (string.IsNullOrEmpty(query.userName?.ToString()))
+ throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userName));
+
+ if (string.IsNullOrEmpty(query.LsBar?.ToString()))
+ throw new ArgumentException("鍗℃澘鏉$爜涓嶅厑璁镐负绌�", nameof(query.LsBar));
+
+ var _strMsg = "";
+ var _status = -1;
+ var _weight = "0";
+
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ using (var cmd = new SqlCommand("prc_pda_Xbar_chenzhong", conn))
+ {
+ try
+ {
+ conn.Open();
+ cmd.CommandType = CommandType.StoredProcedure;
+
+ SqlParameter[] parameters =
+ {
+ new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
+ new("@pi_ls_barcode", SqlDbType.NVarChar, 100) { Value = query.LsBar },
+ new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+ new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output },
+ new("@po_outWeight", SqlDbType.NVarChar, 100) { Direction = ParameterDirection.Output }
+ };
+
+ cmd.Parameters.AddRange(parameters);
+ cmd.ExecuteNonQuery();
+
+ _strMsg = parameters[2].Value?.ToString() ?? "";
+ _status = Convert.ToInt32(parameters[3].Value ?? -1);
+ _weight = parameters[4].Value?.ToString() ?? "0";
+
+ if (_status <= 0) throw new Exception(_strMsg);
+
+ return new
+ {
+ message = _strMsg,
+ status = _status,
+ weight = _weight,
+ barCode = query.Bar
+ };
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"浜у搧绉伴噸澶辫触锛歿ex.Message}");
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+ public dynamic GetXcslDaa(dynamic unity)
+ {
+
+ var sqlParams = new List<SugarParameter> { };
+
+ var sql2 = new StringBuilder(@"
+ SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021
+ FROM WOMDAA
+ WHERE daa018 <>'W:瀹屽伐'");
+
+ if (!string.IsNullOrWhiteSpace(unity.selectKey?.ToString()))
+ {
+ sqlParams.Add(new("@selectKey", unity.selectKey));
+ sql2.Append(@"
+ AND (DAA001 LIKE '%' + @selectKey + '%'
+ OR DAA021 LIKE '%' + @selectKey + '%')");
+ }
+
+ var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
+
+ if (XcslItem == null)
+ {
+ throw new Exception("璇ユ潯浠朵笅鏃犲搴斿伐鍗曚俊鎭紝璇烽噸鏂拌緭鍏ワ紒");
+ }
+
+ return XcslItem;
+ }
+
+
+ public XcslResultDto GetItemsXctl(WarehouseQuery query)
+ {
+ if (string.IsNullOrEmpty(query.daa001)) throw new Exception("宸ュ崟鍙蜂负绌�");
+
+ var womdaa = Db.Queryable<Womdaa, MesItems>((a, i) =>
+ new JoinQueryInfos(JoinType.Left,
+ a.Daa002 == i.ItemId.ToString()))
+ .Where((a, i) => a.Daa001 == query.daa001
+ && a.Fstatus == 1)
+ .Select((a, i) => new
+ {
+ a.Daa001,
+ a.CaaGuid,
+ a.Daa008,
+ a.Daa021
+ }).First();
+
+ if (womdaa?.Daa001 == null) throw new Exception("宸ュ崟鍙蜂笉瀛樺湪");
+
+ // 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆
+ var sqlParams = new List<SugarParameter> { new("@daa001", query.daa001) };
+
+ var sql1 = @"SELECT A.item_out_no,
+ SUM(B.QUANTITY) AS BL_Num,
+ ISNULL(SL_SUM.JS_Sum, 0) AS JS_Num,
+ ISNULL(TL_SUM.JS_Sum, 0) AS TR_Num,
+ C.item_no,
+ C.item_name,
+ C.item_model
+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
+ LEFT JOIN (SELECT B1.ITEM_ID,
+ SUM(B1.QUANTITY) AS JS_Sum
+ FROM MES_INV_ITEM_OUTS A1
+ LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B1 ON A1.GUID = B1.ITEM_OUT_ID
+ WHERE A1.out_type = '鐢熶骇棰嗘枡'
+ AND A1.task_no = @daa001
+ AND ISNULL(B1.IS_XCSL, '0') = 1
+ GROUP BY B1.ITEM_ID
+) AS SL_SUM ON SL_SUM.ITEM_ID = C.item_id
+ LEFT JOIN (SELECT B1.ITEM_ID,
+ SUM(B1.QUANTITY) AS JS_Sum
+ FROM MES_INV_ITEM_OUTS A1
+ LEFT JOIN MES_INV_ITEM_OUT_C_DETAILS B1 ON A1.GUID = B1.ITEM_OUT_ID
+ WHERE A1.out_type = '鐢熶骇棰嗘枡'
+ AND A1.task_no = @daa001
+ AND ISNULL(B1.IS_CXTR, '0') = 1
+ GROUP BY B1.ITEM_ID
+) AS TL_SUM ON TL_SUM.ITEM_ID = C.item_id
+WHERE A.out_type = '鐢熶骇棰嗘枡'
+ AND A.task_no = @daa001
+GROUP BY A.item_out_no,
+ C.item_no,
+ C.item_name,
+ C.item_model,
+ D.USER_NAME,
+ C.item_id,
+ ISNULL(SL_SUM.JS_Sum, 0),
+ ISNULL(TL_SUM.JS_Sum, 0);";
+
+ var XcslItem = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams);
+
+ var sql2 = @"SELECT B.ITEM_BARCODE ,B.QUANTITY,C.item_no,C.item_name,D.USER_NAME,A.create_date
+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
+WHERE out_type = '鐢熶骇棰嗘枡'
+AND A.task_no = @daa001
+AND ISNULL(IS_CXTR,'0') = 0";
+
+ var XcslWjsBar = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams);
+
+ var sql3 = @"SELECT B.ITEM_BARCODE ,B.QUANTITY,C.item_no,C.item_name,D.USER_NAME,B.CXTR_CREATE_DATE
+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 B.CXTR_CREATE_BY = D.ACCOUNT
+WHERE out_type = '鐢熶骇棰嗘枡'
+AND A.task_no = @daa001
+AND ISNULL(IS_CXTR,'0') = 1";
+
+ var XcslYjsBar = Db.Ado.SqlQuery<dynamic>(sql3, sqlParams);
+
+
+ var dto = new XcslResultDto
+ {
+ GD_Num = womdaa.Daa008,
+ workNo = womdaa.Daa021,
+ XcslItemList = XcslItem,
+ XcslWjsBarList = XcslWjsBar,
+ XcslYjsBarList = XcslYjsBar
+
+ };
+
+ return dto;
+ }
+
+ public dynamic ScanXctl(dynamic query)
+ {
+ if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+ // 鍙傛暟鏍¢獙锛堟牴鎹瓨鍌ㄨ繃绋嬫柊澧炲弬鏁帮級
+ if (string.IsNullOrEmpty(query.userAccount?.ToString()))
+ throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userAccount));
+
+ if (string.IsNullOrEmpty(query.Bar?.ToString()))
+ throw new ArgumentException("鐗╂枡鏉$爜涓嶅厑璁镐负绌�", nameof(query.Bar));
+
+ if (string.IsNullOrEmpty(query.DAA001?.ToString()))
+ throw new ArgumentException("宸ュ崟鍗曞彿涓嶅厑璁镐负绌�", nameof(query.DAA001));
+
+ var _strMsg = "";
+ var _status = -1;
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ using (var cmd = new SqlCommand("prc_pda_ScanXctl", conn))
+ {
+ try
+ {
+ conn.Open();
+ cmd.CommandType = CommandType.StoredProcedure;
+ // 鏍规嵁瀛樺偍杩囩▼璋冩暣鍙傛暟椤哄簭鍜屽懡鍚�
+ SqlParameter[] parameters =
+ {
+ new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userAccount },
+ new("@pi_barcode", SqlDbType.NVarChar, 100) { Value = query.Bar },
+ new("@pi_daa001", SqlDbType.NVarChar, 100) { Value = query.DAA001 },
+ new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+ new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output }
+ };
+
+ foreach (var parameter in parameters)
+ cmd.Parameters.Add(parameter);
+
+ cmd.ExecuteNonQuery();
+
+ _strMsg = parameters[3].Value?.ToString() ?? "";
+ _status = Convert.ToInt32(parameters[4].Value ?? -1);
+
+ if (_status <= 0) throw new Exception(_strMsg);
+
+ return new
+ {
+ message = _strMsg,
+ status = _status,
+ daa001 = query.DAA001,
+ barCode = query.Bar
+ };
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"浜х嚎鏀舵枡澶辫触锛歿ex.Message}");
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
+ }
+
+}
\ No newline at end of file
--
Gitblit v1.9.3