Compare commits
2 Commits
bce409ee14
...
a8c6c37db1
| Author | SHA1 | Date | |
|---|---|---|---|
| a8c6c37db1 | |||
| 3977f35abe |
7
.vs/VSWorkspaceState.json
Normal file
7
.vs/VSWorkspaceState.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"ExpandedNodes": [
|
||||
""
|
||||
],
|
||||
"SelectedNode": "\\MyCode.Project.sln",
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
||||
BIN
.vs/yuntongzhuadan/v17/.wsuo
Normal file
BIN
.vs/yuntongzhuadan/v17/.wsuo
Normal file
Binary file not shown.
12
.vs/yuntongzhuadan/v17/DocumentLayout.json
Normal file
12
.vs/yuntongzhuadan/v17/DocumentLayout.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "E:\\yuntongzhuadan\\",
|
||||
"Documents": [],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,134 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MyCode.Project.Domain.Message.Request.KingDee.SaveModel
|
||||
{
|
||||
public class PurchaseStockInModel
|
||||
{
|
||||
public int? FID { get; set; }
|
||||
public FBillTypeID FBillTypeID { get; set; }
|
||||
public string FBillNo { get; set; }
|
||||
public string FDate { get; set; }
|
||||
public FStockOrgId FStockOrgId { get; set; }
|
||||
public FDemandOrgId FDemandOrgId { get; set; }
|
||||
public FCorrespondOrgId FCorrespondOrgId { get; set; }
|
||||
public FPurchaseOrgId FPurchaseOrgId { get; set; }
|
||||
public string FOwnerTypeIdHead { get; set; }
|
||||
public FOwnerIdHead FOwnerIdHead { get; set; }
|
||||
public int? FCDateOffsetValue { get; set; }
|
||||
public string FSplitBillType { get; set; }
|
||||
public FSalOutStockOrgId FSalOutStockOrgId { get; set; }
|
||||
public FInStockFin FInStockFin { get; set; }
|
||||
public List<FPurchaseStockInEntryItem> FInStockEntry { get; set; }
|
||||
}
|
||||
|
||||
public class FDemandOrgId
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
public class FPurchaseOrgId
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
public class FOwnerIdHead
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
public class FSalOutStockOrgId
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
public class FInStockFin
|
||||
{
|
||||
public FSettleOrgId FSettleOrgId { get; set; }
|
||||
public FSettleCurrId FSettleCurrId { get; set; }
|
||||
public bool? FIsIncludedTax { get; set; }
|
||||
public string FPriceTimePoint { get; set; }
|
||||
public FLocalCurrId FLocalCurrId { get; set; }
|
||||
public FExchangeTypeId FExchangeTypeId { get; set; }
|
||||
public decimal? FExchangeRate { get; set; }
|
||||
public bool? FISPRICEEXCLUDETAX { get; set; }
|
||||
public decimal? FAllDisCount { get; set; }
|
||||
public decimal? FHSExchangeRate { get; set; }
|
||||
}
|
||||
|
||||
public class FSettleOrgId
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
public class FLocalCurrId
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
public class FPurchaseStockInEntryItem
|
||||
{
|
||||
public string FRowType { get; set; }
|
||||
public FMaterialId FMaterialId { get; set; }
|
||||
public FUnitID FUnitID { get; set; }
|
||||
public string FMaterialDesc { get; set; }
|
||||
public decimal? FWWPickMtlQty { get; set; }
|
||||
public decimal? FRealQty { get; set; }
|
||||
public FPriceUnitID FPriceUnitID { get; set; }
|
||||
public decimal? FPrice { get; set; }
|
||||
public decimal? FDisPriceQty { get; set; }
|
||||
public FStockStatusId FStockStatusId { get; set; }
|
||||
public bool? FGiveAway { get; set; }
|
||||
public string FOWNERTYPEID { get; set; }
|
||||
public decimal? FExtAuxUnitQty { get; set; }
|
||||
public bool? FCheckInComing { get; set; }
|
||||
public bool? FIsReceiveUpdateStock { get; set; }
|
||||
public decimal? FInvoicedJoinQty { get; set; }
|
||||
public decimal? FPriceBaseQty { get; set; }
|
||||
public FRemainInStockUnitId FRemainInStockUnitId { get; set; }
|
||||
public bool? FBILLINGCLOSE { get; set; }
|
||||
public decimal? FRemainInStockQty { get; set; }
|
||||
public decimal? FAPNotJoinQty { get; set; }
|
||||
public decimal? FRemainInStockBaseQty { get; set; }
|
||||
public decimal? FTaxPrice { get; set; }
|
||||
public decimal? FEntryTaxRate { get; set; }
|
||||
public decimal? FDiscountRate { get; set; }
|
||||
public decimal? FCostPrice { get; set; }
|
||||
public decimal? FAuxUnitQty { get; set; }
|
||||
public FOwnerId FOWNERID { get; set; }
|
||||
public string FSRCBILLTYPEID { get; set; }
|
||||
public string FSRCBillNo { get; set; }
|
||||
public decimal? FAllAmountExceptDisCount { get; set; }
|
||||
public decimal? FPriceDiscount { get; set; }
|
||||
public decimal? FConsumeSumQty { get; set; }
|
||||
public decimal? FBaseConsumeSumQty { get; set; }
|
||||
public decimal? FRejectsDiscountAmount { get; set; }
|
||||
public int? FSalOutStockEntryId { get; set; }
|
||||
public decimal? FBeforeDisPriceQty { get; set; }
|
||||
public int? FPayableEntryID { get; set; }
|
||||
public int? FSUBREQBILLSEQ { get; set; }
|
||||
public int? FSUBREQENTRYID { get; set; }
|
||||
public string FBatchNo { get; set; }
|
||||
public string FSerialNo { get; set; }
|
||||
}
|
||||
|
||||
public class FPriceUnitID
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
public class FStockStatusId
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
public class FRemainInStockUnitId
|
||||
{
|
||||
public string FNumber { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,265 +1,249 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace MyCode.Project.Domain.Model
|
||||
{
|
||||
///<summary>
|
||||
///
|
||||
///</summary>
|
||||
[SugarTable("YTKJ_t_ShopParameter")]
|
||||
public partial class YTKJTShopParameter
|
||||
{
|
||||
public YTKJTShopParameter(){
|
||||
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Desc:
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey=true)]
|
||||
public long FID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string FBILLNO {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:审核状态 C=已审核
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string FDOCUMENTSTATUS {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:门店编码
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SHOPCODE")]
|
||||
public string FSHOPCODE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:门店名称
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SHOPNAME")]
|
||||
public string FSHOPNAME {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_TEXT2")]
|
||||
public string FYTKJTEXT2 {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否同步金蝶
|
||||
/// Default:1
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SYNCHRONIZEKINGDEE")]
|
||||
public string FSYNCHRONIZEKINGDEE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否同步WMS
|
||||
/// Default:1
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SYNCHRONIZEWMS")]
|
||||
public string FSYNCHRONIZEWMS {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:销售客户
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SALESCUSTOMERS")]
|
||||
public int FSALESCUSTOMERS {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:发货仓库ID
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_WAREHOUSE")]
|
||||
public int FWAREHOUSE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:仓库货主
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_CANGKUHUOZHU")]
|
||||
public string FCANGKUHUOZHU {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:公司ID
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_COMPANYID")]
|
||||
public string FCOMPANYID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:发货大仓
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_DACANG")]
|
||||
public string FDACANG {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:税率
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_TAXRATE")]
|
||||
public decimal FTAXRATE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建日期
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_CREATEDATE")]
|
||||
public DateTime? FYTKJCREATEDATE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改日期
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_MODIFYDATE")]
|
||||
public DateTime? FYTKJMODIFYDATE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:审核日期
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_AUDITDATE")]
|
||||
public DateTime? FAUDITDATE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建人
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_CREATORID")]
|
||||
public int FYTKJCREATORID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改人
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_MODIFIERID")]
|
||||
public int FYTKJMODIFIERID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:审核人
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_AUDITOR")]
|
||||
public int FAUDITOR {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:仓库编码
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_WAREHOUSE_CODE")]
|
||||
public string FWAREHOUSECODE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:仓库名称
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_WAREHOUSE_NAME")]
|
||||
public string FWAREHOUSENAME {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:销售员ID
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SALER")]
|
||||
public long? FSALER {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:销售组织ID
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SALE_ORGID")]
|
||||
public int? FSALEORGID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否同步采购入库单
|
||||
/// Default:1
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASE_RECEIVING")]
|
||||
public string FPURCHASERECEIVING {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否同步采购退货单
|
||||
/// Default:1
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASE_RETURNORDER")]
|
||||
public string FPURCHASERETURNORDER {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:采购仓库ID
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASINGWAREHOUSE")]
|
||||
public int FPURCHASINGWAREHOUSE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:采购员ID
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASER")]
|
||||
public int FPURCHASER {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:采购仓库编码
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASINGWAREHOUSECODE")]
|
||||
public string FPURCHASINGWAREHOUSECODE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:采购组织
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASEORGID")]
|
||||
public int? FPURCHASEORGID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:开始抓采购入库单开始时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASE_DATE")]
|
||||
public DateTime? FPURCHASEDATE {get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SqlSugar;
|
||||
|
||||
namespace MyCode.Project.Domain.Model
|
||||
{
|
||||
///<summary>
|
||||
///
|
||||
///</summary>
|
||||
[SugarTable("YTKJ_t_ShopParameter")]
|
||||
public partial class YTKJTShopParameter
|
||||
{
|
||||
public YTKJTShopParameter(){
|
||||
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Desc:
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey=true)]
|
||||
public long FID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string FBILLNO {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:审核状态 C=已审核
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string FDOCUMENTSTATUS {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:门店编码
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SHOPCODE")]
|
||||
public string FSHOPCODE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:门店名称
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SHOPNAME")]
|
||||
public string FSHOPNAME {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_TEXT2")]
|
||||
public string FYTKJTEXT2 {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否同步金蝶
|
||||
/// Default:1
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SYNCHRONIZEKINGDEE")]
|
||||
public string FSYNCHRONIZEKINGDEE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否同步WMS
|
||||
/// Default:1
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SYNCHRONIZEWMS")]
|
||||
public string FSYNCHRONIZEWMS {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:销售客户
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SALESCUSTOMERS")]
|
||||
public int FSALESCUSTOMERS {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:发货仓库ID
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_WAREHOUSE")]
|
||||
public int FWAREHOUSE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:仓库货主
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_CANGKUHUOZHU")]
|
||||
public string FCANGKUHUOZHU {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:公司ID
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_COMPANYID")]
|
||||
public string FCOMPANYID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:发货大仓
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_DACANG")]
|
||||
public string FDACANG {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:税率
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_TAXRATE")]
|
||||
public decimal FTAXRATE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建日期
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_CREATEDATE")]
|
||||
public DateTime? FYTKJCREATEDATE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改日期
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_MODIFYDATE")]
|
||||
public DateTime? FYTKJMODIFYDATE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:审核日期
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_AUDITDATE")]
|
||||
public DateTime? FAUDITDATE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:创建人
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_CREATORID")]
|
||||
public int FYTKJCREATORID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改人
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_YTKJ_MODIFIERID")]
|
||||
public int FYTKJMODIFIERID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:审核人
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_AUDITOR")]
|
||||
public int FAUDITOR {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:仓库编码
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_WAREHOUSE_CODE")]
|
||||
public string FWAREHOUSECODE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:仓库名称
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_WAREHOUSE_NAME")]
|
||||
public string FWAREHOUSENAME {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:销售员ID
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SALER")]
|
||||
public long? FSALER {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:销售组织ID
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_SALE_ORGID")]
|
||||
public int? FSALEORGID {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否同步采购入库单
|
||||
/// Default:1
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASE_RECEIVING")]
|
||||
public string FPURCHASERECEIVING {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否同步采购退货单
|
||||
/// Default:1
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASE_RETURNORDER")]
|
||||
public string FPURCHASERETURNORDER {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:采购仓库ID
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASINGWAREHOUSE")]
|
||||
public int FPURCHASINGWAREHOUSE {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:采购员ID
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASER")]
|
||||
public int FPURCHASER {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:采购仓库编码
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="F_PURCHASINGWAREHOUSECODE")]
|
||||
public string FPURCHASINGWAREHOUSECODE {get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,6 +73,7 @@
|
||||
<Compile Include="Message\Request\JackYun\StorageGoodsDocOutV2Request.cs" />
|
||||
<Compile Include="Message\Request\KingDee\BillDelete.cs" />
|
||||
<Compile Include="Message\Request\KingDee\BillSave.cs" />
|
||||
<Compile Include="Message\Request\KingDee\SaveModel\PurchaseStockInModel.cs" />
|
||||
<Compile Include="Message\Request\KingDee\SaveModel\SaleOrderModel.cs" />
|
||||
<Compile Include="Message\Request\TimeRange.cs" />
|
||||
<Compile Include="Message\Request\WMS\SaleOrder.cs" />
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MyCode.Project.Services.IServices
|
||||
{
|
||||
public interface IPurchaseStockInService
|
||||
{
|
||||
string PushPurchaseStockInToKingDee(string id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -240,5 +240,6 @@ namespace MyCode.Project.Services.Implementation
|
||||
//LogHelper.Info();
|
||||
return responseStatus;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,334 @@
|
||||
using MyCode.Project.Domain.Message.Request.KingDee;
|
||||
using MyCode.Project.Domain.Message.Request.KingDee.SaveModel;
|
||||
using MyCode.Project.Domain.Message.Response.KingDee.K3Result;
|
||||
using MyCode.Project.Domain.Message.Response.KingDee.K3Result.Model;
|
||||
using MyCode.Project.Domain.Model;
|
||||
using MyCode.Project.Domain.Repositories;
|
||||
using MyCode.Project.Infrastructure.Common;
|
||||
using MyCode.Project.Infrastructure.Exceptions;
|
||||
using MyCode.Project.OutSideService;
|
||||
using MyCode.Project.Services.IServices;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace MyCode.Project.Services.Implementation
|
||||
{
|
||||
/// <summary>
|
||||
/// 采购入库单服务实现
|
||||
/// 功能:处理采购入库单推送到金蝶云星空的业务逻辑
|
||||
/// </summary>
|
||||
public class PurchaseStockInService : ServiceBase, IPurchaseStockInService
|
||||
{
|
||||
private const string BILL_TYPE_CODE = "RKD01_SYS";
|
||||
private const string OWNER_TYPE = "BD_OwnerOrg";
|
||||
private const string EXCHANGE_TYPE = "HLTX01_SYS";
|
||||
private const string STOCK_STATUS = "KCZT01_SYS";
|
||||
private const string DEFAULT_ORG = "100";
|
||||
private const string DEFAULT_CURRENCY = "PRE001";
|
||||
private const string DEFAULT_UNIT = "Pcs";
|
||||
private const string ROW_TYPE_STANDARD = "Standard";
|
||||
private const string ROW_TYPE_SERVICE = "Service";
|
||||
private const string FORM_ID = "PUR_PurchaseStockIn";
|
||||
|
||||
private IPushKingDeeGoodsDocInRepository _pushKingDeeGoodsDocInRepository;
|
||||
private IBusiOrderGoodsDocInRepository _busiOrderGoodsDocInRepository;
|
||||
private IYTKJTShopParameterRepository _yTKJTShopParameterRepository;
|
||||
private IKingDeeService _kingDeeService;
|
||||
|
||||
public PurchaseStockInService(
|
||||
IPushKingDeeGoodsDocInRepository pushKingDeeGoodsDocInRepository,
|
||||
IBusiOrderGoodsDocInRepository busiOrderGoodsDocInRepository,
|
||||
IYTKJTShopParameterRepository yTKJTShopParameterRepository,
|
||||
IKingDeeService kingDeeService)
|
||||
{
|
||||
_pushKingDeeGoodsDocInRepository = pushKingDeeGoodsDocInRepository;
|
||||
_busiOrderGoodsDocInRepository = busiOrderGoodsDocInRepository;
|
||||
_yTKJTShopParameterRepository = yTKJTShopParameterRepository;
|
||||
_kingDeeService = kingDeeService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 推送采购入库单到金蝶云星空
|
||||
/// </summary>
|
||||
/// <param name="id">PushKingDeeGoodsDocIn表的主键ID(Guid格式的字符串)</param>
|
||||
/// <returns>返回金蝶API的响应结果(JSON格式)</returns>
|
||||
public string PushPurchaseStockInToKingDee(string id)
|
||||
{
|
||||
var goodsDocIn = _pushKingDeeGoodsDocInRepository
|
||||
.Queryable()
|
||||
.Where(t => id == t.ID.ToString())
|
||||
.First();
|
||||
|
||||
if (goodsDocIn == null)
|
||||
{
|
||||
throw new BaseException($"未找到ID为 {id} 的采购入库单记录");
|
||||
}
|
||||
|
||||
if (goodsDocIn.Status != 0 && goodsDocIn.Status != 1)
|
||||
{
|
||||
throw new BaseException($"采购入库单 {goodsDocIn.GoodsdocNo} 已经推送过,状态为:{goodsDocIn.Status},不允许重复推送");
|
||||
}
|
||||
|
||||
var param = _yTKJTShopParameterRepository
|
||||
.Queryable()
|
||||
.Where(t => t.FDOCUMENTSTATUS == "C")
|
||||
.First();
|
||||
|
||||
if (param == null)
|
||||
{
|
||||
throw new BaseException("没有找到已审核的门店参数配置,请联系管理员检查门店参数表");
|
||||
}
|
||||
|
||||
if (param.FPURCHASERECEIVING == "0")
|
||||
{
|
||||
throw new BaseException("门店参数配置中采购入库单同步功能未启用,请联系管理员检查门店参数配置");
|
||||
}
|
||||
|
||||
if (param.FPURCHASERECEIVING == "1")
|
||||
{
|
||||
var response = PushKingdeePurchaseStockIn(goodsDocIn, param);
|
||||
string result = JsonHelper.ToJson(response);
|
||||
|
||||
if (response.IsSuccess)
|
||||
{
|
||||
var allRecords = _pushKingDeeGoodsDocInRepository
|
||||
.Queryable()
|
||||
.Where(t => t.GoodsdocNo == goodsDocIn.GoodsdocNo)
|
||||
.ToList();
|
||||
|
||||
foreach (var record in allRecords)
|
||||
{
|
||||
record.Status = 2;
|
||||
_pushKingDeeGoodsDocInRepository.Update(record);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
private K3CloudResponseStatus PushKingdeePurchaseStockIn(PushKingDeeGoodsDocIn goodsDocIn, YTKJTShopParameter param)
|
||||
{
|
||||
// 从BusiOrderGoodsDocIn表获取明细数据
|
||||
var detailList = _busiOrderGoodsDocInRepository
|
||||
.Queryable()
|
||||
.Where(t => t.GoodsdocNo == goodsDocIn.GoodsdocNo)
|
||||
.ToList();
|
||||
|
||||
if (detailList == null || detailList.Count == 0)
|
||||
{
|
||||
throw new BaseException($"采购入库单 {goodsDocIn.GoodsdocNo} 没有找到明细数据,无法推送");
|
||||
}
|
||||
|
||||
var vendorCodes = detailList.Where(d => !string.IsNullOrEmpty(d.VendCode))
|
||||
.Select(d => d.VendCode)
|
||||
.Distinct()
|
||||
.ToList();
|
||||
if (vendorCodes.Count > 1)
|
||||
{
|
||||
throw new BaseException($"采购入库单 {goodsDocIn.GoodsdocNo} 明细行中存在不同的供应商编码:{string.Join(",", vendorCodes)},无法推送");
|
||||
}
|
||||
|
||||
// 获取第一条明细用于主表信息
|
||||
var firstDetail = detailList.FirstOrDefault();
|
||||
if (firstDetail == null)
|
||||
{
|
||||
throw new BaseException($"采购入库单 {goodsDocIn.GoodsdocNo} 明细数据为空,无法推送");
|
||||
}
|
||||
|
||||
// 获取采购组织ID
|
||||
string purchaseOrgId = param.FPURCHASEORGID?.ToString() ?? param.FSALEORGID?.ToString() ?? DEFAULT_ORG;
|
||||
|
||||
// 获取仓库编码
|
||||
string warehouseCode = firstDetail.WarehouseCode ?? param.FPURCHASINGWAREHOUSECODE ?? "";
|
||||
|
||||
// 数据校验
|
||||
if (string.IsNullOrEmpty(firstDetail.VendCode))
|
||||
{
|
||||
throw new BaseException($"采购入库单 {goodsDocIn.GoodsdocNo} 供应商编码为空,无法推送");
|
||||
}
|
||||
if (string.IsNullOrEmpty(warehouseCode))
|
||||
{
|
||||
throw new BaseException($"采购入库单 {goodsDocIn.GoodsdocNo} 仓库编码为空,无法推送");
|
||||
}
|
||||
|
||||
// 构建金蝶API的明细行数据
|
||||
var entryList = detailList.Select((n, index) => BuildEntryItem(n, param, purchaseOrgId, warehouseCode)).ToList();
|
||||
|
||||
if (entryList.Count == 0)
|
||||
{
|
||||
throw new BaseException($"采购入库单 {goodsDocIn.GoodsdocNo} 明细数据转换失败,无法推送");
|
||||
}
|
||||
|
||||
// 构建金蝶API的主表数据
|
||||
var model = BuildMainModel(goodsDocIn, firstDetail, param, purchaseOrgId, entryList);
|
||||
|
||||
// 构建金蝶API请求对象
|
||||
BillSave billSave = new BillSave()
|
||||
{
|
||||
Model = model,
|
||||
IsAutoSubmitAndAudit = true,
|
||||
};
|
||||
|
||||
// 调用金蝶服务保存单据
|
||||
var responseStatus = _kingDeeService.Save(FORM_ID, billSave);
|
||||
return responseStatus;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 构建明细行数据
|
||||
/// </summary>
|
||||
private FPurchaseStockInEntryItem BuildEntryItem(BusiOrderGoodsDocIn detail, YTKJTShopParameter param, string orgId, string warehouseCode)
|
||||
{
|
||||
// 根据入库类型动态设置FRowType(如果入库类型包含"服务"或"费用"等关键字,则设置为Service,否则为Standard)
|
||||
string rowType = ROW_TYPE_STANDARD;
|
||||
if (!string.IsNullOrEmpty(detail.InouttypeName))
|
||||
{
|
||||
string inoutType = detail.InouttypeName.ToUpper();
|
||||
if (inoutType.Contains("服务") || inoutType.Contains("费用") || inoutType.Contains("SERVICE") || inoutType.Contains("FEE"))
|
||||
{
|
||||
rowType = ROW_TYPE_SERVICE;
|
||||
}
|
||||
}
|
||||
|
||||
// 计算折扣后金额(无税金额)
|
||||
decimal? allAmountExceptDisCount = detail.BaceCurrencyNoTaxAmount ?? 0;
|
||||
|
||||
return new FPurchaseStockInEntryItem()
|
||||
{
|
||||
FRowType = rowType,
|
||||
FMaterialId = new FMaterialId()
|
||||
{
|
||||
FNumber = detail.SkuBarcode ?? ""
|
||||
},
|
||||
FUnitID = new FUnitID()
|
||||
{
|
||||
FNumber = detail.UnitName ?? DEFAULT_UNIT
|
||||
},
|
||||
FMaterialDesc = detail.GoodsName ?? "",
|
||||
FWWPickMtlQty = 0,
|
||||
FRealQty = detail.Quantity ?? 0,
|
||||
FPriceUnitID = new FPriceUnitID()
|
||||
{
|
||||
FNumber = detail.UnitName ?? DEFAULT_UNIT
|
||||
},
|
||||
FPrice = detail.BaceCurrencyNoTaxPrice ?? 0,
|
||||
FDisPriceQty = 0,
|
||||
FStockStatusId = new FStockStatusId()
|
||||
{
|
||||
FNumber = STOCK_STATUS
|
||||
},
|
||||
FGiveAway = false,
|
||||
FOWNERTYPEID = OWNER_TYPE,
|
||||
FExtAuxUnitQty = 0,
|
||||
FCheckInComing = false,
|
||||
FIsReceiveUpdateStock = false,
|
||||
FInvoicedJoinQty = 0,
|
||||
FPriceBaseQty = detail.Quantity ?? 0,
|
||||
FRemainInStockUnitId = new FRemainInStockUnitId()
|
||||
{
|
||||
FNumber = detail.UnitName ?? DEFAULT_UNIT
|
||||
},
|
||||
FBILLINGCLOSE = false,
|
||||
FRemainInStockQty = detail.Quantity ?? 0,
|
||||
FRemainInStockBaseQty = detail.Quantity ?? 0,
|
||||
FAPNotJoinQty = detail.Quantity ?? 0,
|
||||
FTaxPrice = detail.BaceCurrencyWithTaxPrice ?? 0,
|
||||
FEntryTaxRate = detail.TaxRate ?? (decimal?)param.FTAXRATE,
|
||||
FDiscountRate = 0,
|
||||
FCostPrice = detail.BaceCurrencyCostPrice ?? 0,
|
||||
FAuxUnitQty = 0,
|
||||
FOWNERID = new FOwnerId()
|
||||
{
|
||||
FNumber = orgId
|
||||
},
|
||||
FSRCBILLTYPEID = detail.SourceBillNo,
|
||||
FSRCBillNo = detail.SourceBillNo ?? detail.BillNo ?? "",
|
||||
FAllAmountExceptDisCount = allAmountExceptDisCount,
|
||||
FPriceDiscount = 0,
|
||||
FConsumeSumQty = 0,
|
||||
FBaseConsumeSumQty = 0,
|
||||
FRejectsDiscountAmount = 0,
|
||||
FSalOutStockEntryId = 0,
|
||||
FBeforeDisPriceQty = 0,
|
||||
FPayableEntryID = 0,
|
||||
FSUBREQBILLSEQ = 0,
|
||||
FSUBREQENTRYID = 0,
|
||||
FBatchNo = detail.BatchNo ?? "",
|
||||
FSerialNo = detail.SerialNo ?? ""
|
||||
};
|
||||
}
|
||||
|
||||
private PurchaseStockInModel BuildMainModel(PushKingDeeGoodsDocIn goodsDocIn, BusiOrderGoodsDocIn firstDetail, YTKJTShopParameter param, string orgId, List<FPurchaseStockInEntryItem> entryList)
|
||||
{
|
||||
string dateStr = goodsDocIn.InOutDate2?.ToString("yyyy-MM-dd") ?? DateTime.Now.ToString("yyyy-MM-dd");
|
||||
|
||||
return new PurchaseStockInModel()
|
||||
{
|
||||
FID = 0,
|
||||
FBillTypeID = new FBillTypeID()
|
||||
{
|
||||
FNUMBER = BILL_TYPE_CODE
|
||||
},
|
||||
FDate = dateStr,
|
||||
FStockOrgId = new FStockOrgId()
|
||||
{
|
||||
FNumber = orgId
|
||||
},
|
||||
FDemandOrgId = new FDemandOrgId()
|
||||
{
|
||||
FNumber = orgId
|
||||
},
|
||||
FCorrespondOrgId = new FCorrespondOrgId()
|
||||
{
|
||||
FNumber = orgId
|
||||
},
|
||||
FPurchaseOrgId = new FPurchaseOrgId()
|
||||
{
|
||||
FNumber = orgId
|
||||
},
|
||||
FOwnerTypeIdHead = OWNER_TYPE,
|
||||
FOwnerIdHead = new FOwnerIdHead()
|
||||
{
|
||||
FNumber = orgId
|
||||
},
|
||||
FCDateOffsetValue = 0,
|
||||
FSplitBillType = "A",
|
||||
FSalOutStockOrgId = new FSalOutStockOrgId()
|
||||
{
|
||||
FNumber = orgId
|
||||
},
|
||||
FInStockFin = new FInStockFin()
|
||||
{
|
||||
FSettleOrgId = new FSettleOrgId()
|
||||
{
|
||||
FNumber = orgId
|
||||
},
|
||||
FSettleCurrId = new FSettleCurrId()
|
||||
{
|
||||
FNumber = goodsDocIn.CurrencyCode ?? DEFAULT_CURRENCY
|
||||
},
|
||||
FIsIncludedTax = true,
|
||||
FPriceTimePoint = "1",
|
||||
FLocalCurrId = new FLocalCurrId()
|
||||
{
|
||||
FNumber = goodsDocIn.CurrencyCode ?? DEFAULT_CURRENCY
|
||||
},
|
||||
FExchangeTypeId = new FExchangeTypeId()
|
||||
{
|
||||
FNumber = EXCHANGE_TYPE
|
||||
},
|
||||
FExchangeRate = goodsDocIn.CurrencyRate ?? 1m,
|
||||
FISPRICEEXCLUDETAX = true,
|
||||
FAllDisCount = 0m,
|
||||
FHSExchangeRate = 1m
|
||||
},
|
||||
FInStockEntry = entryList
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -119,6 +119,7 @@
|
||||
<Compile Include="Implementation\ApiLogService.cs" />
|
||||
<Compile Include="Implementation\JackYunStockinService.cs" />
|
||||
<Compile Include="Implementation\OrderPushService.cs" />
|
||||
<Compile Include="Implementation\PurchaseStockInService.cs" />
|
||||
<Compile Include="Implementation\WMSService.cs" />
|
||||
<Compile Include="Implementation\JackYunService.cs" />
|
||||
<Compile Include="Implementation\JackYunTaskService.cs" />
|
||||
@ -129,6 +130,7 @@
|
||||
<Compile Include="IServices\IAnsyDataProcessService.cs" />
|
||||
<Compile Include="IServices\IJackYunStockinService.cs" />
|
||||
<Compile Include="IServices\IOrderPushService.cs" />
|
||||
<Compile Include="IServices\IPurchaseStockInService.cs" />
|
||||
<Compile Include="IServices\IWMSService.cs" />
|
||||
<Compile Include="IServices\IJackYunTaskService.cs" />
|
||||
<Compile Include="IServices\IJackYunService.cs" />
|
||||
|
||||
@ -20,14 +20,17 @@ namespace MyCode.Project.WebApi.Controllers
|
||||
private IWMSService _wMSService;
|
||||
private IJackYunStockinService _jackYunStockinService;
|
||||
private IOrderPushService _orderPushService;
|
||||
private IPurchaseStockInService _purchaseStockInService;
|
||||
|
||||
public TestController(IJackYunTaskService jackYunTaskService, IWMSService wMSService
|
||||
, IJackYunStockinService jackYunStockinService, IOrderPushService orderPushService)
|
||||
, IJackYunStockinService jackYunStockinService, IOrderPushService orderPushService
|
||||
, IPurchaseStockInService purchaseStockInService)
|
||||
{
|
||||
_jackYunTaskService = jackYunTaskService;
|
||||
_wMSService = wMSService;
|
||||
_jackYunStockinService = jackYunStockinService;
|
||||
_orderPushService = orderPushService;
|
||||
_purchaseStockInService = purchaseStockInService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -40,6 +43,16 @@ namespace MyCode.Project.WebApi.Controllers
|
||||
return _orderPushService.PushOrderToKingDee(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 测试推送采购入库单到金蝶云星空
|
||||
/// </summary>
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public string TaskSendKingdeePurchaseStockInById(string id)
|
||||
{
|
||||
return _purchaseStockInService.PushPurchaseStockInToKingDee(id);
|
||||
}
|
||||
|
||||
|
||||
#region 调度运行抓吉客云销售订单
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user