This commit is contained in:
2025-04-25 18:42:29 +08:00
parent 9340f5253e
commit 785450fc7c
12 changed files with 351 additions and 45 deletions

View File

@@ -1,4 +1,5 @@
using MyCode.Project.Domain.Message.Common;
using MyCode.Project.Domain.Message.Act.PurchaseOrder;
using MyCode.Project.Domain.Message.Common;
using MyCode.Project.Domain.Message.Request.InvoiceOrder;
using MyCode.Project.Domain.Message.Response.InvoiceOrder;
using MyCode.Project.Domain.Message.Response.User;
@@ -35,5 +36,12 @@ namespace MyCode.Project.Services
/// <param name="sheet"></param>
/// <exception cref="BaseException"></exception>
void SetMSSSupplierLot(string sheet);
/// <summary>
/// 根据每包数量得到全部包裹打印条码
/// </summary>
/// <param name="act"></param>
/// <returns></returns>
TiaoMaResp SetBaoShuTiaoMa(TiaoMaAct act);
}
}

View File

@@ -34,12 +34,13 @@ namespace MyCode.Project.Services.Implementation
private IPurchaseOrderItemRepository _purchaseOrderItemRepository;
private IInvoiceOrderItemRepository _invoiceOrderItemRepository;
private IInvoiceOrderRepository _invoiceOrderRepository;
private ITiaoMaRepository _tiaoMaRepository;
public InvoiceOrderService(IPurchaseOrderRepository purchaseOrderRepository
, IPurchaseOrderItemRepository purchaseOrderItemRepository
, IInvoiceOrderItemRepository invoiceOrderItemRepository
, IInvoiceOrderRepository invoiceOrderRepository
, ITiaoMaRepository tiaoMaRepository
, IWorkProcessService workProcessService
, IKingDeeService kingDeeService)
{
@@ -47,6 +48,7 @@ namespace MyCode.Project.Services.Implementation
_purchaseOrderRepository = purchaseOrderRepository;
_invoiceOrderItemRepository = invoiceOrderItemRepository;
_invoiceOrderRepository = invoiceOrderRepository;
_tiaoMaRepository = tiaoMaRepository;
_workProcessService = workProcessService;
_kingDeeService = kingDeeService;
}
@@ -201,21 +203,100 @@ namespace MyCode.Project.Services.Implementation
}
_invoiceOrderItemRepository.Update(oldOrderItemList);
//物料编码数量收料通知单号供应商批号key
AddTiaoMa addTiao = new AddTiaoMa();
List<AddTiaoMa> addTiaoMas = new List<AddTiaoMa>();
addTiaoMas = oldOrderItemList.Select(t => new AddTiaoMa
{
FBarCode = $@"{t.MaterialCode}*{t.Qty.Value.ToString("F2")}*{sheetOrder.FBillNo}*{t.FSupplierLot}",
FBarCodeRule = "03",
FBillCode = sheetOrder.FBillNo,
FSupplierLot = t.FSupplierLot == null ? "" : t.FSupplierLot,
FMaterialId = t.MaterialCode,
FLot=t.MSSSupplierLot,
FQty = t.Qty.Value.ToString()
}).ToList();
_workProcessService.Add<IKingDeeService>(this.MerchantId, "AddTiaoMa", "生成条码档案", JsonHelper.ToJson(addTiaoMas), 5);
//AddTiaoMa addTiao = new AddTiaoMa();
//List<AddTiaoMa> addTiaoMas = new List<AddTiaoMa>();
//addTiaoMas = oldOrderItemList.Select(t => new AddTiaoMa
//{
// FBarCode = $@"{t.MaterialCode}*{t.Qty.Value.ToString("F2")}*{sheetOrder.FBillNo}*{t.FSupplierLot}",
// FBarCodeRule = "03",
// FBillCode = sheetOrder.FBillNo,
// FSupplierLot = t.FSupplierLot == null ? "" : t.FSupplierLot,
// FMaterialId = t.MaterialCode,
// FLot=t.MSSSupplierLot,
// FQty = t.Qty.Value.ToString()
//}).ToList();
//_workProcessService.Add<IKingDeeService>(this.MerchantId, "AddTiaoMa", "生成条码档案", JsonHelper.ToJson(addTiaoMas), 5);
}
}
#endregion
#region SetBaoShuTiaoMa()
/// <summary>
/// 根据每包数量得到全部包裹打印条码
/// </summary>
/// <param name="act"></param>
/// <returns></returns>
/// <exception cref="BaseException"></exception>
[TransactionCallHandler]
public TiaoMaResp SetBaoShuTiaoMa(TiaoMaAct act)
{
if (act.CuseQty <= 0)
{
throw new BaseException("每包数量必须大于0");
}
_tiaoMaRepository.Delete(t => t.InvoceOrderItemId == act.Id);
var orderItem = _invoiceOrderItemRepository.Queryable().Where(t => t.Id == act.Id).First();
if (orderItem == null)
{
throw new BaseException("不正确的ID值");
}
var order = _invoiceOrderRepository.Queryable().Where(t => t.Id == orderItem.InvoiceOrderId).First();
decimal zongQty = orderItem.Qty.SafeValue();
int yu =(int) Math.Ceiling( zongQty % act.CuseQty);
int baoShu = 0;
baoShu = (int)(zongQty / act.CuseQty);
List<TiaoMa> addList = new List<TiaoMa>();
// 条码 物料编码数量收料通知单号供应商批号key
for (int i = 0; i < baoShu; i++)
{
string FBarCode = $@"{orderItem.MaterialCode}*{act.CuseQty.ToString("F2")}*{orderItem.FBillNo}*{orderItem.FSupplierLot}";
TiaoMa tiaoMa = new TiaoMa();
tiaoMa = AutoMapperHelper.AutoMappToSingle<TiaoMa, InvoiceOrderItem>(orderItem);
tiaoMa.Id = Guid.NewGuid();
tiaoMa.FBarCode = FBarCode;
tiaoMa.Qty = act.CuseQty;
tiaoMa.SortNum = i+1;
tiaoMa.PurchaseBillNo = orderItem.FBillNo;
tiaoMa.FBillNo = order.FBillNo;
addList.Add(tiaoMa);
}
if (yu > 0)
{
string FBarCode = $@"{orderItem.MaterialCode}*{decimal.Parse(yu.ToString()).ToString("F2")}*{orderItem.FBillNo}*{orderItem.FSupplierLot}";
TiaoMa tiaoMa = new TiaoMa();
tiaoMa = AutoMapperHelper.AutoMappToSingle<TiaoMa, InvoiceOrderItem>(orderItem);
tiaoMa.Id = Guid.NewGuid();
tiaoMa.FBarCode = FBarCode;
tiaoMa.Qty = yu;
tiaoMa.SortNum = baoShu+1;
tiaoMa.PurchaseBillNo = orderItem.FBillNo;
tiaoMa.FBillNo = order.FBillNo;
addList.Add(tiaoMa);
}
_tiaoMaRepository.Add(addList);
List<AddTiaoMa> addTiaoMas = new List<AddTiaoMa>();
addTiaoMas = addList.Select(t => new AddTiaoMa
{
FBarCode =t.FBarCode,
FBarCodeRule = "03",
FBillCode = t.FBillNo,
FSupplierLot = t.FSupplierLot == null ? "" : t.FSupplierLot,
FMaterialId = t.MaterialCode,
FLot = t.MSSSupplierLot,
FQty = t.Qty.Value.ToString()
}).ToList();
_workProcessService.Add<IKingDeeService>(this.MerchantId, "AddTiaoMa", "生成条码档案", JsonHelper.ToJson(addTiaoMas), 5);
TiaoMaResp result = new TiaoMaResp();
result.Id = orderItem.Id;
result.BarCodeList = addList.Select(t => t.FBarCode).ToList();
return result;
}
#endregion
}
}

View File

@@ -148,7 +148,7 @@ namespace MyCode.Project.Services.Implementation
,FSupplierLot,FLot,FBaseDeliveryMaxQty,FBaseJoinQty
,FEntryNote,FBillAllAmount_LC,FMaterialId.FNAME,FQty,FEntryNote,FUnitId.fname,FDeliveryDate,FMaterialId.FSpecification,FPurchaserId.fname,FSupplierId.FNumber,FMaterialId.FNumber
,FSettleCurrId.fname,FBillTaxAmount,FExchangeTypeId.fname,FExchangeRate,FEntryTaxRate,FPrice,FAllAmount,FEntryAmount,FEntryTaxAmount,FReceiveQty,FMRPCloseStatus
,FPurchaseOrgId,FPurchaseOrgId.FName
,FPurchaseOrgId,FPurchaseOrgId.FName,FPOORDERENTRY_D.FDeliveryDate
,FCancelStatus,FRemainReceiveQty",
//FieldKeys ="",
TopRowCount = 100000,
@@ -468,7 +468,7 @@ namespace MyCode.Project.Services.Implementation
userList.ForEach(t =>
{
var maxDate = _purchaseOrderRepository.Queryable().Where(h => h.SupplierId == t.SupplierId).Max(h => h.FModifyDate);
DateTime begin = DateTime.Parse("2023-01-01");
DateTime begin = DateTime.Parse("2024-01-01");
if (maxDate.HasValue)
{
begin = maxDate.Value.Date;
@@ -583,14 +583,14 @@ namespace MyCode.Project.Services.Implementation
purchaseOrderItem.Remark = item["FEntryNote"];
purchaseOrderItem.SupplierId = t.SupplierId;
purchaseOrderItem.UnitName = item["FUnitId.fname"];
purchaseOrderItem.FDeliveryDate = item["FDeliveryDate"];
purchaseOrderItem.FDeliveryDate = item["FPOORDERENTRY_D.FDeliveryDate"];
purchaseOrderItem.TaxRate = item["FEntryTaxRate"];
purchaseOrderItem.FBillTaxAmount = item["FEntryTaxAmount"];
purchaseOrderItem.FRemainReceiveQty = item["FBaseDeliveryMaxQty"];
purchaseOrderItem.FReceiveQty = item["FBaseJoinQty"];
purchaseOrderItem.FRemainReceiveQty = purchaseOrderItem.Qty - purchaseOrderItem.FReceiveQty.SafeValue();
purchaseOrderItem.FMRPCloseStatus = item["FMRPCloseStatus"];
purchaseOrderItem.EntityId = item["FPOOrderEntry.FEntryId"];
purchaseOrderItem.EntityId = item["FPOOrderEntry_FEntryId"];
purchaseOrderItem.MSSSupplierLot = item["FLot"];
purchaseOrderItem.SpecificationModel = item["FMaterialId.FSpecification"];
_purchaseOrderItemRepository.Add(purchaseOrderItem);
@@ -607,7 +607,7 @@ namespace MyCode.Project.Services.Implementation
oldItem.Remark = item["FEntryNote"];
oldItem.SupplierId = t.SupplierId;
oldItem.UnitName = item["FUnitId.fname"];
oldItem.FDeliveryDate = item["FDeliveryDate"];
oldItem.FDeliveryDate = item["FPOORDERENTRY_D.FDeliveryDate"];
oldItem.TaxRate = item["FEntryTaxRate"];
oldItem.FBillTaxAmount = item["FEntryTaxAmount"];
oldItem.FReceiveQty = item["FBaseJoinQty"];
@@ -616,10 +616,8 @@ namespace MyCode.Project.Services.Implementation
//oldItem.FRemainReceiveQty = item["FBaseDeliveryMaxQty"];
//purchaseOrderItem.FReceiveQty = item["FBaseDeliveryMaxQty"];
oldItem.FReceiveQty = oldItem.Qty - oldItem.FRemainReceiveQty.SafeValue();
oldItem.FMRPCloseStatus = item["FMRPCloseStatus"];
oldItem.EntityId = item["FPOOrderEntry.FEntryId"];
oldItem.EntityId = item["FPOOrderEntry_FEntryId"];
oldItem.MSSSupplierLot = item["FLot"];
_purchaseOrderItemRepository.Update(oldItem);
}
@@ -641,8 +639,9 @@ namespace MyCode.Project.Services.Implementation
// end = DateTime.Now.AddDays(-1);
// begin = end;
//}
Thread.Sleep(500);
}
Thread.Sleep(500);
keyValuePairs.Keys.ForEach(key =>
{
List<int> templist = keyValuePairs[key];
@@ -695,24 +694,7 @@ namespace MyCode.Project.Services.Implementation
// {
//"EntryIds": "100016,100017",
//"TargetFormId": "PUR_ReceiveBill",
//"IsEnableDefaultRule": "true",
//"CustomParams": {
//    "AutoAudit":"true",
//    "ScanEntry": [
//        {
//            "FENTRYID": 100016,
//            "Qty": 15
// },
//        {
//            "FENTRYID": 100017,
//            "Qty": 15
//        }
//    ]
//}
}
}