This commit is contained in:
余宇波 2025-05-29 14:55:05 +08:00
parent bb755db86f
commit 831497717b
2 changed files with 168 additions and 168 deletions

View File

@ -297,187 +297,187 @@ namespace MyCode.Project.Services.Implementation
} }
#endregion #endregion
#region BatchAddInvoiceOrder() //#region BatchAddInvoiceOrder(选中明细生成发货通知单)
/// <summary> ///// <summary>
/// 选中明细生成发货通知单 ///// 选中明细生成发货通知单
/// </summary> ///// </summary>
/// <param name="updateList"></param> ///// <param name="updateList"></param>
/// <param name="loginInfo"></param> ///// <param name="loginInfo"></param>
/// <exception cref="BaseException"></exception> ///// <exception cref="BaseException"></exception>
[TransactionCallHandler] //[TransactionCallHandler]
public string BatchAddInvoiceOrder(AddOrder act , LoginInfo loginInfo) //public string BatchAddInvoiceOrderOld(AddOrder act , LoginInfo loginInfo)
{ //{
if (!act.FaHuoDate.HasValue) // if (!act.FaHuoDate.HasValue)
act.FaHuoDate = DateTime.Now; // act.FaHuoDate = DateTime.Now;
List<UpdateQty> updateList = act.UpDateList; // List<UpdateQty> updateList = act.UpDateList;
string supplierId = loginInfo.SupplierId; // string supplierId = loginInfo.SupplierId;
var ids = updateList.Select(t => t.Id).ToList(); ; // var ids = updateList.Select(t => t.Id).ToList(); ;
var list = _purchaseOrderItemRepository.Queryable().Where(t => t.SupplierId == supplierId && ids.Contains(t.Id)).ToList(); // var list = _purchaseOrderItemRepository.Queryable().Where(t => t.SupplierId == supplierId && ids.Contains(t.Id)).ToList();
var fidList = list.Select(t => t.Fid).ToList(); // var fidList = list.Select(t => t.Fid).ToList();
var orderHeadList = _purchaseOrderRepository.Queryable().Where(t => fidList.Contains( t.FiD)).ToList(); // var orderHeadList = _purchaseOrderRepository.Queryable().Where(t => fidList.Contains( t.FiD)).ToList();
if (orderHeadList == null) // if (orderHeadList == null)
{ // {
throw new BaseException("订单不属于此供应商"); // throw new BaseException("订单不属于此供应商");
} // }
var FPurchaseOrgIdList = orderHeadList.Select(t => t.FPurchaseOrgId).Distinct().ToList(); // var FPurchaseOrgIdList = orderHeadList.Select(t => t.FPurchaseOrgId).Distinct().ToList();
if (FPurchaseOrgIdList.Count > 1) // if (FPurchaseOrgIdList.Count > 1)
{ // {
throw new BaseException("不能跨采购组织创建发货通知单"); // throw new BaseException("不能跨采购组织创建发货通知单");
} // }
if (loginInfo.IfForeign == 1 && string.IsNullOrWhiteSpace(act.F_VHUB_Text)) // if (loginInfo.IfForeign == 1 && string.IsNullOrWhiteSpace(act.F_VHUB_Text))
{ // {
throw new BaseException("国外的供应商发票号和发票日期是必填."); // throw new BaseException("国外的供应商发票号和发票日期是必填.");
} // }
InvoiceOrder NewInvoiceOrder = new InvoiceOrder(); // InvoiceOrder NewInvoiceOrder = new InvoiceOrder();
NewInvoiceOrder.Id = Guid.NewGuid(); // NewInvoiceOrder.Id = Guid.NewGuid();
NewInvoiceOrder.FiD = null; // NewInvoiceOrder.FiD = null;
NewInvoiceOrder.Status = 1; // NewInvoiceOrder.Status = 1;
NewInvoiceOrder.EditTime = DateTime.Now; // NewInvoiceOrder.EditTime = DateTime.Now;
NewInvoiceOrder.Editor = loginInfo.Name; // NewInvoiceOrder.Editor = loginInfo.Name;
NewInvoiceOrder.CreateTime = DateTime.Now; // NewInvoiceOrder.CreateTime = DateTime.Now;
NewInvoiceOrder.Creater = loginInfo.Name; // NewInvoiceOrder.Creater = loginInfo.Name;
NewInvoiceOrder.SupplierId = supplierId; // NewInvoiceOrder.SupplierId = supplierId;
NewInvoiceOrder.SupplierName = orderHeadList.FirstOrDefault().SupplierName; // NewInvoiceOrder.SupplierName = orderHeadList.FirstOrDefault().SupplierName;
NewInvoiceOrder.FDate = act.FaHuoDate; // NewInvoiceOrder.FDate = act.FaHuoDate;
NewInvoiceOrder.Sheet = DateTime.Now.ToString("yyMMddhhmmssfff"); // NewInvoiceOrder.Sheet = DateTime.Now.ToString("yyMMddhhmmssfff");
NewInvoiceOrder.PurchaseOrderId = 0; // NewInvoiceOrder.PurchaseOrderId = 0;
NewInvoiceOrder.F_VHUB_Text = act.F_VHUB_Text; // NewInvoiceOrder.F_VHUB_Text = act.F_VHUB_Text;
NewInvoiceOrder.F_URXD_Date = act.F_URXD_Date; // NewInvoiceOrder.F_URXD_Date = act.F_URXD_Date;
NewInvoiceOrder.FPurchaseOrgId = orderHeadList.FirstOrDefault().FPurchaseOrgId; // NewInvoiceOrder.FPurchaseOrgId = orderHeadList.FirstOrDefault().FPurchaseOrgId;
NewInvoiceOrder.FPurchaseOrgName = orderHeadList.FirstOrDefault().FPurchaseOrgName; // NewInvoiceOrder.FPurchaseOrgName = orderHeadList.FirstOrDefault().FPurchaseOrgName;
List<InvoiceOrderItem> invoiceOrderItems = new List<InvoiceOrderItem>(); // List<InvoiceOrderItem> invoiceOrderItems = new List<InvoiceOrderItem>();
//invoiceOrderItems=list.Select(t=>new InvoiceOrderItem {Id=Guid.NewGuid(), Amount1=t.Amount1, Amount2=t.Amount2,t }) // //invoiceOrderItems=list.Select(t=>new InvoiceOrderItem {Id=Guid.NewGuid(), Amount1=t.Amount1, Amount2=t.Amount2,t })
var allInvoiceOrderItem = _invoiceOrderItemRepository.Queryable().Where(t => ids.Contains(t.PurchaseOrderItemId.Value)).ToList(); // var allInvoiceOrderItem = _invoiceOrderItemRepository.Queryable().Where(t => ids.Contains(t.PurchaseOrderItemId.Value)).ToList();
List<string> errorList = new List<string>(); // List<string> errorList = new List<string>();
string FormId = "PUR_PurchaseOrder"; // string FormId = "PUR_PurchaseOrder";
var entityIdList = list.Select(t => t.EntityId).ToList(); // var entityIdList = list.Select(t => t.EntityId).ToList();
BillPush billPush = new BillPush(); // BillPush billPush = new BillPush();
billPush.EntryIds = string.Join(",", entityIdList); // billPush.EntryIds = string.Join(",", entityIdList);
billPush.TargetFormId = "PUR_ReceiveBill"; // billPush.TargetFormId = "PUR_ReceiveBill";
billPush.IsEnableDefaultRule = true; // billPush.IsEnableDefaultRule = true;
billPush.CustomParams = new CustomParams(); // billPush.CustomParams = new CustomParams();
billPush.CustomParams.AutoAudit = false; // billPush.CustomParams.AutoAudit = false;
billPush.CustomParams.ScanEntry = new List<ScanEntry>(); // billPush.CustomParams.ScanEntry = new List<ScanEntry>();
List<AddTiaoMa> addTiaoMas = new List<AddTiaoMa>(); // List<AddTiaoMa> addTiaoMas = new List<AddTiaoMa>();
list.ForEach(t => // list.ForEach(t =>
{ // {
//var allqty = allInvoiceOrderItem.Where(h => h.PurchaseOrderItemId == t.Id ).Sum(h => h.Qty).SafeValue(); // //var allqty = allInvoiceOrderItem.Where(h => h.PurchaseOrderItemId == t.Id ).Sum(h => h.Qty).SafeValue();
var temp = updateList.Where(h => h.Id == t.Id).FirstOrDefault(); // var temp = updateList.Where(h => h.Id == t.Id).FirstOrDefault();
if (temp != null) // if (temp != null)
{ // {
var purchaseOrder = orderHeadList.FirstOrDefault(h=>h.FiD==t.Fid); // var purchaseOrder = orderHeadList.FirstOrDefault(h=>h.FiD==t.Fid);
if (purchaseOrder == null) // if (purchaseOrder == null)
throw new BaseException("找不到对应的采购订单主表信息"); // throw new BaseException("找不到对应的采购订单主表信息");
if ((temp.Qty ) > (t.Qty - t.MSSReceiveQty)) // if ((temp.Qty ) > (t.Qty - t.MSSReceiveQty))
{ // {
string error = $@"{t.MaterialName}"; // string error = $@"{t.MaterialName}";
errorList.Add(error); // errorList.Add(error);
} // }
//else if ((temp.Qty + allqty) == t.Qty) // //else if ((temp.Qty + allqty) == t.Qty)
//{ // //{
//} // //}
else // else
{ // {
InvoiceOrderItem invoiceOrderItemTemp = new InvoiceOrderItem(); // InvoiceOrderItem invoiceOrderItemTemp = new InvoiceOrderItem();
invoiceOrderItemTemp.Id = Guid.NewGuid(); // invoiceOrderItemTemp.Id = Guid.NewGuid();
invoiceOrderItemTemp.InvoiceOrderId = NewInvoiceOrder.Id; // invoiceOrderItemTemp.InvoiceOrderId = NewInvoiceOrder.Id;
invoiceOrderItemTemp.NewChengNuoJiaoQi = t.NewChengNuoJiaoQi; // invoiceOrderItemTemp.NewChengNuoJiaoQi = t.NewChengNuoJiaoQi;
invoiceOrderItemTemp.ChengNuoJiaoQi = t.ChengNuoJiaoQi; // invoiceOrderItemTemp.ChengNuoJiaoQi = t.ChengNuoJiaoQi;
invoiceOrderItemTemp.UnitPrice = t.UnitPrice; // invoiceOrderItemTemp.UnitPrice = t.UnitPrice;
invoiceOrderItemTemp.PurchaseOrderId = t.Fid; // invoiceOrderItemTemp.PurchaseOrderId = t.Fid;
invoiceOrderItemTemp.MaterialCode = t.MaterialCode; // invoiceOrderItemTemp.MaterialCode = t.MaterialCode;
invoiceOrderItemTemp.MaterialName = t.MaterialName; // invoiceOrderItemTemp.MaterialName = t.MaterialName;
invoiceOrderItemTemp.Amount1 = t.UnitPrice * temp.Qty; // invoiceOrderItemTemp.Amount1 = t.UnitPrice * temp.Qty;
invoiceOrderItemTemp.Amount2 = t.UnitPrice * temp.Qty * t.TaxRate; // invoiceOrderItemTemp.Amount2 = t.UnitPrice * temp.Qty * t.TaxRate;
invoiceOrderItemTemp.DeliveryDate = act.FaHuoDate; // invoiceOrderItemTemp.DeliveryDate = act.FaHuoDate;
invoiceOrderItemTemp.Qty = temp.Qty; // invoiceOrderItemTemp.Qty = temp.Qty;
invoiceOrderItemTemp.Remark = t.Remark; // invoiceOrderItemTemp.Remark = t.Remark;
invoiceOrderItemTemp.SpecificationModel = t.SpecificationModel; // invoiceOrderItemTemp.SpecificationModel = t.SpecificationModel;
invoiceOrderItemTemp.TaxAmount = t.TaxAmount; // invoiceOrderItemTemp.TaxAmount = t.TaxAmount;
invoiceOrderItemTemp.PurchaseOrderItemId = t.Id; // invoiceOrderItemTemp.PurchaseOrderItemId = t.Id;
invoiceOrderItemTemp.FSupplierLot = temp.FSupplierLot==null ?"" : temp.FSupplierLot; // invoiceOrderItemTemp.FSupplierLot = temp.FSupplierLot==null ?"" : temp.FSupplierLot;
invoiceOrderItemTemp.MSSSupplierLot = t.MSSSupplierLot; // invoiceOrderItemTemp.MSSSupplierLot = t.MSSSupplierLot;
invoiceOrderItemTemp.UnitName = t.UnitName; // invoiceOrderItemTemp.UnitName = t.UnitName;
invoiceOrderItemTemp.FBillNo = purchaseOrder.FBillNo; // invoiceOrderItemTemp.FBillNo = purchaseOrder.FBillNo;
invoiceOrderItemTemp.PurchaseEntityId = t.EntityId; // invoiceOrderItemTemp.PurchaseEntityId = t.EntityId;
invoiceOrderItems.Add(invoiceOrderItemTemp); // invoiceOrderItems.Add(invoiceOrderItemTemp);
ScanEntry tempUpdate = new ScanEntry(); // ScanEntry tempUpdate = new ScanEntry();
tempUpdate.Qty = (int)temp.Qty; // tempUpdate.Qty = (int)temp.Qty;
tempUpdate.FENTRYID = t.EntityId.SafeValue(); // tempUpdate.FENTRYID = t.EntityId.SafeValue();
tempUpdate.FSupplierLot = temp.FSupplierLot; // tempUpdate.FSupplierLot = temp.FSupplierLot;
billPush.CustomParams.ScanEntry.Add(tempUpdate); // billPush.CustomParams.ScanEntry.Add(tempUpdate);
billPush.CustomParams.FPH= act.F_VHUB_Text; // billPush.CustomParams.FPH= act.F_VHUB_Text;
billPush.CustomParams.F_URXD_Date = act.F_URXD_Date; // billPush.CustomParams.F_URXD_Date = act.F_URXD_Date;
if (string.IsNullOrWhiteSpace(billPush.CustomParams.F_URXD_Date)) // if (string.IsNullOrWhiteSpace(billPush.CustomParams.F_URXD_Date))
billPush.CustomParams.F_URXD_Date = null; // billPush.CustomParams.F_URXD_Date = null;
t.FReceiveQty = t.FReceiveQty + temp.Qty; // t.FReceiveQty = t.FReceiveQty + temp.Qty;
t.FRemainReceiveQty = t.FRemainReceiveQty - temp.Qty; // t.FRemainReceiveQty = t.FRemainReceiveQty - temp.Qty;
} // }
} // }
}); // });
if (errorList.Count > 0) // if (errorList.Count > 0)
{ // {
string e = string.Join(",", errorList); // string e = string.Join(",", errorList);
if(loginInfo.IfForeign==0) // if(loginInfo.IfForeign==0)
e = e + "的总发货数量大于总采购数量,请检查"; // e = e + "的总发货数量大于总采购数量,请检查";
else // else
e=e+" The delivery QTY exceeds the PO's maximum QTY!"; // e=e+" The delivery QTY exceeds the PO's maximum QTY!";
throw new BaseException(e); // throw new BaseException(e);
} // }
else // else
{ // {
try // try
{ // {
var resultKD= _kingDeeService.Push(FormId, billPush); // var resultKD= _kingDeeService.Push(FormId, billPush);
LogHelper.Info("推送收料订单"); // LogHelper.Info("推送收料订单");
LogHelper.Info(resultKD); // LogHelper.Info(resultKD);
//var sda = resultKD.GetProperty("IsSuccess") [["SuccessEntitys"]; // //var sda = resultKD.GetProperty("IsSuccess") [["SuccessEntitys"];
dynamic data = JsonHelper.ToObject<dynamic>(resultKD); // dynamic data = JsonHelper.ToObject<dynamic>(resultKD);
int row = 0; // int row = 0;
foreach (var item in data) // foreach (var item in data)
{ // {
NewInvoiceOrder.FBillNo = item["Number"]; // NewInvoiceOrder.FBillNo = item["Number"];
NewInvoiceOrder.FiD = item["Id"]; // NewInvoiceOrder.FiD = item["Id"];
row++; // row++;
} // }
_invoiceOrderRepository.Add(NewInvoiceOrder); // _invoiceOrderRepository.Add(NewInvoiceOrder);
_invoiceOrderItemRepository.Add(invoiceOrderItems); // _invoiceOrderItemRepository.Add(invoiceOrderItems);
_purchaseOrderItemRepository.Update(list); // _purchaseOrderItemRepository.Update(list);
////物料编码数量收料通知单号供应商批号key // ////物料编码数量收料通知单号供应商批号key
//AddTiaoMa addTiao = new AddTiaoMa(); // //AddTiaoMa addTiao = new AddTiaoMa();
//addTiaoMas = invoiceOrderItems.Select(t => new AddTiaoMa { // //addTiaoMas = invoiceOrderItems.Select(t => new AddTiaoMa {
// FBarCode = $@"{t.MaterialCode}*{t.Qty.Value.ToString("F2")}*{NewInvoiceOrder.FBillNo}*{t.FSupplierLot}" // // FBarCode = $@"{t.MaterialCode}*{t.Qty.Value.ToString("F2")}*{NewInvoiceOrder.FBillNo}*{t.FSupplierLot}"
//, FBarCodeRule= "03", FBillCode= NewInvoiceOrder.FBillNo, FSupplierLot=t.FSupplierLot==null?"": t.FSupplierLot, FMaterialId=t.MaterialCode, FQty=t.Qty.Value.ToString() // //, FBarCodeRule= "03", FBillCode= NewInvoiceOrder.FBillNo, FSupplierLot=t.FSupplierLot==null?"": t.FSupplierLot, FMaterialId=t.MaterialCode, FQty=t.Qty.Value.ToString()
//}).ToList(); // //}).ToList();
_workProcessService.Add<IInvoiceOrderService>(this.MerchantId, "SetMSSSupplierLot", "写入金蝶的美塞斯批号", NewInvoiceOrder.Sheet, 1); // _workProcessService.Add<IInvoiceOrderService>(this.MerchantId, "SetMSSSupplierLot", "写入金蝶的美塞斯批号", NewInvoiceOrder.Sheet, 1);
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
LogHelper.Error("推送收料订单出错"); // LogHelper.Error("推送收料订单出错");
LogHelper.Error(ex); // LogHelper.Error(ex);
throw new BaseException(ex.Message); // throw new BaseException(ex.Message);
} // }
} // }
return NewInvoiceOrder.Sheet; // return NewInvoiceOrder.Sheet;
} //}
#endregion //#endregion
/// <summary> /// <summary>
/// 抓取金蝶的采购订单 /// 抓取金蝶的采购订单
@ -747,7 +747,7 @@ namespace MyCode.Project.Services.Implementation
/// <param name="loginInfo"></param> /// <param name="loginInfo"></param>
/// <exception cref="BaseException"></exception> /// <exception cref="BaseException"></exception>
[TransactionCallHandler] [TransactionCallHandler]
public string BatchAddInvoiceOrderNew(AddOrder act, LoginInfo loginInfo) public string BatchAddInvoiceOrder(AddOrder act, LoginInfo loginInfo)
{ {
if (!act.FaHuoDate.HasValue) if (!act.FaHuoDate.HasValue)
act.FaHuoDate = DateTime.Now; act.FaHuoDate = DateTime.Now;
@ -854,7 +854,7 @@ namespace MyCode.Project.Services.Implementation
invoiceOrderItemTemp.MSSSupplierLot = t.MSSSupplierLot; invoiceOrderItemTemp.MSSSupplierLot = t.MSSSupplierLot;
invoiceOrderItemTemp.UnitName = t.UnitName; invoiceOrderItemTemp.UnitName = t.UnitName;
invoiceOrderItemTemp.FBillNo = purchaseOrder.FBillNo; invoiceOrderItemTemp.FBillNo = purchaseOrder.FBillNo;
invoiceOrderItemTemp.PurchaseEntityId = t.EntityId; invoiceOrderItemTemp.PurchaseEntityId = t.EntityId;
invoiceOrderItems.Add(invoiceOrderItemTemp); invoiceOrderItems.Add(invoiceOrderItemTemp);
ScanEntry tempUpdate = new ScanEntry(); ScanEntry tempUpdate = new ScanEntry();
tempUpdate.Qty = (int)temp.Qty; tempUpdate.Qty = (int)temp.Qty;

View File

@ -24,8 +24,8 @@
</httpProtocol> </httpProtocol>
</system.webServer> </system.webServer>
<connectionStrings> <connectionStrings>
<!--<add name="MasterConn" connectionString="Data Source=8.210.205.196,30003; Initial Catalog=xietong; User ID=meisaisi2;Password=ghjktyui126@#$; Connect Timeout=120; MultipleActiveResultSets=True;App=XieTong" providerName="System.Data.SqlClient" />--> <add name="MasterConn" connectionString="Data Source=8.210.205.196,30003; Initial Catalog=xietong; User ID=meisaisi2;Password=ghjktyui126@#$; Connect Timeout=120; MultipleActiveResultSets=True;App=XieTong" providerName="System.Data.SqlClient" />
<add name="MasterConn" connectionString="Data Source=58.252.252.77,30003; Initial Catalog=xietong; User ID=meisaisi;Password=ghjktyui126@#$; Connect Timeout=120; MultipleActiveResultSets=True;App=XieTong" providerName="System.Data.SqlClient" /> <!--<add name="MasterConn" connectionString="Data Source=58.252.252.77,30003; Initial Catalog=xietong; User ID=meisaisi;Password=ghjktyui126@#$; Connect Timeout=120; MultipleActiveResultSets=True;App=XieTong" providerName="System.Data.SqlClient" />-->
<!--<add name="MasterConn" connectionString="Data Source=127.0.0.1; Initial Catalog=tempdata; User ID=sa;Password=1; Connect Timeout=120; MultipleActiveResultSets=True;App=XieTong" providerName="System.Data.SqlClient" />--> <!--<add name="MasterConn" connectionString="Data Source=127.0.0.1; Initial Catalog=tempdata; User ID=sa;Password=1; Connect Timeout=120; MultipleActiveResultSets=True;App=XieTong" providerName="System.Data.SqlClient" />-->
</connectionStrings> </connectionStrings>