From 695571c6009ecbc12e7d4a4fb147df7967a1260e Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 07 七月 2025 20:21:19 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 432 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 422 insertions(+), 10 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..3613253 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,11 +2,18 @@
using HslCommunication.WebSocket;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
+using Org.BouncyCastle.Asn1.Ocsp;
using SqlSugar;
using System;
+using System.Collections;
using System.Collections.Generic;
+using System.Dynamic;
+using System.Globalization;
using System.Linq;
using System.Linq.Expressions;
+using System.Reflection;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
@@ -41,6 +48,7 @@
using WIDESEA_ITaskInfoService;
using WIDESEA_Model.Models;
using WIDESEA_StockRepository;
+using static Org.BouncyCastle.Pqc.Crypto.Utilities.PqcOtherInfoGenerator;
namespace WIDESEA_InboundService
{
@@ -69,6 +77,39 @@
_invokeERPService = invokeERPService;
_warehouseService = warehouseService;
_palletTypeInfoRepository = palletTypeInfoRepository;
+ }
+ public override object GetDetailPage(PageDataOptions pageData)
+ {
+ Type t = typeof(Dt_InboundOrder);
+
+ if (pageData.Value == null) return new PageGridData<object>(total: 0, null);
+ string keyName = t.GetKeyName();
+ ////鐢熸垚鏌ヨ鏉′欢
+ //Expression<Func<TEntity, bool>> whereExpression = keyName.CreateExpression<TEntity>(pageData.Value, LinqExpressionType.Equal);
+ int totalCount = 0;
+ PropertyInfo propertyInfo = t.GetProperties().FirstOrDefault(x => x.GetCustomAttribute<Navigate>() != null);
+ if (propertyInfo != null)
+ {
+ Type detailType = propertyInfo.PropertyType.GetGenericArguments()[0];
+ Navigate navigate = propertyInfo.GetCustomAttribute<Navigate>();
+ List<Dt_InboundOrderDetail> list = BaseDal.Db.Queryable<Dt_InboundOrderDetail>().Where(navigate.GetName(), "=", pageData.Value).ToPageList(pageData.Page, pageData.Rows, ref totalCount);
+ decimal sum = 0;
+ list.ForEach(x =>
+ {
+ sum += Convert.ToDecimal(x.OrderQuantity);
+ });
+ PageGridData<Dt_InboundOrderDetail> pageGridData = new PageGridData<Dt_InboundOrderDetail>()
+ {
+ Total= totalCount,
+ Rows=list,
+ Summary=new
+ {
+ OrderQuantity = Math.Round(sum, 3),
+ }
+ };
+ return pageGridData;
+ }
+ return new PageGridData<object>(total: 0, null);
}
/// <summary>
/// 鍏朵粬鍏ュ簱鍗曟帴鏀�(璋冩嫈鍏ヤ粨,瀹緵鍥炴敹,鐗╂枡閿�鍞��璐�)
@@ -236,11 +277,11 @@
List<Dt_InboundOrder> dt_ReceiveOrders = new List<Dt_InboundOrder>();
if (string.IsNullOrEmpty(orderNo))
{
- dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5);
+ dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).Includes(x=>x.Details).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 10);
}
else
{
- dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => (x.InboundOrderNo.Contains(orderNo)) && x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5);
+ dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => (x.InboundOrderNo.Contains(orderNo)) && x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).Includes(x => x.Details).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 10);
}
content.OK(data: dt_ReceiveOrders);
@@ -556,7 +597,7 @@
}
else
{
- FeedbackInboundOrder(inboundOrder);
+ FeedbackInboundOrder(inboundOrder.Id);
}
}
#endregion
@@ -687,6 +728,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 +750,6 @@
}
List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
-
if (models.Select(x => x.MaterielCode).Distinct().Count() > 1)
{
return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁");
@@ -819,7 +865,17 @@
stockInfoDetails.Add(stockInfoDetail);
- notGroupDetail.ReceiptQuantity += model.Quantity;
+ decimal decimalReceiptQuantity = Convert.ToDecimal(notGroupDetail.ReceiptQuantity);
+ decimal decimalModelQuantity = Convert.ToDecimal(model.Quantity);
+ decimal decimalOrderQuantity = Convert.ToDecimal(notGroupDetail.OrderQuantity);
+ decimalReceiptQuantity += decimalModelQuantity;
+ // 妫�鏌ユ槸鍚﹁秴鍑鸿鍗曟暟閲�
+ if (decimalReceiptQuantity > decimalOrderQuantity)
+ {
+ return WebResponseContent.Instance.Error($"缁勭洏鏁伴噺婧㈠嚭{decimalReceiptQuantity - decimalOrderQuantity}");
+ }
+ // 杞洖float绫诲瀷瀛樺偍锛屼絾姣旇緝鍜岃绠楅兘浣跨敤decimal瀹屾垚
+ notGroupDetail.ReceiptQuantity = Convert.ToSingle(decimalReceiptQuantity);
if (notGroupDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
{
notGroupDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
@@ -852,6 +908,232 @@
}
return content;
}
+ public WebResponseContent MaterielPPorGM(string materielBoxCode = "")
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ string SerNum = "";
+ if (materielBoxCode.LastIndexOf("SC:")<0)
+ {
+ SerNum = materielBoxCode;
+ }
+ else
+ {
+ SerNum = materielBoxCode.Substring(0, materielBoxCode.LastIndexOf("SC:") - 1);
+ }
+ MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, SerNum);
+ //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡
+ WebResponseContent IsValidContent = IsValidMCDates(new List<MatSerNumAnalysisModel>() { model });
+ if (!IsValidContent.Status)
+ {
+ return content.Error(IsValidContent.Message);
+ }
+ string result = "";
+ if (materielBoxCode.LastIndexOf("SC:") > 0)
+ {
+ result = materielBoxCode.Substring(materielBoxCode.LastIndexOf("SC:") + 3);
+ }
+ //鑾峰彇鍏ュ簱鍗曟槑缁�
+ Dt_InboundOrderDetail inboundOrderDetail = _inboundRepository.InboundOrderDetailRepository.QueryFirst(x=>x.BatchNo== model.LotNo && x.MaterielCode== model.MaterielCode);
+ if (inboundOrderDetail == null)
+ {
+ return InOtherGMOrPP(model, result);
+ }
+ Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().First(x => x.Id == inboundOrderDetail.OrderId);
+
+ if (inboundOrder == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
+ }
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId);
+ //闄ら噰璐叆搴撳崟浠ュ鍏朵粬鍏ュ簱鍗曠粍鐩樻暟鎹鐞�
+ if (inboundOrder.OrderType != InOrderTypeEnum.Purchase.ObjToInt())
+ {
+ return OtherInGroup(inboundOrder, model.LotNo, 0, warehouse, new List<MatSerNumAnalysisModel>() { model });
+ }
+ Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First();
+ if (receiveOrder == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�");
+ }
+ if (receiveOrder.Details == null || receiveOrder.Details.Count <= 0)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�");
+ }
+
+ List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
+
+ string materielCode = model?.MaterielCode ?? "";
+ Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
+ if (materielInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
+ }
+
+ float beforeQuantity = 0;
+
+ Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == model.LotNo).Includes(x => x.Details).First();
+ if (stockInfo == null)
+ {
+ stockInfo = new Dt_StockInfo()
+ {
+ PalletCode = model.LotNo,
+ StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
+ WarehouseId = inboundOrder.WarehouseId,
+ PalletType = GetPalletTypeGMOrPP(warehouse, result.IsNullOrEmpty() ? "" : result.Split("*")[0]),
+ StockLength = result.IsNullOrEmpty() ? 0 : result.Split("*")[0].ObjToInt(),
+ Details = new List<Dt_StockInfoDetail>()
+ };
+ }
+ else
+ {
+ if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
+ {
+ return WebResponseContent.Instance.Error($"鎵樼洏鍙烽噸澶�");
+ }
+ }
+ if (stockInfo.PalletType==-1)
+ {
+ return WebResponseContent.Instance.Error($"鎵樼洏绫诲瀷涓嶅瓨鍦�");
+ }
+ List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
+ if (purchaseOrderNos.FirstOrDefault(x => x == model.PurchaseOrderNo) == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鏄庣粏涓壘鍒拌閲囪喘鍗�");
+ }
+
+ if (inboundOrderDetail.OrderDetailStatus > OrderDetailStatusEnum.Inbounding.ObjToInt() || inboundOrderDetail.OrderQuantity == inboundOrderDetail.ReceiptQuantity)
+ {
+ return WebResponseContent.Instance.Error($"璇ョ墿鏂欏湪璇ュ叆搴撳崟涓凡鍏ㄩ儴缁勭洏瀹屾垚");
+ }
+ Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
+ {
+ BatchNo = model.LotNo,
+ MaterielCode = materielInfo.MaterielCode,
+ MaterielName = materielInfo.MaterielName,
+ MaterielSpec = materielInfo.MaterielSpec,
+ OrderNo = inboundOrder.InboundOrderNo,
+ SerialNumber = model.SerialNumber,
+ StockQuantity = model.Quantity,
+ OutboundQuantity = 0,
+ Unit = materielInfo.MaterielUnit,
+ Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
+ ProductionDate = model.ProductionDate,
+ EffectiveDate = model.EffectiveDate,
+ InboundOrderRowNo = inboundOrderDetail.RowNo,
+ };
+
+ stockInfo.Details.Add(stockInfoDetail);
+
+ stockInfoDetails.Add(stockInfoDetail);
+
+ inboundOrderDetail.ReceiptQuantity += model.Quantity;
+ if (inboundOrderDetail.ReceiptQuantity > inboundOrderDetail.OrderQuantity)
+ {
+ return WebResponseContent.Instance.Error($"缁勭洏鏁伴噺婧㈠嚭{inboundOrderDetail.ReceiptQuantity - inboundOrderDetail.OrderQuantity}");
+ }
+ if (inboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
+ {
+ inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
+ }
+ float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
+ if (inboundOrder.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt())
+ {
+ inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
+ }
+ _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetail);
+ _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder);
+ _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
+ content.OK(data: stockInfo);
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ public WebResponseContent InOtherGMOrPP(MatSerNumAnalysisModel model,string request = "")
+ {
+ string materielCode = model?.MaterielCode ?? "";
+ Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
+ if (materielInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
+ }
+ float beforeQuantity = 0;
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == materielInfo.WarehouseId);
+ Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == model.LotNo).Includes(x => x.Details).First();
+ if (stockInfo == null)
+ {
+ stockInfo = new Dt_StockInfo()
+ {
+ PalletCode = model.LotNo,
+ StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
+ WarehouseId = warehouse.WarehouseId,
+ PalletType = GetPalletTypeGMOrPP(warehouse, request.IsNullOrEmpty() ?"":request.Split("*")[0]),
+ StockLength = request.IsNullOrEmpty()?0:request.Split("*")[0].ObjToInt(),
+ Details = new List<Dt_StockInfoDetail>()
+ };
+ }
+ else
+ {
+ if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
+ {
+ return WebResponseContent.Instance.Error($"鎵樼洏鍙烽噸澶�");
+ }
+ }
+ if (stockInfo.PalletType == -1)
+ {
+ return WebResponseContent.Instance.Error($"鎵樼洏绫诲瀷涓嶅瓨鍦�");
+ }
+ List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
+ Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
+ {
+ BatchNo = model.LotNo,
+ MaterielCode = materielInfo.MaterielCode,
+ MaterielName = materielInfo.MaterielName,
+ MaterielSpec = materielInfo.MaterielSpec,
+ OrderNo = "",
+ SerialNumber = model.SerialNumber,
+ StockQuantity = model.Quantity,
+ OutboundQuantity = 0,
+ Unit = materielInfo.MaterielUnit,
+ Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
+ ProductionDate = model.ProductionDate,
+ EffectiveDate = model.EffectiveDate,
+ InboundOrderRowNo = 0,
+ };
+
+ stockInfo.Details.Add(stockInfoDetail);
+
+ stockInfoDetails.Add(stockInfoDetail);
+ float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
+ _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
+ return WebResponseContent.Instance.OK(data: stockInfo);
+ }
+ public int GetPalletTypeGMOrPP(Dt_Warehouse warehouse, string boxWidth)
+ {
+ if (warehouse.WarehouseCode == WarehouseEnum.HA152.ToString())
+ {
+
+ if (boxWidth.ObjToInt() <= 690 && boxWidth.ObjToInt()>=520)
+ {
+ return 15;
+ }
+ else if (boxWidth.ObjToInt() > 690 && boxWidth.ObjToInt() <= 1400)
+ {
+ return 16;
+ }
+
+ }
+ else if (warehouse.WarehouseCode == WarehouseEnum.HA58.ToString())
+ {
+ Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.WarehouseId == warehouse.WarehouseId);
+ return palletTypeInfo.PalletType;
+ }
+ return -1;
+ }
public WebResponseContent OtherInGroup(Dt_InboundOrder inboundOrder,string? palletCode,int Initiallife,Dt_Warehouse warehouse,List<MatSerNumAnalysisModel> models)
{
WebResponseContent content = new WebResponseContent();
@@ -861,7 +1143,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 +1300,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 +1423,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 +1525,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 +1549,71 @@
};
_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>();
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId==mesProInOrder.WarehouseId);
+ string batchNoRemark = "";
+ foreach (var item in mesProInOrder.Details)
+ {
+ ERPProItemsItem proItemsItem = new ERPProItemsItem()
+ {
+ PartNum = item.ProductCode,
+ Rev=item.ProductVersion,
+ DateCode=item.DateCode,
+ BatchNumber= item.ProductCode,
+ 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
+ }
+ }
+ };
+ batchNoRemark += item.BagNo + ",";
+ proItemsItems.Add(proItemsItem);
+ }
+ ERPProInboundModel proInboundModel = new ERPProInboundModel()
+ {
+ Way = 1,
+ Code = mesProInOrder.ProInOrderNo,
+ CreatorCode = "GSWMS",
+ CompanyCode = "HATC",
+ FactoryCode = "HA02",
+ WarehouseCode = warehouse.WarehouseCode,
+ LocationCode = warehouse.WarehouseCode,
+ StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+ StockFormType= "Production",
+ StockFormItems= proItemsItems,
+ Remark=batchNoRemark
+ };
+ string response = _invokeERPService.InvokeProInApi(proInboundModel);
+ ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
+ if (requestContent.res != 1)
+ {
+ return content.Error($"{requestContent.Data}");
+ }
+ content.OK();
}
catch (Exception ex)
{
@@ -1446,7 +1804,61 @@
}
return palletTypeInfo.PalletType;
}
+ else if (warehouse.WarehouseCode == WarehouseEnum.HA58.ObjToString())
+ {
+ Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2));
+ if (palletTypeInfo == null)
+ {
+ throw new Exception($"鎵樼洏鍙烽敊璇�");
+ }
+ return palletTypeInfo.PalletType;
+ }
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