From 9ec715d2deb18a269dd49c48da91a36632d08c81 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 18 六月 2025 00:56:26 +0800
Subject: [PATCH] 最新代码上传,优化功能等

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs |  190 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 188 insertions(+), 2 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs"
index 6e4dce7..83c4c81 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs"
@@ -10,6 +10,10 @@
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Helper;
+using WIDESEA_DTO;
+using WIDESEA_DTO.ERP;
+using WIDESEA_External.ERPService;
+using WIDESEA_External.Model;
 using WIDESEA_IApprovalRepository;
 using WIDESEA_ICheckRepository;
 using WIDESEA_ICheckService;
@@ -26,8 +30,9 @@
         private readonly IApprovalTaskRepository _approvalTaskRepository;
         private readonly ISys_UserRepository _userRepository;
         private readonly WebSocketServer _webSocketServer;
+        private readonly IInvokeERPService _invokeERPService;
 
-        public CheckOrderService(ICheckOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IApprovalFlowRepository approvalFlowRepository, IApprovalNodeRepository approvalNodeRepository, IApprovalTaskRepository approvalTaskRepository, ISys_UserRepository userRepository, WebSocketServer webSocketServer) : base(BaseDal)
+        public CheckOrderService(ICheckOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IApprovalFlowRepository approvalFlowRepository, IApprovalNodeRepository approvalNodeRepository, IApprovalTaskRepository approvalTaskRepository, ISys_UserRepository userRepository, WebSocketServer webSocketServer, IInvokeERPService invokeERPService) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _approvalFlowRepository = approvalFlowRepository;
@@ -35,8 +40,10 @@
             _approvalTaskRepository = approvalTaskRepository;
             _userRepository = userRepository;
             _webSocketServer = webSocketServer;
+            _invokeERPService = invokeERPService;
         }
 
+        #region 涓嶄娇鐢�
         public WebResponseContent CommitAudit(int checkOrderId)
         {
             try
@@ -46,7 +53,7 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌璐ㄦ鍗�");
                 }
-                if(checkOrder.CheckOrderStatus != CheckOrderStatusEnum.Checked.ObjToInt())
+                if (checkOrder.CheckOrderStatus != CheckOrderStatusEnum.Checked.ObjToInt())
                 {
                     return WebResponseContent.Instance.Error($"璇ヨ川妫�鍗曡繕鏈楠屽畬鎴�");
                 }
@@ -121,5 +128,184 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+        #endregion
+        /// <summary>
+        /// 妫�楠屽畬鎺ㄩ�丒RP
+        /// </summary>
+        /// <param name="checkOrder"></param>
+        /// <param name="checkOrderResults"></param>
+        /// <returns></returns>
+        public WebResponseContent FeedbackCheckResult(Dt_CheckOrder checkOrder,List<Dt_CheckOrderResult> checkOrderResults)
+        {
+            try
+            {
+                //澧炲姞涓笂浼犵姸鎬� 璐ㄦ鍗曠粨鏋�
+                List<ERPCheckResult> checkResults = new List<ERPCheckResult>();
+                foreach (var item in checkOrderResults)
+                {
+                    ERPCheckResult checkResult = new ERPCheckResult()
+                    {
+                        DefectCode = item.DefectCode,
+                        Note = item.Note,
+                        Quantity = item.Quantity.ToString(),
+                        Result = item.Result
+                    };
+                    checkResults.Add(checkResult);
+                }
+                ERPCheckModel model = new ERPCheckModel()
+                {
+                    Code = checkOrder.CheckOrderNo,
+                    CompanyId = "HATC",
+                    Result = checkOrder.Result,
+                    CreatorCode = checkOrder.CheckUserName,
+                    DefectedNote = checkOrder.DefectedNote,
+                    MaterialsCode = checkOrder.MaterielCode,
+                    PlantsId = "HA02",
+                    QtyDefected = checkOrder.DefectedQuantity.GetValueOrDefault().ToString(),
+                    QtyInspected = checkOrder.ReceivedQuantity.ToString(),
+                    QtyQualified = checkOrder.QualifiedQuantity.GetValueOrDefault().ToString(),
+                    QtyReturn = checkOrder.ReturnQuantity.GetValueOrDefault().ToString(),
+                    QtyScrapped = checkOrder.ScrappedQuantity.GetValueOrDefault().ToString(),
+                    ReceiptCode = checkOrder.ReceiveOrderNo,
+                    ReceiveDate = checkOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
+                    SerNo = checkOrder.ReceiveDetailRowNo.ToString(),
+                    TestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    UniqueTag = checkOrder.CheckOrderId.ToString(),
+                    Way = 1,
+                    Details = checkResults
+                };
+
+                string response = _invokeERPService.InvokeCheckOrderApi(model);
+                ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
+                if (requestContent.res!=1)
+                {
+                    return WebResponseContent.Instance.Error(requestContent.Data);
+                }
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// 閫佹楠屽畬鎺ㄩ�丒RP
+        /// </summary>
+        /// <param name="checkOrder"></param>
+        /// <param name="checkOrderResults"></param>
+        /// <returns></returns>
+        public WebResponseContent FeedbackInspectResult(Dt_CheckOrder checkOrder, List<Dt_CheckOrderResult> checkOrderResults)
+        {
+            try
+            {
+                //澧炲姞涓笂浼犵姸鎬� 璐ㄦ鍗曠粨鏋�
+                List<ERPCheckResult> checkResults = new List<ERPCheckResult>();
+                foreach (var item in checkOrderResults)
+                {
+                    ERPCheckResult checkResult = new ERPCheckResult()
+                    {
+                        DefectCode = item.DefectCode,
+                        Note = item.Note,
+                        Quantity = item.Quantity.ToString(),
+                        Result = item.Result
+                    };
+                    checkResults.Add(checkResult);
+                }
+                ERPInspectModel model = new ERPInspectModel()
+                {
+                    Code = checkOrder.CheckOrderNo,
+                    CompanyId = "HATC",
+                    Result = checkOrder.Result,
+                    CreatorCode = checkOrder.CheckUserName,
+                    DefectedNote = checkOrder.DefectedNote,
+                    MaterialsCode = checkOrder.MaterielCode,
+                    PlantsId = "HA02",
+                    QtyDefected = checkOrder.DefectedQuantity.GetValueOrDefault().ToString(),
+                    QtyInspected = checkOrder.ReceivedQuantity.ToString(),
+                    QtyQualified = checkOrder.QualifiedQuantity.GetValueOrDefault().ToString(),
+                    QtyReturn = checkOrder.ReturnQuantity.GetValueOrDefault().ToString(),
+                    QtyScrapped = checkOrder.ScrappedQuantity.GetValueOrDefault().ToString(),
+                    Recheckcode = checkOrder.ReceiveOrderNo,
+                    ReceiveDate = checkOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
+                    TestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    UniqueTag = checkOrder.CheckOrderId.ToString(),
+                    Way = 1,
+                    Details = checkResults
+                };
+
+                string response = _invokeERPService.InvokeInspectApi(model);
+                ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
+                if (requestContent.res != 1)
+                {
+                    return WebResponseContent.Instance.Error(requestContent.Data);
+                }
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// 璐ㄦ瀹屼笂鎶ヨ嚦ERP
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public WebResponseContent FeedbackCheckResult(int id)
+        {
+            try
+            {
+                //澧炲姞涓笂浼犵姸鎬� 璐ㄦ鍗曠粨鏋�
+                Dt_CheckOrder checkOrder = Db.Queryable<Dt_CheckOrder>().Where(x => x.CheckOrderId == id).Includes(x => x.Details).First();
+                if (checkOrder == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌川妫�鍗曟嵁");
+                }
+
+                List<ERPCheckResult> checkResults = new List<ERPCheckResult>();
+                foreach (var item in checkOrder.Details)
+                {
+                    ERPCheckResult checkResult = new ERPCheckResult()
+                    {
+                        DefectCode = item.DefectCode,
+                        Note = item.Note,
+                        Quantity = item.Quantity.ToString(),
+                        Result = item.Result
+                    };
+                    checkResults.Add(checkResult);
+                }
+
+                ERPCheckModel model = new ERPCheckModel()
+                {
+                    Code = checkOrder.CheckOrderNo,
+                    CompanyId = "HATC",
+                    Result = checkOrder.Result,
+                    CreatorCode = checkOrder.CheckUserName,
+                    DefectedNote = checkOrder.DefectedNote,
+                    MaterialsCode = checkOrder.MaterielCode,
+                    PlantsId = "HA02",
+                    QtyDefected = checkOrder.DefectedQuantity.GetValueOrDefault().ToString(),
+                    QtyInspected = checkOrder.ReceivedQuantity.ToString(),
+                    QtyQualified = checkOrder.QualifiedQuantity.GetValueOrDefault().ToString(),
+                    QtyReturn = checkOrder.ReturnQuantity.GetValueOrDefault().ToString(),
+                    QtyScrapped = checkOrder.ScrappedQuantity.GetValueOrDefault().ToString(),
+                    ReceiptCode = checkOrder.ReceiveOrderNo,
+                    ReceiveDate = checkOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
+                    SerNo = checkOrder.ReceiveDetailRowNo.ToString(),
+                    TestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    UniqueTag = checkOrder.CheckOrderId.ToString(),
+                    Way = 1,
+                    Details = checkResults
+                };
+
+                string response = _invokeERPService.InvokeCheckOrderApi(model);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
     }
 }

--
Gitblit v1.9.3