From 3a1a5e58e9ac1b4a8449601db8c6608897877746 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期五, 21 三月 2025 11:26:12 +0800
Subject: [PATCH] 界面更新

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs |  134 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 127 insertions(+), 7 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
index 4d71ad1..8d1ef05 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
@@ -2,9 +2,12 @@
 using HslCommunication.WebSocket;
 using Microsoft.AspNetCore.Mvc.RazorPages;
 using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
 using SqlSugar;
 using System;
+using System.Collections;
 using System.Collections.Generic;
+using System.Globalization;
 using System.Linq;
 using System.Linq.Expressions;
 using System.Reflection.Metadata;
@@ -41,6 +44,7 @@
 using WIDESEA_ITaskInfoService;
 using WIDESEA_Model.Models;
 using WIDESEA_StockRepository;
+using static Org.BouncyCastle.Pqc.Crypto.Utilities.PqcOtherInfoGenerator;
 
 namespace WIDESEA_InboundService
 {
@@ -556,7 +560,7 @@
                     }
                     else
                     {
-                        FeedbackInboundOrder(inboundOrder);
+                        FeedbackInboundOrder(inboundOrder.Id);
                     }
                 }
                 #endregion
@@ -687,6 +691,12 @@
                     return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
                 }
                 List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums);
+                //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡
+                WebResponseContent IsValidContent = IsValidMCDates(models);
+                if (!IsValidContent.Status)
+                {
+                    return content.Error(IsValidContent.Message);
+                }
                 //闄ら噰璐叆搴撳崟浠ュ鍏朵粬鍏ュ簱鍗曠粍鐩樻暟鎹鐞�
                 if (inboundOrder.OrderType != InOrderTypeEnum.Purchase.ObjToInt())
                 {
@@ -703,7 +713,6 @@
                 }
 
                 List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
-
                 if (models.Select(x => x.MaterielCode).Distinct().Count() > 1)
                 {
                     return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁");
@@ -861,7 +870,12 @@
                 {
                     return content.Error($"鐗╂枡涓嶅彲娣锋斁");
                 }
-
+                //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡
+                WebResponseContent IsValidContent = IsValidMCDates(models);
+                if (!IsValidContent.Status)
+                {
+                    return content.Error(IsValidContent.Message);
+                }
                 string materielCode = models.FirstOrDefault()?.MaterielCode ?? "";
                 Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
                 if (materielInfo == null)
@@ -1013,7 +1027,12 @@
                 {
                     return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁");
                 }
-
+                //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡
+                WebResponseContent IsValidContent = IsValidMCDates(models);
+                if (!IsValidContent.Status)
+                {
+                    return content.Error(IsValidContent.Message);
+                }
                 string materielCode = models.FirstOrDefault()?.MaterielCode ?? "";
                 Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
                 if (materielInfo == null)
@@ -1131,11 +1150,12 @@
         /// 鍏ュ簱瀹屾垚涓婃姤ERP
         /// </summary>
         /// <returns></returns>
-        public WebResponseContent FeedbackInboundOrder(Dt_InboundOrder inboundOrder)
+        public WebResponseContent FeedbackInboundOrder(int inboundOrderId)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
+                Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderId).Includes(x => x.Details).First();
                 if (inboundOrder.Details.Count == 0)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
@@ -1232,11 +1252,11 @@
                         .Select(mg => new ReturnPickItem
                         {
                             Material = mg.Key,
-                            Qty = mg.Sum(x => x.Qty),
+                            Qty = mg.Sum(x => x.ReturnQty),
                             Dataitem = mg.Select(d => new ReturnDataItem
                             {
                                 Lotno = d.BatchNo,
-                                Qty = d.Qty,
+                                Qty = d.ReturnQty,
                                 Location = warehouse.WarehouseCode,
                                 Msfpart = d.Code
                             }).ToList()
@@ -1256,6 +1276,61 @@
                 };
                 _invokeERPService.InvokeReturnApi(returnModel);
                 return content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 鎴愬搧鍏ュ簱涓婁紶ERP
+        /// </summary>
+        public WebResponseContent FeedbackProIn(Dt_MesProInOrder mesProInOrder)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                List<ERPProItemsItem> proItemsItems = new List<ERPProItemsItem>();
+                foreach (var item in mesProInOrder.Details)
+                {
+                    ERPProItemsItem proItemsItem = new ERPProItemsItem()
+                    {
+                        PartNum = item.ProductCode,
+                        Rev=item.ProductVersion,
+                        DateCode=item.DateCode,
+                        BatchNumber= item.BagNo,
+                        XLocation=item.XSite,
+                        Xqty=item.XQty,
+                        QtySet=item.SETQty,
+                        QtyPcs=item.OKPCSQTY,
+                        WoList=new List<ERPProListItem>()
+                        {
+                            new ERPProListItem()
+                            {
+                                moNumber=item.MoNumber,
+                                WoNumber=item.ERPOrder,
+                                QtyPcs=item.OKPCSQTY,
+                                QtySet=item.SETQty
+                            }
+                        }
+                    };
+                    proItemsItems.Add(proItemsItem);
+                }
+                ERPProInboundModel proInboundModel = new ERPProInboundModel()
+                {
+                    Way = 1,
+                    Code = mesProInOrder.ProInOrderNo,
+                    CreatorCode = "GSWMS",
+                    CompanyCode = "HATC",
+                    FactoryCode = "HA02",
+                    WarehouseCode = "HA71",
+                    LocationCode = "HA71",
+                    StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    StockFormType= "Production",
+                    StockFormItems= proItemsItems
+                };
+                _invokeERPService.InvokeProInApi(proInboundModel);
             }
             catch (Exception ex)
             {
@@ -1448,5 +1523,50 @@
             }
             return -1;
         }
+        /// <summary>
+        /// 鍒ゆ柇姝g‘鏃堕棿鏍煎紡
+        /// </summary>
+        public WebResponseContent IsValidMCDates(List<MatSerNumAnalysisModel> analysisModels)
+        {
+            string[] effDates = analysisModels.Select(x => x.EffectiveDate).Distinct().ToArray();
+            string[] ProDates = analysisModels.Select(x => x.ProductionDate).Distinct().ToArray();
+            foreach (string effDate in effDates)
+            {
+                string format = "yyyy-MM-dd"; // 鐩爣鏍煎紡
+                DateTime parsedDate;
+                // 瑙f瀽骞堕獙璇佹牸寮�
+                bool isValid = DateTime.TryParseExact(
+                    effDate,
+                    format,
+                    CultureInfo.InvariantCulture,
+                    DateTimeStyles.None,
+                    out parsedDate
+                );
+
+                if (!isValid)
+                {
+                    return WebResponseContent.Instance.Error("鏍煎紡鏃犳晥鎴栨棩鏈熶笉鍚堟硶");
+                }
+            }
+            foreach (string ProDate in ProDates)
+            {
+                string format = "yyyy-MM-dd"; // 鐩爣鏍煎紡
+                DateTime parsedDate;
+                // 瑙f瀽骞堕獙璇佹牸寮�
+                bool isValid = DateTime.TryParseExact(
+                    ProDate,
+                    format,
+                    CultureInfo.InvariantCulture,
+                    DateTimeStyles.None,
+                    out parsedDate
+                );
+
+                if (!isValid)
+                {
+                    return WebResponseContent.Instance.Error("鏍煎紡鏃犳晥鎴栨棩鏈熶笉鍚堟硶");
+                }
+            }
+            return WebResponseContent.Instance.OK();
+        }
     }
 }

--
Gitblit v1.9.3