From e561870f9644a5e80925346485fe623da678177f Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期二, 14 十月 2025 10:20:57 +0800
Subject: [PATCH] 调整WMS出库逻辑,原辅料可选择成品库出库;
---
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 785 +++++++++++++++++++++++++++++++++----------------------
1 files changed, 465 insertions(+), 320 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 16cb84d..cadc2e7 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -1,14 +1,17 @@
锘縰sing Model.InterFaceModel;
using Model.ModelDto;
+using Model.ModelDto.BllAsnDto;
using Model.ModelDto.SysDto;
using Model.ModelVm;
using Model.ModelVm.SysVm;
+using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
+using Utility.Tools;
using WMS.BLL.LogServer;
using WMS.DAL;
using WMS.Entity.BllAsnEntity;
@@ -138,7 +141,7 @@
}
//鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲�
- public string GetAsnDetailQtyList(int id)
+ public LabelPrintInfoDto GetAsnDetailQtyList(int id)
{
try
{
@@ -147,14 +150,23 @@
{
throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟槑缁�");
}
+ var data = new LabelPrintInfoDto();
+ data.ProductionTime = string.IsNullOrEmpty(detail.Lot1) ? "" : Convert.ToDateTime(detail.Lot1).ToString("yyyy-MM-dd");
+ data.ExpirationTime = string.IsNullOrEmpty(detail.Lot2) ? "" : Convert.ToDateTime(detail.Lot2).ToString("yyyy-MM-dd");
+ data.SupplierLot = detail.SupplierLot;
var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null? 0: m.SamplingQty));
+ if (labelQty == null)
+ {
+ labelQty = 0;
+ }
var qty = detail.Qty - labelQty;
if (qty<0)
{
qty = 0;
}
- return qty.ToString();
+ data.Qty = qty.ToString();
+ return data;
}
catch (Exception e)
{
@@ -263,7 +275,7 @@
try
{
- if (model.Origin == "褰曞叆")
+ if (model.Origin == "褰曞叆" || model.Origin == "瀵煎叆")
{
model.ASNNo = new Common().GetMaxNo("ASN");
}
@@ -278,6 +290,7 @@
throw new Exception("鍗曟嵁绫诲瀷涓嶅彲涓虹┖!");
}
}
+
lock (AsnLock)
{
@@ -297,6 +310,8 @@
};
List<BllArrivalNoticeDetail> details = new List<BllArrivalNoticeDetail>();
+ var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
+
foreach (ArrivalNoticeDetailVm detailModel in model.AsnDetail)
{
if (string.IsNullOrEmpty(detailModel.SkuNo))
@@ -314,7 +329,7 @@
strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
continue;
}
-
+
if ( model.Type == "5" || model.Type == "6" || model.Type == "7")
{
if (!string.IsNullOrWhiteSpace(detailModel.LotNo))
@@ -347,12 +362,29 @@
detailModel.LotNo = maxLotNo;
}
}
- if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8")
+ //if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8")
+ //{
+ // if (string.IsNullOrWhiteSpace(detailModel.LotNo))
+ // {
+ // throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!");
+ // }
+ //}
+ detailModel.BoxCodeStr = detailModel.LotNo;
+ if (string.IsNullOrWhiteSpace(detailModel.LotNo))
{
- if (string.IsNullOrWhiteSpace(detailModel.LotNo))
+ string toDayTime = DateTime.Now.ToString("yyyyMM");
+ var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>()
+ .Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK")
+ && m.CreateTime.ToString("yyyyMM") == DateTime.Now.ToString("yyyyMM")).Max(m => m.BoxCodeStr);
+ if(string.IsNullOrWhiteSpace(maxBoxCodeStr))
{
- throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!");
+ maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001";
}
+ else
+ {
+ maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString();
+ }
+ detailModel.BoxCodeStr = maxBoxCodeStr;
}
// 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
@@ -371,6 +403,37 @@
{
detailModel.Price = 0;
}
+ var sku = skuList.FirstOrDefault(m => m.SkuNo == detailModel.SkuNo);
+ if (sku == null)
+ {
+ throw new Exception("鏈煡璇㈠嚭鐗╂枡淇℃伅!");
+ }
+ string lot1 = detailModel.Lot1;
+ string lot2 = detailModel.Lot2;
+ if (sku.IsInspect == "0")//鏄惁鍏嶆锛�0锛氬惁 1锛氭槸
+ {
+ //涓嶅厤妫�鐗╂枡 鐢熶骇鏃ユ湡銆佹湁鏁堟湡涓嶈兘涓虹┖
+ DateTime lot12;
+ DateTime lot22;
+ if (!DateTime.TryParse(detailModel.Lot1, out lot12))
+ {
+ throw new Exception("涓嶅厤妫�鐗╂枡鐢熶骇鏃ユ湡杞崲澶辫触");
+ }
+ if (!DateTime.TryParse(detailModel.Lot2, out lot22))
+ {
+ throw new Exception("涓嶅厤妫�鐗╂枡杩囨湡鏃ユ湡杞崲澶辫触");
+ }
+ lot1 = lot12.ToString("yyyy-MM-dd");
+ lot2 = lot22.ToString("yyyy-MM-dd");
+ }
+ if (string.IsNullOrWhiteSpace(detailModel.PackagNo))
+ {
+ detailModel.PackagNo = sku.PackagNo;
+ if (string.IsNullOrWhiteSpace(detailModel.PackagNo))
+ {
+ throw new Exception("鍖呰涓嶈兘涓虹┖");
+ }
+ }
// 璁$畻鍑烘�婚噾棰�
detailModel.Money = detailModel.Price * detailModel.Qty;
BllArrivalNoticeDetail detail = new BllArrivalNoticeDetail()
@@ -378,8 +441,8 @@
ASNNo = model.ASNNo,
SkuNo = detailModel.SkuNo,
SkuName = detailModel.SkuName,
- Standard = detailModel.Standard,
- LotNo = detailModel.LotNo.Trim(),
+ Standard = sku.Standard,
+ LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(),
LotText = detailModel.LotText,
Qty = (decimal)detailModel.Qty,
PackagNo = detailModel.PackagNo,
@@ -393,6 +456,9 @@
Status = "0",
IsSampling = "0",
InspectStatus = "0",
+ Lot1 = lot1, //鐢熶骇鏃ユ湡
+ Lot2 = lot2, // 杩囨湡鏃ユ湡
+ BoxCodeStr = detailModel.BoxCodeStr,
UDF1 = detailModel.UDF1,
UDF2 = detailModel.UDF2,
UDF3 = detailModel.UDF3,
@@ -439,38 +505,93 @@
}
}
- //缂栬緫鍏ュ簱鍗曟嵁
+ //瀵煎叆鍏ュ簱鍗曟嵁
+ public string ImportArrivalNotice(ArrivalNoticeVms models)
+ {
+ string strMessage = "";
+ try
+ {
+ if (models.ListArrivalNotice.Count <= 0)
+ {
+ strMessage = "-1:鏂囦欢鍐呮棤鏁版嵁璇锋牳瀹�!";
+ }
+ var num = 0;
+ int CreateUser = Convert.ToInt32(models.CreateUser);
+ List<string> noticeList = new List<string>();
+ foreach (ArrivalNoticeVm model in models.ListArrivalNotice)
+ {
+ try
+ {
+ model.CreateUser = models.CreateUser;
+ model.Origin = "瀵煎叆";
+ var msg = AddArrivalNotice(model);
+ strMessage += msg;
+ if (msg == "")
+ {
+ num += 1;
+ var hasBoxItem = noticeList.Exists(x => x == model.ASNNo);
+ if (!hasBoxItem)
+ {
+ noticeList.Add(model.ASNNo);
+ }
+ }
+ }
+ catch(Exception ex)
+ {
+ throw new Exception($"鐗╂枡缂栫爜锛歿model.AsnDetail[0].SkuNo},鐗╂枡鍚嶇О锛歿model.AsnDetail[0].SkuName}锛屽鍏ュけ璐ワ細"+ex.Message);
+ // ignored
+ }
+ }
+ if (num > 0)
+ {
+ new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", $"鍏卞鍏ヤ簡{noticeList.Count}鏉″崟鎹�", "瀵煎叆", $"鍏卞鍏ヤ簡{noticeList.Count}鏉″崟鎹�", CreateUser);
+ }
+ if (strMessage.Contains("-1") && num > 0)
+ {
+ return "閮ㄥ垎瀵煎叆鎴愬姛" + strMessage;
+ }
+ if (num > 0)
+ {
+ return "瀵煎叆鎴愬姛" + strMessage;
+ }
+
+ return strMessage;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// 缂栬緫鍏ュ簱鍗曟嵁
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
public string EditArrivalNotice(ArrivalNoticeVm model)
{
string strMessage = "";
- string sqlString = string.Empty;
- string sqlDetailStr = string.Empty;
try
{
lock (AsnLock)
{
- //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+ // 鍒ゆ柇鍗曟嵁绫诲瀷鍙婃壒娆¤鍒欒鏄�
// 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� 8 鐢熶骇閫�鏂欏叆搴�
- //0銆�2銆�3銆�4 鎵规涓嶈兘涓虹┖
- //1銆佹坊鍔犲繀椤讳负绌恒�佺紪杈戜笉鍙负绌猴紝涓嶈兘鏇存敼
- //5銆�6 鎵规鍙负绌哄彲涓嶄负绌�
- //7 蹇呴』涓虹┖
- var TypeLot = " 5, 6, 7"; //鎵规涓虹敓鎴愭壒娆″崟鎹被鍨�
-
+ var TypeLot = " 5, 6, 7"; // 鎵规涓虹敓鎴愭壒娆″崟鎹被鍨�
+
+ // 楠岃瘉鍗曟嵁瀛樺湪鎬у拰鐘舵��
var asnInfo = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0");
- if (asnInfo == null)
+ if (asnInfo == null)
{
- strMessage = "-1:鍗曞彿涓嶅瓨鍦紝鎴栧凡鍒犻櫎!;";
- return strMessage;
+ return "-1:鍗曞彿涓嶅瓨鍦紝鎴栧凡鍒犻櫎!;";
}
if (asnInfo.Status != "0")
{
- strMessage = "-1:鍗曟嵁鐘舵�佸彉鏇达紝涓嶅彲缂栬緫;";
- return strMessage;
+ return "-1:鍗曟嵁鐘舵�佸彉鏇达紝涓嶅彲缂栬緫;";
}
var dateTime = DateTime.Now;
- // 缂栬緫鎬诲崟
+ // 鏇存柊涓诲崟鎹俊鎭�
asnInfo.CustomerNo = model.CustomerNo;
asnInfo.CustomerName = model.CustomerName;
asnInfo.LotNo = model.LotNo;
@@ -479,222 +600,220 @@
asnInfo.UpdateUser = model.CreateUser;
var detailModels = model.AsnDetail;
- sqlDetailStr += $"SELECT * FROM BllArrivalNoticeDetail WHERE ASNNo = '{model.ASNNo}' and isDel = '0';";
- //var dbDetailModels = DataContext.Db.Ado.SqlQuery<BllArrivalNoticeDetail>(sqlDetailStr);
- var dbDetailModels = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == model.ASNNo && m.IsDel == "0").ToList();
+ var dbDetailModels = Db.Queryable<BllArrivalNoticeDetail>()
+ .Where(m => m.ASNNo == model.ASNNo && m.IsDel == "0").ToList();
- sqlDetailStr = string.Empty;
// 澶勭悊宸插垹闄ょ殑鏄庣粏
- foreach (BllArrivalNoticeDetail dbDetailModel in dbDetailModels)
+ foreach (var dbDetail in dbDetailModels)
{
- if (detailModels.Count(it => it.Id == dbDetailModel.Id) == 0)
+ if (!detailModels.Any(it => it.Id == dbDetail.Id))
{
- dbDetailModel.IsDel = "1";
- dbDetailModel.UpdateTime = dateTime;
- dbDetailModel.UpdateUser = model.CreateUser;
+ dbDetail.IsDel = "1";
+ dbDetail.UpdateTime = dateTime;
+ dbDetail.UpdateUser = model.CreateUser;
}
}
- // 澶勭悊淇敼鍜屾坊鍔犵殑鏄庣粏
+ // 澶勭悊淇敼鍜屾柊澧炵殑鏄庣粏
string toDayTime = dateTime.ToString("yyyymmdd");
List<BllArrivalNoticeDetail> addDetails = new List<BllArrivalNoticeDetail>();
List<BllArrivalNoticeDetail> editDetails = new List<BllArrivalNoticeDetail>();
- var maxLotNo = "";
- foreach (ArrivalNoticeDetailVm detailModel in detailModels)
+
+ foreach (var detailModel in detailModels)
{
+ // 鍩虹楠岃瘉
if (string.IsNullOrEmpty(detailModel.SkuNo))
- {
- strMessage = "-1:鐗╂枡缂栫爜涓嶅彲涓虹┖;";
- return strMessage;
- }
+ return "-1:鐗╂枡缂栫爜涓嶅彲涓虹┖;";
+
if (string.IsNullOrEmpty(detailModel.SkuName))
- {
- strMessage = "-1:鐗╂枡鍚嶇О涓嶅彲涓虹┖;";
- return strMessage;
- }
+ return "-1:鐗╂枡鍚嶇О涓嶅彲涓虹┖;";
+
if (detailModel.Qty == null || detailModel.Qty <= 0)
+ return "-1:鏁伴噺蹇呴』澶т簬0;";
+
+ // 鍏抽敭閫昏緫锛氳幏鍙栫墿鏂欑殑鍙楁帶鐘舵��
+ // 1. 鏍规嵁鐗╂枡缂栫爜鏌ヨ鐗╂枡淇℃伅 FirstOrDefault
+ var material = Db.Queryable<SysMaterials>()
+ .First(m => m.SkuNo == detailModel.SkuNo && m.IsDel == "0");
+ if (material == null)
+ return $"-1:鐗╂枡缂栫爜{detailModel.SkuNo}涓嶅瓨鍦ㄦ垨宸插垹闄�;";
+
+ // 2. 灏嗗瓧绗︿覆绫诲瀷鐨処sControlled杞崲涓篵ool锛堟牴鎹疄闄呭彇鍊艰鍒欒皟鏁达級
+ // 姣斿锛�"1"琛ㄧず鍙楁帶锛�"0"琛ㄧず涓嶅彈鎺э紱鎴�"True"/"False"锛涙垨"鏄�"/"鍚�"
+ bool isControlled;
+ if (!bool.TryParse(material.IsControlled, out isControlled))
{
- strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
- return strMessage;
- }
-
- if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4")
- {
- if (string.IsNullOrWhiteSpace(detailModel.LotNo))
- {
- throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!");
- }
+ // 澶勭悊闈炴爣鍑嗘牸寮忥紙濡�"1"/"0"锛�
+ isControlled = material.IsControlled == "1" ||
+ string.Equals(material.IsControlled, "鏄�", StringComparison.OrdinalIgnoreCase);
}
- if (TypeLot.Contains(model.Type))
+ // 3. 鏍规嵁鍙楁帶鐘舵�侀獙璇佹棩鏈�
+ if (isControlled)
{
- if (string.IsNullOrWhiteSpace(detailModel.Lot1))
- {
- throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
- }
+ // 鍙楁帶鐘舵�侊細鐢熶骇鏃ユ湡蹇呭~
+ if (string.IsNullOrWhiteSpace(detailModel.Lot1))
+ return $"-1:鐗╂枡{detailModel.SkuNo}涓哄彈鎺х墿鏂欙紝鐢熶骇鏃ユ湡涓嶅彲涓虹┖;";
+
+ // 鍙楁帶鐘舵�侊細杩囨湡鏃ユ湡蹇呭~
if (string.IsNullOrWhiteSpace(detailModel.Lot2))
- {
+ return $"-1:鐗╂枡{detailModel.SkuNo}涓哄彈鎺х墿鏂欙紝杩囨湡鏃ユ湡涓嶅彲涓虹┖;";
+
+ // 楠岃瘉鏃ユ湡鏍煎紡鏈夋晥鎬�
+ if (!DateTime.TryParse(detailModel.Lot1, out DateTime productionDate))
+ return $"-1:鐗╂枡{detailModel.SkuNo}鐨勭敓浜ф棩鏈熸牸寮忛敊璇紝璇蜂娇鐢ㄦ湁鏁堟棩鏈熸牸寮�;";
+
+ if (!DateTime.TryParse(detailModel.Lot2, out DateTime expiryDate))
+ return $"-1:鐗╂枡{detailModel.SkuNo}鐨勮繃鏈熸棩鏈熸牸寮忛敊璇紝璇蜂娇鐢ㄦ湁鏁堟棩鏈熸牸寮�;";
+
+ // 楠岃瘉杩囨湡鏃ユ湡涓嶈兘鏃╀簬鐢熶骇鏃ユ湡
+ if (expiryDate <= productionDate)
+ return $"-1:鐗╂枡{detailModel.SkuNo}鐨勮繃鏈熸棩鏈熶笉鑳芥棭浜庣敓浜ф棩鏈�;";
+ }
+ // 涓嶅彈鎺х姸鎬侊細鏃ユ湡闈炲繀濉紝鏃犻渶楠岃瘉
+
+ // 鍘熸湁鎵规鐩稿叧楠岃瘉锛堜繚鐣欙級
+ if (TypeLot.Contains(model.Type))
+ {
+ if (string.IsNullOrWhiteSpace(detailModel.Lot1))
+ throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!");
+
+ if (string.IsNullOrWhiteSpace(detailModel.Lot2))
throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!");
- }
}
- // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
- var com = dbDetailModels.Where(m => m.SkuNo == detailModel.SkuNo
- && m.LotNo == detailModel.LotNo && m.Id != detailModel.Id && m.IsDel == "0").Count();
- if (com > 0)
+ // 楠岃瘉鐗╂枡鍜屾壒娆″彿鏄惁閲嶅
+ if (dbDetailModels.Any(m => m.SkuNo == detailModel.SkuNo
+ && m.LotNo == detailModel.LotNo
+ && m.Id != detailModel.Id
+ && m.IsDel == "0"))
{
- strMessage = "-1:鐗╂枡鍜屾壒娆″彿閲嶅;";
- return strMessage;
+ return "-1:鐗╂枡鍜屾壒娆″彿閲嶅;";
}
- if (detailModel.Price == null)
- {
- detailModel.Price = 0;
- }
- //鐢熸垚鑷湁鎵规
+ // 澶勭悊浠锋牸榛樿鍊�
+ detailModel.Price ??= 0;
+
+ // 鐢熸垚绠辩爜锛堣嚜鏈夋壒娆¢�昏緫锛�
if (detailModel.Id == 0 || detailModel.Id == null || string.IsNullOrWhiteSpace(detailModel.LotNo))
{
- var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && TypeLot.Contains(m.Type)).Select(m => m.ASNNo).ToList();
- if (string.IsNullOrWhiteSpace(maxLotNo))
- {
- maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m => m.LotNo);
- }
- if (string.IsNullOrWhiteSpace(maxLotNo))
- {
- maxLotNo = toDayTime.Substring(2, 6) + "0001";
- }
- else
- {
- var lotStr = maxLotNo.Substring(0, 6);
- var timeStr = toDayTime.Substring(2, 6);
- if (lotStr == timeStr)
- {
- maxLotNo = toDayTime.Substring(2, 6) + (int.Parse(maxLotNo.Substring(6, 4)) + 1).ToString().PadLeft(4, '0');
- }
- else
- {
- maxLotNo = timeStr + "0001";
- }
- }
- detailModel.LotNo = maxLotNo;
+ var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>()
+ .Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK")
+ && m.CreateTime.ToString("yyyyMM") == DateTime.Now.ToString("yyyyMM"))
+ .Max(m => m.BoxCodeStr);
+
+ detailModel.BoxCodeStr = string.IsNullOrWhiteSpace(maxBoxCodeStr)
+ ? "BK" + toDayTime.Substring(2, 4) + "0001"
+ : "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString();
}
+ // 澶勭悊鏂板鏄庣粏
if (detailModel.Id == 0 || detailModel.Id == null)
{
- //if (model.Type == "1")
- //{
- // strMessage = "-1:閲囪喘鍏ュ簱涓嶅彲鏇存敼鏄庣粏锛屽彧鍙紪杈戞暟閲�;";
- // return strMessage;
- //}
- // 璁$畻鍑烘�婚噾棰�
detailModel.Money = detailModel.Price * detailModel.Qty;
-
- BllArrivalNoticeDetail addModel = new BllArrivalNoticeDetail()
+ addDetails.Add(new BllArrivalNoticeDetail
{
ASNNo = model.ASNNo,
SkuNo = detailModel.SkuNo,
SkuName = detailModel.SkuName,
Standard = detailModel.Standard,
- LotNo = detailModel.LotNo.Trim(),
+ LotNo = detailModel.LotNo?.Trim() ?? "",
LotText = detailModel.LotText,
Qty = (decimal)detailModel.Qty,
PackagNo = detailModel.PackagNo,
Price = detailModel.Price,
Money = detailModel.Money,
- FactQty = 0, // 宸茬粍鏁伴噺
- CompleteQty = 0, // 瀹屾垚鏁伴噺
+ FactQty = 0,
+ CompleteQty = 0,
IsBale = detailModel.IsBale,
IsBelt = detailModel.IsBelt,
SupplierLot = detailModel.SupplierLot,
Status = "0",
+ IsSampling = "0",
+ InspectStatus = "0",
Lot1 = detailModel.Lot1,
Lot2 = detailModel.Lot2,
+ BoxCodeStr = detailModel.BoxCodeStr,
UDF1 = detailModel.UDF1,
UDF2 = detailModel.UDF2,
UDF3 = detailModel.UDF3,
UDF4 = detailModel.UDF4,
UDF5 = detailModel.UDF5,
- CreateUser=(int)model.CreateUser
- };
- addDetails.Add(addModel);
+ CreateUser = (int)model.CreateUser
+ });
}
+ // 澶勭悊缂栬緫鏄庣粏
else
{
- //鍒ゆ柇鏄惁鏇存敼
- int rowNum = dbDetailModels
- .Count(it => it.Id == detailModel.Id
- && it.Qty == detailModel.Qty
- && it.LotNo == detailModel.LotNo
- && it.LotText == detailModel.LotText
- && it.SupplierLot == detailModel.SupplierLot
- && it.IsBale == detailModel.IsBale
- && it.IsBelt == detailModel.IsBelt
- && it.Lot1 == detailModel.Lot1 // 鐢熶骇鏃ユ湡
- && it.Lot2 == detailModel.Lot2 // 杩囨湡鏃ユ湡
- && it.UDF1 == detailModel.UDF1
- && it.UDF2 == detailModel.UDF2
- && it.UDF3 == detailModel.UDF3
- && it.UDF4 == detailModel.UDF4
- && it.UDF5 == detailModel.UDF5);
- if (rowNum > 0)
+ // 妫�鏌ユ槸鍚︽湁瀹為檯淇敼
+ var existingDetail = dbDetailModels.First(m => m.Id == detailModel.Id);
+ if (existingDetail.Qty == detailModel.Qty
+ && existingDetail.LotNo == detailModel.LotNo
+ && existingDetail.LotText == detailModel.LotText
+ && existingDetail.SupplierLot == detailModel.SupplierLot
+ && existingDetail.IsBale == detailModel.IsBale
+ && existingDetail.IsBelt == detailModel.IsBelt
+ && existingDetail.Lot1 == detailModel.Lot1
+ && existingDetail.Lot2 == detailModel.Lot2
+ && existingDetail.BoxCodeStr == detailModel.BoxCodeStr
+ && existingDetail.UDF1 == detailModel.UDF1
+ && existingDetail.UDF2 == detailModel.UDF2
+ && existingDetail.UDF3 == detailModel.UDF3
+ && existingDetail.UDF4 == detailModel.UDF4
+ && existingDetail.UDF5 == detailModel.UDF5)
{
continue;
}
- var dbDetail = dbDetailModels.First(m => m.Id == detailModel.Id);
- if (TypeLot.Contains(model.Type))
+ // 鎵规涓嶅彲鏇存敼楠岃瘉
+ if (TypeLot.Contains(model.Type)
+ && !string.IsNullOrWhiteSpace(existingDetail.LotNo)
+ && existingDetail.LotNo != detailModel.LotNo)
{
- if (!string.IsNullOrWhiteSpace(dbDetail.LotNo))
- {
- if (dbDetail.LotNo != detailModel.LotNo)
- {
- strMessage = "-1:褰撳墠鍗曟嵁绫诲瀷涓嶅彲鏇存敼鎵规;";
- continue;
- }
- }
-
+ return "-1:褰撳墠鍗曟嵁绫诲瀷涓嶅彲鏇存敼鎵规;";
}
- // 璁$畻鍑烘�婚噾棰�
- detailModel.Money = detailModel.Price * detailModel.Qty;
- dbDetail.Qty = (decimal)detailModel.Qty;
- dbDetail.LotNo = detailModel.LotNo;
- dbDetail.Money = detailModel.Money;
- dbDetail.LotText = detailModel.LotText;
- dbDetail.SupplierLot = detailModel.SupplierLot;
- dbDetail.IsBale = detailModel.IsBale;
- dbDetail.Lot1 = detailModel.Lot1;
- dbDetail.Lot2 = detailModel.Lot2;
- dbDetail.UDF1 = detailModel.UDF1;
- dbDetail.UDF2 = detailModel.UDF2;
- dbDetail.UDF3 = detailModel.UDF3;
- dbDetail.UDF4 = detailModel.UDF4;
- dbDetail.UDF5 = detailModel.UDF5;
- dbDetail.UpdateTime = dateTime;
- dbDetail.UpdateUser = model.CreateUser;
+ // 鏇存柊鏄庣粏淇℃伅
+ existingDetail.Qty = (decimal)detailModel.Qty;
+ existingDetail.LotNo = detailModel.LotNo?.Trim() ?? "";
+ existingDetail.Money = detailModel.Price * detailModel.Qty;
+ existingDetail.LotText = detailModel.LotText;
+ existingDetail.SupplierLot = detailModel.SupplierLot;
+ existingDetail.IsBale = detailModel.IsBale;
+ existingDetail.Lot1 = detailModel.Lot1;
+ existingDetail.Lot2 = detailModel.Lot2;
+ existingDetail.BoxCodeStr = detailModel.BoxCodeStr;
+ existingDetail.UDF1 = detailModel.UDF1;
+ existingDetail.UDF2 = detailModel.UDF2;
+ existingDetail.UDF3 = detailModel.UDF3;
+ existingDetail.UDF4 = detailModel.UDF4;
+ existingDetail.UDF5 = detailModel.UDF5;
+ existingDetail.UpdateTime = dateTime;
+ existingDetail.UpdateUser = model.CreateUser;
- editDetails.Add(dbDetail);
+ editDetails.Add(existingDetail);
}
}
+ // 浜嬪姟澶勭悊
Db.Ado.BeginTran();
Db.Updateable(dbDetailModels).ExecuteCommand();
int rowCount = Db.Updateable(asnInfo).ExecuteCommand();
- var rowDetailCount = 1;
- if (addDetails.Count > 0)
- {
- rowDetailCount = Db.Insertable(addDetails).ExecuteCommand();
- }
- if (editDetails.Count > 0)
- {
- rowDetailCount += Db.Updateable(editDetails).ExecuteCommand();
- }
+ int rowDetailCount = 1;
- Db.Ado.CommitTran();
+ if (addDetails.Any())
+ rowDetailCount = Db.Insertable(addDetails).ExecuteCommand();
+
+ if (editDetails.Any())
+ rowDetailCount += Db.Updateable(editDetails).ExecuteCommand();
+
if (rowCount > 0 && rowDetailCount > 0)
{
- new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "缂栬緫", $"缂栬緫浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
+ Db.Ado.CommitTran();
+ new OperationASNServer().AddLogOperationAsn(
+ "鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "缂栬緫",
+ $"缂栬緫浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
return strMessage;
}
else
@@ -709,6 +828,7 @@
throw ex;
}
}
+
//鍒犻櫎鍏ュ簱鍗�
public string DelArrivalNotice(ArrivalNoticeVm model)
{
@@ -720,10 +840,10 @@
return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
}
- if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
- {
- return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
- }
+ //if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
+ //{
+ // return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
+ //}
// 鍒犻櫎鎬诲崟
var editDateTime = DateTime.Now;
@@ -904,108 +1024,108 @@
return "-1:鍏冲崟澶辫触锛�";
}
#region 閲囪喘璁″垝锛岃嫢鏄噰璐鍗曟牴鎹噰璐鍒掑崟鑷姩鐢熸垚鍏ュ簱鍗曚俊鎭�
- if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode))
- {
- // 鑾峰彇閲囪喘鎬诲崟淇℃伅
- var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0");
- //鍏ュ簱鍗曟槑缁�
- var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>()
- .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
- foreach (var item in noticeDetailList)
- {
- //閲囪喘鍗曟槑缁�
- var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>()
- .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0");
- planDetail.CompleteQty += item.CompleteQty;
- if (planDetail.CompleteQty >= planDetail.Qty)
- {
- planDetail.Status = "2";
- planDetail.CompleteTime = comTime;
- }
- else
- {
- planDetail.Status = "1";
- }
- Db.Updateable(planDetail).ExecuteCommand();
- }
- // 缁存姢閲囪喘鎬诲崟淇℃伅
- var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2");
- if (planDetailNum == 0)
- {
- planOrd.Status = "2";
- planOrd.CompleteTime = comTime;
- Db.Updateable(planOrd).ExecuteCommand();
- }
- else
- {
- if (planOrd.Status == "0")
- {
- planOrd.Status = "1";
- Db.Updateable(planOrd).ExecuteCommand();
- }
- }
- //閲囪喘鍗曟槑缁�
- var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>()
- .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList();
- foreach (var item in planDetailList)
- {
- //鍒ゆ柇鏈夋棤姝e湪鎵ц鐨�
- var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0" && it.Status == "0");
- if (noticeDetail != null)
- {
- continue;
- }
- // 鑾峰彇鐗╂枡璇︾粏淇℃伅
- var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == item.SkuNo && it.IsDel == "0");
- if (skuModel == null)
- {
- continue;
- }
- // 楠岃瘉鍖呰淇℃伅鏄惁瀛樺湪
- var packagModel = Db.Queryable<SysPackag>().First(it => it.PackagNo == item.PackagNo && it.IsDel == "0");
- if (packagModel == null)
- {
- continue;
- }
- // 鍏ュ簱鎬昏〃淇℃伅
- string asnNo = new Common().GetMaxNo("ASN");
- var asnModel1 = new BllArrivalNotice()
- {
- ASNNo = asnNo,
- Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛�
- Type = "1",//鍗曟嵁绫诲瀷锛�1锛氶噰璐叆搴�
- Origin = "閲囪喘鍗�",
- CustomerNo = item.CustomerNo,
- CustomerName = item.CustomerName,
- OrderCode = planOrd.OrderCode,
- CreateUser = 0
- };
- // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
- Db.Insertable(asnModel1).ExecuteCommand();
- //鍏ュ簱鍗曟槑缁�
- var arrDetailModel = new BllArrivalNoticeDetail()
- {
- ASNNo = asnNo,
- SkuNo = skuModel.SkuNo,
- SkuName = skuModel.SkuName,
- Standard = skuModel.Standard,
- LotNo = "",
- LotText = "",
- Qty = 0,
- FactQty = 0,
- CompleteQty = 0,
- PackagNo = packagModel.PackagNo,
- SupplierLot = "",
- Status = "0",
- IsSampling = "0",
- InspectStatus = "0",
- OrderDetailCode = item.OrderDetailCode,
- CreateUser = 0
- };
- // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
- Db.Insertable(arrDetailModel).ExecuteCommand();
- }
- }
+ //if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode))
+ //{
+ // // 鑾峰彇閲囪喘鎬诲崟淇℃伅
+ // var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0");
+ // //鍏ュ簱鍗曟槑缁�
+ // var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>()
+ // .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
+ // foreach (var item in noticeDetailList)
+ // {
+ // //閲囪喘鍗曟槑缁�
+ // var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>()
+ // .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0");
+ // planDetail.CompleteQty += item.CompleteQty;
+ // if (planDetail.CompleteQty >= planDetail.Qty)
+ // {
+ // planDetail.Status = "2";
+ // planDetail.CompleteTime = comTime;
+ // }
+ // else
+ // {
+ // planDetail.Status = "1";
+ // }
+ // Db.Updateable(planDetail).ExecuteCommand();
+ // }
+ // // 缁存姢閲囪喘鎬诲崟淇℃伅
+ // var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2");
+ // if (planDetailNum == 0)
+ // {
+ // planOrd.Status = "2";
+ // planOrd.CompleteTime = comTime;
+ // Db.Updateable(planOrd).ExecuteCommand();
+ // }
+ // else
+ // {
+ // if (planOrd.Status == "0")
+ // {
+ // planOrd.Status = "1";
+ // Db.Updateable(planOrd).ExecuteCommand();
+ // }
+ // }
+ // //閲囪喘鍗曟槑缁�
+ // var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>()
+ // .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList();
+ // foreach (var item in planDetailList)
+ // {
+ // //鍒ゆ柇鏈夋棤姝e湪鎵ц鐨�
+ // var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0" && it.Status == "0");
+ // if (noticeDetail != null)
+ // {
+ // continue;
+ // }
+ // // 鑾峰彇鐗╂枡璇︾粏淇℃伅
+ // var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == item.SkuNo && it.IsDel == "0");
+ // if (skuModel == null)
+ // {
+ // continue;
+ // }
+ // // 楠岃瘉鍖呰淇℃伅鏄惁瀛樺湪
+ // var packagModel = Db.Queryable<SysPackag>().First(it => it.PackagNo == item.PackagNo && it.IsDel == "0");
+ // if (packagModel == null)
+ // {
+ // continue;
+ // }
+ // // 鍏ュ簱鎬昏〃淇℃伅
+ // string asnNo = new Common().GetMaxNo("ASN");
+ // var asnModel1 = new BllArrivalNotice()
+ // {
+ // ASNNo = asnNo,
+ // Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛�
+ // Type = "1",//鍗曟嵁绫诲瀷锛�1锛氶噰璐叆搴�
+ // Origin = "閲囪喘鍗�",
+ // CustomerNo = item.CustomerNo,
+ // CustomerName = item.CustomerName,
+ // OrderCode = planOrd.OrderCode,
+ // CreateUser = 0
+ // };
+ // // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
+ // Db.Insertable(asnModel1).ExecuteCommand();
+ // //鍏ュ簱鍗曟槑缁�
+ // var arrDetailModel = new BllArrivalNoticeDetail()
+ // {
+ // ASNNo = asnNo,
+ // SkuNo = skuModel.SkuNo,
+ // SkuName = skuModel.SkuName,
+ // Standard = skuModel.Standard,
+ // LotNo = "",
+ // LotText = "",
+ // Qty = 0,
+ // FactQty = 0,
+ // CompleteQty = 0,
+ // PackagNo = packagModel.PackagNo,
+ // SupplierLot = "",
+ // Status = "0",
+ // IsSampling = "0",
+ // InspectStatus = "0",
+ // OrderDetailCode = item.OrderDetailCode,
+ // CreateUser = 0
+ // };
+ // // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
+ // Db.Insertable(arrDetailModel).ExecuteCommand();
+ // }
+ //}
#endregion
Db.Ado.CommitTran();
@@ -1180,77 +1300,71 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- public ErpModel CreateAsn(AsnInfo model)
+ public ErpModel CreateAsn(SendAsnVm model,string userName)
{
try
{
var resultModel = new ErpModel() { Success = -1, Message = "" };
- if (string.IsNullOrEmpty(model.AsnType))
+ if (string.IsNullOrEmpty(model.billType.ToString()))
{
resultModel.Message = "鍗曟嵁绫诲瀷涓嶅彲涓虹┖!";
return resultModel;
}
- if (string.IsNullOrEmpty(model.Customer))
- {
- resultModel.Message = "瀹㈡埛涓嶅彲涓虹┖!";
- return resultModel;
- }
- if (string.IsNullOrEmpty(model.OrderCode))
+
+ if (string.IsNullOrEmpty(model.orderNo.ToString()))
{
resultModel.Message = "涓婃父绯荤粺鍗曞彿涓嶅彲涓虹┖!";
return resultModel;
}
- if (model.AsnDetails.Count <= 0)
+ if (model.orderDCmdList.Count <= 0)
{
resultModel.Message = "鍏ュ簱鍗曟槑缁嗕笉鍙负绌�!";
return resultModel;
}
-
- // 鏍规嵁瀹㈡埛缂栧彿鑾峰彇瀹㈡埛鍚嶇О
- var CustomerModel = Db.Queryable<SysCustomer>().First(it => it.CustomerNo == model.Customer && it.IsDel == "0");
- if (CustomerModel == null)
+ var asnModel = Db.Queryable<BllArrivalNotice>().First(w => w.IsDel == "0" && w.OrderCode == model.orderNo);
+ if (asnModel != null)
{
- resultModel.Message = "瀹㈡埛缂栧彿涓嶅瓨鍦�!";
+ resultModel.Message = $"{model.orderNo}璇ュ崟鍙峰凡瀛樺湪鍏ュ簱鍗�!";
return resultModel;
}
// 鍏ュ簱鎬昏〃淇℃伅
string asnNo = new Common().GetMaxNo("ASN");
- var asnModel = new BllArrivalNotice()
+ asnModel = new BllArrivalNotice()
{
ASNNo = asnNo,
Status = "0",//绛夊緟鎵ц
- Type = model.AsnType,
- Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin,
- CustomerNo = model.Customer,
- CustomerName = CustomerModel.CustomerName,
- OrderCode = model.OrderCode,
- UserName = model.Username
+ Type = model.billType.ToString(),
+ Origin = "SAP",
+ CustomerNo = model.vendorNo,
+ CustomerName = model.vendorName,
+ OrderCode = model.orderNo.ToString(),
+ UserName = userName
};
// 鍏ュ簱鏄庣粏琛ㄤ俊鎭�
List<BllArrivalNoticeDetail> detailModels = new List<BllArrivalNoticeDetail>();
- foreach (AsnDetail asnDetailModel in model.AsnDetails)
+ foreach (var asnDetailModel in model.orderDCmdList)
{
- if (string.IsNullOrEmpty(asnDetailModel.SkuNo))
+ if (string.IsNullOrEmpty(asnDetailModel.skuNo.ToString()))
{
resultModel.Message = "鐗╂枡缂栫爜涓嶅彲涓虹┖!";
return resultModel;
}
- if (asnDetailModel.Qty <= 0)
+ if (Convert.ToDecimal(asnDetailModel.expectedQty) <= 0)
{
- resultModel.Message = "鏁伴噺搴斾负姝f暣鏁�!";
+ resultModel.Message = "搴旀敹鐗╂枡鏁伴噺搴斿ぇ浜�0!";
return resultModel;
}
- if (string.IsNullOrEmpty(asnDetailModel.LotNo))
+ if (string.IsNullOrEmpty(asnDetailModel.lotNo) && asnModel.Type != "1")
{
- resultModel.Message = "鎵规鍙蜂笉鍙负绌�!";
+ resultModel.Message = "闈為噰璐叆搴擄紝鎵规鍙蜂笉鍙负绌�!";
return resultModel;
}
// 鑾峰彇鐗╂枡璇︾粏淇℃伅
- var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == asnDetailModel.SkuNo && it.IsDel == "0");
+ var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == asnDetailModel.skuNo.ToString() && it.IsDel == "0");
if (skuModel == null)
{
resultModel.Message = "涓嶅瓨鍦ㄥ綋鍓嶇墿鏂欎俊鎭�!";
@@ -1261,22 +1375,42 @@
var detailModel = new BllArrivalNoticeDetail()
{
+ OrderDetailCode = asnDetailModel.lineNo,
ASNNo = asnNo,
- SkuNo = asnDetailModel.SkuNo,
+ SkuNo = asnDetailModel.skuNo.ToString(),
SkuName = skuModel.SkuName,
Standard = skuModel.Standard,
- LotNo = asnDetailModel.LotNo,
+ LotNo = asnDetailModel.lotNo,
LotText = "",
- Qty = (decimal)asnDetailModel.Qty,
- FactQty=0,
- CompleteQty=0,
+ Qty = Convert.ToDecimal(asnDetailModel.expectedQty),
+ FactQty = 0,
+ CompleteQty = 0,
PackagNo = skuModel.PackagNo,
- SupplierLot = asnDetailModel.SupplierLot,
+ SupplierLot = asnDetailModel.supplyBatch,
+ Lot1 = asnDetailModel.productionDate,//鐢熶骇鏃ユ湡
+ Lot2 = asnDetailModel.expireDate,//杩囨湡鏃ユ湡
Status = "0",
IsSampling = "0",
InspectStatus = "0",
CreateUser = 0
};
+ detailModel.BoxCodeStr = detailModel.LotNo;
+ if (string.IsNullOrWhiteSpace(detailModel.LotNo))
+ {
+ string toDayTime = DateTime.Now.ToString("yyyyMM");
+ var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>()
+ .Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK")
+ && m.CreateTime.ToString("yyyyMM") == DateTime.Now.ToString("yyyyMM")).Max(m => m.BoxCodeStr);
+ if (string.IsNullOrWhiteSpace(maxBoxCodeStr))
+ {
+ maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001";
+ }
+ else
+ {
+ maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString();
+ }
+ detailModel.BoxCodeStr = maxBoxCodeStr;
+ }
detailModels.Add(detailModel);
}
@@ -1324,36 +1458,47 @@
{
throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
}
- var list = new List<AsnDetail>();
+ var list = new List<BackAsnDetail>();
foreach (var d in detail)
{
- var item = new AsnDetail()
+ var mater = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == d.SkuNo);
+ if (mater == null)
{
- SkuNo = d.SkuNo,
- LotNo = d.LotNo,
- Qty = d.CompleteQty,
- PackagNo = d.PackagNo,
- SupplierLot = d.SupplierLot
+ throw new Exception($"澶嶆牳澶辫触锛岀墿鏂欑紪鐮�:{d.SkuNo}鐨勭墿鏂欎俊鎭笉瀛樺湪");
+ }
+ var item = new BackAsnDetail()
+ {
+ POSNR=d.OrderDetailCode,
+ MATNR = d.SkuNo,
+ MAKTX=d.SkuName,
+ LFIMG = d.CompleteQty.ToString(),
+ MEINS= mater.UnitNo,
+ CHARG = d.LotNo,
+ HSDAT = d.Lot1,
+ VFDAT = d.Lot2
};
list.Add(item);
}
- var soInfo = new AsnInfo()
+ var soInfo = new BackAsnVm()
{
- OrderCode = notice.OrderCode,
- AsnDetails = list
+ ZUUID = Guid.NewGuid().ToString(),
+ VBELN = notice.OrderCode,
+ LFART = notice.Type,
+ WADAT_IST = Convert.ToDateTime(notice.CompleteTime).ToString("yyyy-MM-dd"),
+ ITEM = list
};
#region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
//绯荤粺瀵规帴鍚庢斁寮�
- /*var jsonData = JsonConvert.SerializeObject(soInfo);
+ var jsonData = JsonConvert.SerializeObject(soInfo);
- var response = HttpHelper.DoPost(url, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP");
+ var response = HttpHelper.DoPost(url, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "SAP");
var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
if (obj.Success != 0)
{
throw new Exception("涓婁紶澶辫触" + obj.Message);
- }*/
+ }
#endregion
notice.Status = "4";
--
Gitblit v1.8.0