From 5e087459dfbda4f50a148b5d54d668f8664870d4 Mon Sep 17 00:00:00 2001
From: yuyubo <1870149533@qq.com>
Date: Sat, 15 Nov 2025 17:56:13 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E9=80=81=E9=94=80=E5=94=AE=E5=87=BA?=
=?UTF-8?q?=E5=BA=93=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../KingDee/SaveModel/PurchaseStockInModel.cs | 1 +
.../KingDee/SaveModel/SaleOrderModel.cs | 2 +
.../KingDee/SaveModel/SalesOutboundModel.cs | 243 +++++++++++++++++-
.../Implementation/SalesOutboundService.cs | 59 +++--
Reportapi/MyCode.Project.WebApi/Web.config | 2 +-
5 files changed, 279 insertions(+), 28 deletions(-)
diff --git a/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/PurchaseStockInModel.cs b/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/PurchaseStockInModel.cs
index 148db5d..5ba4b2c 100644
--- a/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/PurchaseStockInModel.cs
+++ b/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/PurchaseStockInModel.cs
@@ -37,6 +37,7 @@ namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
public class FOwnerIdHead
{
+ public string FOrgId { get; set; }
public string FNumber { get; set; }
}
diff --git a/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/SaleOrderModel.cs b/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/SaleOrderModel.cs
index 7386407..202d21d 100644
--- a/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/SaleOrderModel.cs
+++ b/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/SaleOrderModel.cs
@@ -554,6 +554,8 @@ namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
public class FStockOrgId
{
+
+ public string FOrgId { get; set; }
///
///
///
diff --git a/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/SalesOutboundModel.cs b/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/SalesOutboundModel.cs
index c53825f..86b052b 100644
--- a/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/SalesOutboundModel.cs
+++ b/Reportapi/MyCode.Project.Domain/Message/Request/KingDee/SaveModel/SalesOutboundModel.cs
@@ -1,4 +1,6 @@
+using Newtonsoft.Json;
using System;
+using System.Collections;
using System.Collections.Generic;
namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
@@ -45,6 +47,7 @@ namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
public class FSettleOrgID
{
+ public string FOrgId { get; set; }
public string FNumber { get; set; }
}
@@ -58,7 +61,7 @@ namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
public string FNumber { get; set; }
}
- public class FSalesOutboundEntryItem
+ public class FSalesOutboundEntryItemOld
{
public string FRowType { get; set; }
public FMaterialID FMaterialID { get; set; }
@@ -104,6 +107,231 @@ namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
public bool? FVmiBusinessStatus { get; set; }
}
+
+ ///
+ /// 销售出库单明细行实体类
+ /// 用于描述销售出库业务中的物料明细信息
+ ///
+ public class FSalesOutboundEntryItem
+ {
+ ///
+ /// 条码
+ ///
+
+ public string Fcode { get; set; }
+ ///
+ /// 行类型
+ ///
+ public string FRowType { get; set; }
+
+ ///
+ /// 物料标识
+ ///
+ public FMaterialID FMaterialID { get; set; }
+
+ ///
+ /// 单位标识
+ ///
+ public FUnitID FUnitID { get; set; }
+
+ ///
+ /// 库存数量
+ ///
+ public decimal? FInventoryQty { get; set; }
+
+ ///
+ /// 实际出库数量
+ ///
+ public decimal? FRealQty { get; set; }
+
+ ///
+ /// 计价数量
+ ///
+ public decimal? FDisPriceQty { get; set; }
+
+ ///
+ /// 单价
+ ///
+ public decimal? FPrice { get; set; }
+
+ ///
+ /// 含税单价
+ ///
+ public decimal? FTaxPrice { get; set; }
+
+ ///
+ /// 是否赠品
+ ///
+ public bool? FIsFree { get; set; }
+
+ ///
+ /// 货主类型标识
+ ///
+ public string FOwnerTypeID { get; set; }
+
+ ///
+ /// 货主标识
+ ///
+ public FOwnerID FOwnerID { get; set; }
+
+ ///
+ /// 行税率
+ ///
+ public decimal? FEntryTaxRate { get; set; }
+
+ ///
+ /// 辅助单位数量
+ ///
+ public decimal? FAuxUnitQty { get; set; }
+
+ ///
+ /// 外部辅助单位数量
+ ///
+ public decimal? FExtAuxUnitQty { get; set; }
+
+ public FStockID FStockID { get; set; }
+ ///
+ /// 源单类型
+ ///
+ public string FSrcType { get; set; }
+
+ ///
+ /// 源单单号
+ ///
+ public string FSrcBillNo { get; set; }
+
+ ///
+ /// 折扣率
+ ///
+ public decimal? FDiscountRate { get; set; }
+
+ ///
+ /// 价格折扣
+ ///
+ public decimal? FPriceDiscount { get; set; }
+
+ ///
+ /// 实际数量
+ ///
+ public decimal? FActQty { get; set; }
+
+ ///
+ /// 销售单位标识
+ ///
+ public FSalUnitID FSalUnitID { get; set; }
+
+ ///
+ /// 销售单位数量
+ ///
+ public decimal? FSALUNITQTY { get; set; }
+
+ ///
+ /// 销售基本数量
+ ///
+ public decimal? FSALBASEQTY { get; set; }
+
+ ///
+ /// 价格基本数量
+ ///
+ public decimal? FPRICEBASEQTY { get; set; }
+
+ ///
+ /// 是否超发控制
+ ///
+ public bool? FOUTCONTROL { get; set; }
+
+ ///
+ /// 返修数量
+ ///
+ public decimal? FRepairQty { get; set; }
+
+ ///
+ /// 是否跨法人组织
+ ///
+ public bool? FIsOverLegalOrg { get; set; }
+
+ ///
+ /// 未参与数量
+ ///
+ public decimal? FARNOTJOINQTY { get; set; }
+
+ ///
+ /// 质量管理分录ID
+ ///
+ public int? FQmEntryID { get; set; }
+
+ ///
+ /// 转换分录ID
+ ///
+ public int? FConvertEntryID { get; set; }
+
+ ///
+ /// 销售订单分录ID
+ ///
+ public int? FSOEntryId { get; set; }
+
+ ///
+ /// 折扣前计价数量
+ ///
+ public decimal? FBeforeDisPriceQty { get; set; }
+
+ ///
+ /// 签收数量
+ ///
+ public decimal? FSignQty { get; set; }
+
+ ///
+ /// 是否检查交货
+ ///
+ public bool? FCheckDelivery { get; set; }
+
+ ///
+ /// 折扣前总金额
+ ///
+ public decimal? FAllAmountExceptDisCount { get; set; }
+
+ ///
+ /// 是否子组织结算
+ ///
+ public bool? FSettleBySon { get; set; }
+
+ ///
+ /// BOM分录ID
+ ///
+ public int? FBOMEntryId { get; set; }
+
+ ///
+ /// 自定义金额字段
+ ///
+ public decimal? F_dmi_Amount { get; set; }
+
+ ///
+ /// 销售物料标识
+ ///
+ public FMaterialID_Sal FMaterialID_Sal { get; set; }
+
+ ///
+ /// 入库分录ID
+ ///
+ public int? FInStockEntryId { get; set; }
+
+ ///
+ /// 收款分录ID
+ ///
+ public int? FReceiveEntryId { get; set; }
+
+ ///
+ /// 是否替换出库
+ ///
+ public bool? FIsReplaceOut { get; set; }
+
+ ///
+ /// VMI业务状态
+ ///
+ public bool? FVmiBusinessStatus { get; set; }
+ }
+
+
public class FMaterialID
{
public string FNumber { get; set; }
@@ -111,6 +339,7 @@ namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
public class FOwnerID
{
+ public string FOrgId { get; set; }
public string FNumber { get; set; }
}
@@ -127,6 +356,11 @@ namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
public class FCustomerID
{
public string FNumber { get; set; }
+
+ ///
+ /// 客户ID
+ ///
+ public string FCustId { get; set; }
}
public class FSaleDeptID
@@ -153,5 +387,12 @@ namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
{
public string FNumber { get; set; }
}
+
+
+ public class FStockID
+ {
+ public string FstockId { get; set; }
+ public string FNumber { get; set; }
+ }
}
diff --git a/Reportapi/MyCode.Project.Services/Implementation/SalesOutboundService.cs b/Reportapi/MyCode.Project.Services/Implementation/SalesOutboundService.cs
index 14958b5..815b5d7 100644
--- a/Reportapi/MyCode.Project.Services/Implementation/SalesOutboundService.cs
+++ b/Reportapi/MyCode.Project.Services/Implementation/SalesOutboundService.cs
@@ -25,7 +25,7 @@ namespace MyCode.Project.Services.Implementation
private const string EXCHANGE_TYPE = "HLTX01_SYS";
private const string DEFAULT_ORG = "100";
private const string DEFAULT_CURRENCY = "PRE001";
- private const string DEFAULT_UNIT = "Pcs";
+ private const string DEFAULT_UNIT = "鍖";
private const string ROW_TYPE_STANDARD = "Standard";
private const string ROW_TYPE_SERVICE = "Service";
private const string FORM_ID = "SAL_OUTSTOCK";
@@ -65,7 +65,7 @@ namespace MyCode.Project.Services.Implementation
throw new BaseException($"鏈壘鍒癐D涓 {id} 鐨勯攢鍞嚭搴撳崟璁板綍");
}
- if (orderHead.Status != 0)
+ if (orderHead.Status == 2)
{
throw new BaseException($"閿鍞嚭搴撳崟 {orderHead.Sheet} 宸茬粡鎺ㄩ佽繃锛岀姸鎬佷负锛歿orderHead.Status}锛屼笉鍏佽閲嶅鎺ㄩ");
}
@@ -129,10 +129,11 @@ namespace MyCode.Project.Services.Implementation
// 鑾峰彇閿鍞粍缁嘔D
string orgId = param.FSALEORGID?.ToString() ?? DEFAULT_ORG;
-
- // 鑾峰彇浠撳簱缂栫爜
- string warehouseCode = orderHead.WarehouseCode ?? param.FWAREHOUSECODE ?? "";
+
+ // 鑾峰彇浠撳簱缂栫爜
+ //string warehouseCode = orderHead.WarehouseCode ?? param.FWAREHOUSECODE ?? "";
+ string warehouseCode = param.FWAREHOUSECODE ;
// 鏁版嵁鏍¢獙
if (string.IsNullOrEmpty(warehouseCode))
{
@@ -154,7 +155,7 @@ namespace MyCode.Project.Services.Implementation
BillSave billSave = new BillSave()
{
Model = model,
- IsAutoSubmitAndAudit = true,
+ IsAutoSubmitAndAudit = false,
};
// 璋冪敤閲戣澏鏈嶅姟淇濆瓨鍗曟嵁
@@ -184,15 +185,16 @@ namespace MyCode.Project.Services.Implementation
return new FSalesOutboundEntryItem()
{
+ Fcode= item.Barcode ?? "",
FRowType = rowType,
- FMaterialID = new FMaterialID()
- {
- FNumber = item.Barcode ?? ""
- },
- FUnitID = new FUnitID()
- {
- FNumber = item.Unit ?? DEFAULT_UNIT
- },
+ //FMaterialID = new FMaterialID()
+ //{
+ // FNumber = item.Barcode ?? ""
+ //},
+ //FUnitID = new FUnitID()
+ //{
+ // FNumber = item.Unit ?? DEFAULT_UNIT
+ //},
FInventoryQty = 0,
FRealQty = realQty,
FDisPriceQty = 0,
@@ -202,7 +204,11 @@ namespace MyCode.Project.Services.Implementation
FOwnerTypeID = OWNER_TYPE,
FOwnerID = new FOwnerID()
{
- FNumber = orgId
+ FOrgId = orgId
+ },
+ FStockID=new FStockID()
+ {
+ FNumber = param.FWAREHOUSECODE
},
FEntryTaxRate = param.FTAXRATE,
FAuxUnitQty = 0,
@@ -264,16 +270,16 @@ namespace MyCode.Project.Services.Implementation
FDate = dateStr,
FSaleOrgId = new FSaleOrgId()
{
- FNumber = orgId
+ FOrgId = orgId
},
FCustomerID = new FCustomerID()
{
- FNumber = customerId
- },
- FSaleDeptID = new FSaleDeptID()
- {
- FNumber = "02"
+ FCustId = customerId
},
+ //FSaleDeptID = new FSaleDeptID()
+ //{
+ // FNumber = "02"
+ //},
FReceiverID = new FReceiverID()
{
FNumber = customerId
@@ -284,7 +290,7 @@ namespace MyCode.Project.Services.Implementation
},
FStockOrgId = new FStockOrgId()
{
- FNumber = orgId
+ FOrgId = orgId
},
FSettleID = new FSettleID()
{
@@ -295,13 +301,14 @@ namespace MyCode.Project.Services.Implementation
FNumber = customerId
},
FOwnerTypeIdHead = OWNER_TYPE,
+
FOwnerIdHead = new FOwnerIdHead()
{
- FNumber = orgId
+ FOrgId = orgId
},
FCDateOffsetValue = 0,
FIsTotalServiceOrCost = false,
- F_dmi_Combo = "鏍囧噯鍑哄簱",
+ //F_dmi_Combo = "鏍囧噯鍑哄簱",
SubHeadEntity = new FSubHeadEntity()
{
FSettleCurrID = new FSettleCurrID()
@@ -310,7 +317,7 @@ namespace MyCode.Project.Services.Implementation
},
FSettleOrgID = new FSettleOrgID()
{
- FNumber = orgId
+ FOrgId = orgId
},
FIsIncludedTax = false,
FLocalCurrID = new FLocalCurrID()
@@ -327,7 +334,7 @@ namespace MyCode.Project.Services.Implementation
},
FEntity = entryList
};
- }
+ }
}
}
diff --git a/Reportapi/MyCode.Project.WebApi/Web.config b/Reportapi/MyCode.Project.WebApi/Web.config
index 1462a6e..cbd417f 100644
--- a/Reportapi/MyCode.Project.WebApi/Web.config
+++ b/Reportapi/MyCode.Project.WebApi/Web.config
@@ -49,7 +49,7 @@
-
+