f34f0751ef0c6305c94ff342ca7fbe24aa09844e..a27f32ecbfc7390ceb9e3a8d8651c57ada88bfa0
4 天以前 zjh
Merge branch 'master' of http://43.142.96.171:8080/r/~tjx/XB_MES_API
a27f32 对比 | 目录
4 天以前 zjh
代码提交
9e256f 对比 | 目录
4 天以前 tjx
111
fbd1da 对比 | 目录
已添加7个文件
已修改2个文件
1446 ■■■■■ 文件已修改
StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDelivery.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDetailDto.cs 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDto.cs 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesInvItemStocks.cs 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/ShipmentPlanDelivery.cs 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/ShipmentPlanDeliveryDetail.cs 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/BasicData/ShipmentPlanDeliveryManager.cs 302 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/BasicData/ShipmentPlanDeliveryController.cs 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDelivery.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
namespace MES.Service.Dto.webApi;
/// <summary>
///     å‡ºè´§è®¡åˆ’出货接口数据包装类
/// </summary>
public class ErpShipmentPlanDelivery
{
    /// <summary>
    ///     ä¸»è¡¨æ•°æ®
    /// </summary>
    public ErpShipmentPlanDeliveryDto OrderDto { get; set; }
    /// <summary>
    ///     æ˜Žç»†è¡¨æ•°æ®
    /// </summary>
    public List<ErpShipmentPlanDeliveryDetailDto> Items { get; set; }
}
StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDetailDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,217 @@
namespace MES.Service.Dto.webApi;
/// <summary>
///     å‡ºè´§è®¡åˆ’出货接口明细DTO
/// </summary>
public class ErpShipmentPlanDeliveryDetailDto
{
    /// <summary>
    ///     ERP行ID
    /// </summary>
    public string? ErpLineId { get; set; }
    /// <summary>
    ///     ERP头ID
    /// </summary>
    public string? ErpHeadId { get; set; }
    /// <summary>
    ///     è¡Œå·
    /// </summary>
    public string? LineNo { get; set; }
    /// <summary>
    ///     å°æ­¥é¡¹ç›®
    /// </summary>
    public string? Project { get; set; }
    /// <summary>
    ///     å®¢æˆ·æ–™å·
    /// </summary>
    public string? CustomerItemNo { get; set; }
    /// <summary>
    ///     å®¢æˆ·å“å
    /// </summary>
    public string? CustomerItemName { get; set; }
    /// <summary>
    ///     æ–™å·
    /// </summary>
    public string? MaterialId { get; set; }
    /// <summary>
    ///     å“å
    /// </summary>
    public string? MaterialName { get; set; }
    /// <summary>
    ///     è§„æ ¼
    /// </summary>
    public string? Specification { get; set; }
    /// <summary>
    ///     å­˜å‚¨åœ°ç‚¹
    /// </summary>
    public string? StorageLocation { get; set; }
    /// <summary>
    ///     å•位
    /// </summary>
    public string? Unit { get; set; }
    /// <summary>
    ///     æ•°é‡
    /// </summary>
    public string? Quantity { get; set; }
    /// <summary>
    ///     å…è´¹å“ç±»åž‹
    /// </summary>
    public string? FreeItemType { get; set; }
    /// <summary>
    ///     äº¤æœŸ
    /// </summary>
    public string? DeliveryDate { get; set; }
    /// <summary>
    ///     è¡¨ä½“备注
    /// </summary>
    public string? BodyNote { get; set; }
    /// <summary>
    ///     ASN行号
    /// </summary>
    public string? AsnLineNo { get; set; }
    /// <summary>
    ///     åº“存可用量
    /// </summary>
    public decimal? AvailableStock { get; set; }
    /// <summary>
    ///     æŸ¥è¯¢åº“存时间
    /// </summary>
    public string? InventoryQueryTime { get; set; }
    /// <summary>
    ///     è¡ŒçŠ¶æ€
    /// </summary>
    public string? LineStatus { get; set; }
    /// <summary>
    ///     æ”¶è´§ä½ç½®
    /// </summary>
    public string? ReceiverLocation { get; set; }
    /// <summary>
    ///     æ”¶è´§åœ°å€
    /// </summary>
    public string? ReceiverAddress { get; set; }
    /// <summary>
    ///     æ”¶è´§åœ°å€å…¨ç§°
    /// </summary>
    public string? ReceiverAddressFull { get; set; }
    /// <summary>
    ///     æ”¶è´§è”系人
    /// </summary>
    public string? ReceiverContact { get; set; }
    /// <summary>
    ///     å¯é€€æ¢
    /// </summary>
    public string? Returnable { get; set; }
    /// <summary>
    ///     å¯ç”¨æ—¥æœŸ
    /// </summary>
    public string? AvailableDate { get; set; }
    /// <summary>
    ///     æ‰¿è¯ºæ—¥æœŸ
    /// </summary>
    public string? CommitmentDate { get; set; }
    /// <summary>
    ///     è®¡åˆ’出货日
    /// </summary>
    public string? PlanShipDate { get; set; }
    /// <summary>
    ///     å®¢æˆ·ç¡®è®¤å‡ºè´§æ—¥
    /// </summary>
    public string? CustomerConfirmDate { get; set; }
    /// <summary>
    ///     è®¡åˆ’组织
    /// </summary>
    public string? PlanOrg { get; set; }
    /// <summary>
    ///     ä¾›åº”商直运
    /// </summary>
    public string? VendorDirectShip { get; set; }
    /// <summary>
    ///     ä¾›åº”来源
    /// </summary>
    public string? SupplySource { get; set; }
    /// <summary>
    ///     ä¾›åº”类型
    /// </summary>
    public string? SupplyType { get; set; }
    /// <summary>
    ///     ä¾›åº”组织
    /// </summary>
    public string? SupplyOrg { get; set; }
    /// <summary>
    ///     ä¾›åº”商
    /// </summary>
    public string? Supplier { get; set; }
    /// <summary>
    ///     å‡ºè´§æ–¹å¼
    /// </summary>
    public string? DetailShippingMethod { get; set; }
    /// <summary>
    ///     è´§ä¸»ç»„织
    /// </summary>
    public string? OwnerOrg { get; set; }
    /// <summary>
    ///     éœ€æ±‚分类
    /// </summary>
    public string? DetailDemandCategory { get; set; }
    /// <summary>
    ///     åº“存规划
    /// </summary>
    public string? InventoryPlanning { get; set; }
    /// <summary>
    ///     è¡Œå¤‡æ³¨
    /// </summary>
    public string? LineRemark { get; set; }
    /// <summary>
    ///     æ¥æºå•据类别
    /// </summary>
    public string? SourceDocCategory { get; set; }
    /// <summary>
    ///     æ¥æºå•号
    /// </summary>
    public string? SourceDocNo { get; set; }
    /// <summary>
    ///     æ¥æºå•行号
    /// </summary>
    public string? SourceLineNo { get; set; }
}
StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,137 @@
namespace MES.Service.Dto.webApi;
/// <summary>
///     å‡ºè´§è®¡åˆ’出货接口主表DTO
/// </summary>
public class ErpShipmentPlanDeliveryDto
{
    /// <summary>
    ///     æŽ¥å£ç±»åž‹ï¼ˆ2:新增/更新, 3:修改, 4:删除)
    /// </summary>
    public string? Type { get; set; }
    /// <summary>
    ///     ERP主表ID
    /// </summary>
    public string? ErpHeadId { get; set; }
    /// <summary>
    ///     å•据类型
    /// </summary>
    public string? BillType { get; set; }
    /// <summary>
    ///     å•号
    /// </summary>
    public string? BillNo { get; set; }
    /// <summary>
    ///     å®¢æˆ·
    /// </summary>
    public string? Customer { get; set; }
    /// <summary>
    ///     æ—¥æœŸï¼ˆæ ¼å¼ï¼šyyyy-MM-dd HH:mm:ss)
    /// </summary>
    public string? FDate { get; set; }
    /// <summary>
    ///     æŽ¥å£çŠ¶æ€
    /// </summary>
    public string? InterfaceStatus { get; set; }
    /// <summary>
    ///     ä¸šåŠ¡å‘˜
    /// </summary>
    public string? Salesperson { get; set; }
    /// <summary>
    ///     éƒ¨é—¨
    /// </summary>
    public string? Department { get; set; }
    /// <summary>
    ///     æ¥æºå•据类别
    /// </summary>
    public string? SourceDocCategory { get; set; }
    /// <summary>
    ///     æ¥æºå•据
    /// </summary>
    public string? SourceDocument { get; set; }
    /// <summary>
    ///     çŠ¶æ€
    /// </summary>
    public string? Status { get; set; }
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    public string? CreatedBy { get; set; }
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´ï¼ˆæ ¼å¼ï¼šyyyy-MM-dd HH:mm:ss)
    /// </summary>
    public string? CreatedDate { get; set; }
    /// <summary>
    ///     å®¡æ ¸äºº
    /// </summary>
    public string? ApprovedBy { get; set; }
    /// <summary>
    ///     å®¡æ ¸æ—¥æœŸï¼ˆæ ¼å¼ï¼šyyyy-MM-dd HH:mm:ss)
    /// </summary>
    public string? ApprovedDate { get; set; }
    /// <summary>
    ///     è¡¨å¤´å¤‡æ³¨
    /// </summary>
    public string? HeaderNote { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    public string? Remark { get; set; }
    /// <summary>
    ///     ASN号
    /// </summary>
    public string? AsnNo { get; set; }
    /// <summary>
    ///     é¡¹ç›®
    /// </summary>
    public string? Project { get; set; }
    /// <summary>
    ///     å®¢æˆ·é‡‡è´­è®¢å•
    /// </summary>
    public string? CustomerPo { get; set; }
    /// <summary>
    ///     å‡ºè´§åŽŸåˆ™
    /// </summary>
    public string? ShippingPolicy { get; set; }
    /// <summary>
    ///     å‡ºè´§æ–¹å¼
    /// </summary>
    public string? ShippingMethod { get; set; }
    /// <summary>
    ///     éœ€æ±‚分类
    /// </summary>
    public string? DemandCategory { get; set; }
    /// <summary>
    ///     è£…运港
    /// </summary>
    public string? ShippingPort { get; set; }
    /// <summary>
    ///     ç›®çš„æ¸¯
    /// </summary>
    public string? DestinationPort { get; set; }
}
StandardPda/MES.Service/Modes/MesInvItemStocks.cs
@@ -136,22 +136,22 @@
    public string? Fcar { get; set; }
    /// <summary>
    ///     å†»ç»“提交重检,0:冻结未提交重检,1:冻结并提交重检
    ///     å†»ç»“提交重检,0:未提交,1:已提交
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE_SUBMIT")]
    public short? VisableSubmit { get; set; }
    [SugarColumn(ColumnName = "VISIBLE_SUBMIT")]
    public short? VisibleSubmit { get; set; }
    /// <summary>
    ///     æäº¤é‡æ£€äºº
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE_SUBMIT_BY")]
    public string? VisableSubmitBy { get; set; }
    [SugarColumn(ColumnName = "VISIBLE_SUBMIT_BY")]
    public string? VisibleSubmitBy { get; set; }
    /// <summary>
    ///     æäº¤é‡æ£€æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE_SUBMIT_DATE")]
    public DateTime? VisableSubmitDate { get; set; }
    [SugarColumn(ColumnName = "VISIBLE_SUBMIT_DATE")]
    public DateTime? VisibleSubmitDate { get; set; }
    /// <summary>
    ///     äº§å“åž‹å·
@@ -184,7 +184,7 @@
    public string? LineNo { get; set; }
    /// <summary>
    ///     åŠæˆå“å…¥åº“单号
    ///     å•号
    /// </summary>
    [SugarColumn(ColumnName = "BILL_NO")]
    public string? BillNo { get; set; }
@@ -208,7 +208,7 @@
    public decimal? ItemId { get; set; }
    /// <summary>
    ///     æ˜¯å¦å ç”¨
    ///     æ˜¯å¦ä¸“用
    /// </summary>
    [SugarColumn(ColumnName = "IS_ZY")]
    public decimal? IsZy { get; set; }
@@ -220,19 +220,19 @@
    public string? SalesOrder { get; set; }
    /// <summary>
    ///     å¯è§æ€§(0-可见,1-不可见)
    ///     æ˜¯å¦å·²å†»ç»“,1冻结
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE")]
    public short? Visable { get; set; }
    [SugarColumn(ColumnName = "VISIBLE")]
    public short? Visible { get; set; }
    /// <summary>
    ///     æ˜¯å¦å€Ÿå‡º
    ///     æ˜¯å¦å¯„å­˜
    /// </summary>
    [SugarColumn(ColumnName = "IS_JC")]
    public decimal? IsJc { get; set; }
    /// <summary>
    ///     å€Ÿå‡ºå•号
    ///     å¯„存工单
    /// </summary>
    [SugarColumn(ColumnName = "JC_BILL_NO")]
    public string? JcBillNo { get; set; }
@@ -262,7 +262,7 @@
    public decimal? DepotId { get; set; }
    /// <summary>
    ///     ç‰©æ–™æ¡ç D
    ///     å¤§ç®±æ¡ç 
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_BARCODE_D")]
    public string? ItemBarcodeD { get; set; }
@@ -278,4 +278,28 @@
    /// </summary>
    [SugarColumn(ColumnName = "IS_TS")]
    public decimal? IsTs { get; set; }
    /// <summary>
    ///     å†»ç»“更新人
    /// </summary>
    [SugarColumn(ColumnName = "VISIBLE_UPDATE_BY")]
    public string? VisibleUpdateBy { get; set; }
    /// <summary>
    ///     å†»ç»“æ›´æ–°æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "VISIBLE_UPDATE_DATE")]
    public DateTime? VisibleUpdateDate { get; set; }
    /// <summary>
    ///     å†»ç»“更新理由
    /// </summary>
    [SugarColumn(ColumnName = "VISIBLE_UPDATE_REASON")]
    public string? VisibleUpdateReason { get; set; }
    /// <summary>
    ///     æ³¨é‡Š
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string? Remark { get; set; }
}
StandardPda/MES.Service/Modes/ShipmentPlanDelivery.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,166 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     æ¥æºå‡ºè´§è®¡åˆ’的标准出货主表
/// </summary>
[SugarTable("SHIPMENT_PLAN_DELIVERY")]
public class ShipmentPlanDelivery
{
    /// <summary>
    ///     ä¸»é”®ID
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_SHIPMENT_PLAN_DELIVERY", IsPrimaryKey = true)]
    public decimal? Id { get; set; }
    /// <summary>
    ///     å•据类型
    /// </summary>
    [SugarColumn(ColumnName = "BILL_TYPE")]
    public string? BillType { get; set; }
    /// <summary>
    ///     å•号
    /// </summary>
    [SugarColumn(ColumnName = "BILL_NO")]
    public string? BillNo { get; set; }
    /// <summary>
    ///     å®¢æˆ·
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER")]
    public string? Customer { get; set; }
    /// <summary>
    ///     æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "F_DATE")]
    public DateTime? FDate { get; set; }
    /// <summary>
    ///     æŽ¥å£çŠ¶æ€
    /// </summary>
    [SugarColumn(ColumnName = "INTERFACE_STATUS")]
    public string? InterfaceStatus { get; set; }
    /// <summary>
    ///     ä¸šåŠ¡å‘˜
    /// </summary>
    [SugarColumn(ColumnName = "SALESPERSON")]
    public string? Salesperson { get; set; }
    /// <summary>
    ///     éƒ¨é—¨
    /// </summary>
    [SugarColumn(ColumnName = "DEPARTMENT")]
    public string? Department { get; set; }
    /// <summary>
    ///     æ¥æºå•据类别
    /// </summary>
    [SugarColumn(ColumnName = "SOURCE_DOC_CATEGORY")]
    public string? SourceDocCategory { get; set; }
    /// <summary>
    ///     æ¥æºå•据
    /// </summary>
    [SugarColumn(ColumnName = "SOURCE_DOCUMENT")]
    public string? SourceDocument { get; set; }
    /// <summary>
    ///     çŠ¶æ€
    /// </summary>
    [SugarColumn(ColumnName = "STATUS")]
    public string? Status { get; set; }
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "CREATED_BY")]
    public string? CreatedBy { get; set; }
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CREATED_DATE")]
    public DateTime? CreatedDate { get; set; }
    /// <summary>
    ///     å®¡æ ¸äºº
    /// </summary>
    [SugarColumn(ColumnName = "APPROVED_BY")]
    public string? ApprovedBy { get; set; }
    /// <summary>
    ///     å®¡æ ¸æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "APPROVED_DATE")]
    public DateTime? ApprovedDate { get; set; }
    /// <summary>
    ///     è¡¨å¤´å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "HEADER_NOTE")]
    public string? HeaderNote { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string? Remark { get; set; }
    /// <summary>
    ///     ASN号
    /// </summary>
    [SugarColumn(ColumnName = "ASN_NO")]
    public string? AsnNo { get; set; }
    /// <summary>
    ///     é¡¹ç›®
    /// </summary>
    [SugarColumn(ColumnName = "PROJECT")]
    public string? Project { get; set; }
    /// <summary>
    ///     å®¢æˆ·é‡‡è´­è®¢å•
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_PO")]
    public string? CustomerPo { get; set; }
    /// <summary>
    ///     å‡ºè´§åŽŸåˆ™
    /// </summary>
    [SugarColumn(ColumnName = "SHIPPING_POLICY")]
    public string? ShippingPolicy { get; set; }
    /// <summary>
    ///     å‡ºè´§æ–¹å¼
    /// </summary>
    [SugarColumn(ColumnName = "SHIPPING_METHOD")]
    public string? ShippingMethod { get; set; }
    /// <summary>
    ///     éœ€æ±‚分类
    /// </summary>
    [SugarColumn(ColumnName = "DEMAND_CATEGORY")]
    public string? DemandCategory { get; set; }
    /// <summary>
    ///     è£…运港
    /// </summary>
    [SugarColumn(ColumnName = "SHIPPING_PORT")]
    public string? ShippingPort { get; set; }
    /// <summary>
    ///     ç›®çš„æ¸¯
    /// </summary>
    [SugarColumn(ColumnName = "DESTINATION_PORT")]
    public string? DestinationPort { get; set; }
    /// <summary>
    ///     ä¸»è¡¨ERPID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_HEAD_ID")]
    public string? ErpHeadId { get; set; }
}
StandardPda/MES.Service/Modes/ShipmentPlanDeliveryDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,274 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     æ¥æºå‡ºè´§è®¡åˆ’的标准出货明细表
/// </summary>
[SugarTable("SHIPMENT_PLAN_DELIVERY_DETAIL")]
public class ShipmentPlanDeliveryDetail
{
    /// <summary>
    ///     ä¸»é”®ID
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_SHIPMENT_PLAN_DELIVERY_D", IsPrimaryKey = true)]
    public decimal? Id { get; set; }
    /// <summary>
    ///     ä¸»è¡¨ID
    /// </summary>
    [SugarColumn(ColumnName = "HEAD_ID")]
    public decimal? HeadId { get; set; }
    /// <summary>
    ///     è¡Œå·
    /// </summary>
    [SugarColumn(ColumnName = "LINE_NO")]
    public string? LineNo { get; set; }
    /// <summary>
    ///     å°æ­¥é¡¹ç›®
    /// </summary>
    [SugarColumn(ColumnName = "PROJECT")]
    public string? Project { get; set; }
    /// <summary>
    ///     å®¢æˆ·æ–™å·
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_ITEM_NO")]
    public string? CustomerItemNo { get; set; }
    /// <summary>
    ///     å®¢æˆ·å“å
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_ITEM_NAME")]
    public string? CustomerItemName { get; set; }
    /// <summary>
    ///     æ–™å·
    /// </summary>
    [SugarColumn(ColumnName = "MATERIAL_ID")]
    public string? MaterialId { get; set; }
    /// <summary>
    ///     å“å
    /// </summary>
    [SugarColumn(ColumnName = "MATERIAL_NAME")]
    public string? MaterialName { get; set; }
    /// <summary>
    ///     è§„æ ¼
    /// </summary>
    [SugarColumn(ColumnName = "SPECIFICATION")]
    public string? Specification { get; set; }
    /// <summary>
    ///     å­˜å‚¨åœ°ç‚¹
    /// </summary>
    [SugarColumn(ColumnName = "STORAGE_LOCATION")]
    public string? StorageLocation { get; set; }
    /// <summary>
    ///     å•位
    /// </summary>
    [SugarColumn(ColumnName = "UNIT")]
    public string? Unit { get; set; }
    /// <summary>
    ///     æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "QUANTITY")]
    public decimal? Quantity { get; set; }
    /// <summary>
    ///     å…è´¹å“ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "FREE_ITEM_TYPE")]
    public string? FreeItemType { get; set; }
    /// <summary>
    ///     äº¤æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "DELIVERY_DATE")]
    public string? DeliveryDate { get; set; }
    /// <summary>
    ///     è¡¨ä½“备注
    /// </summary>
    [SugarColumn(ColumnName = "BODY_NOTE")]
    public string? BodyNote { get; set; }
    /// <summary>
    ///     ASN行号
    /// </summary>
    [SugarColumn(ColumnName = "ASN_LINE_NO")]
    public string? AsnLineNo { get; set; }
    /// <summary>
    ///     åº“存可用量
    /// </summary>
    [SugarColumn(ColumnName = "AVAILABLE_STOCK")]
    public decimal? AvailableStock { get; set; }
    /// <summary>
    ///     æŸ¥è¯¢åº“存时间
    /// </summary>
    [SugarColumn(ColumnName = "INVENTORY_QUERY_TIME")]
    public string? InventoryQueryTime { get; set; }
    /// <summary>
    ///     è¡ŒçŠ¶æ€
    /// </summary>
    [SugarColumn(ColumnName = "LINE_STATUS")]
    public string? LineStatus { get; set; }
    /// <summary>
    ///     æ”¶è´§ä½ç½®
    /// </summary>
    [SugarColumn(ColumnName = "RECEIVER_LOCATION")]
    public string? ReceiverLocation { get; set; }
    /// <summary>
    ///     æ”¶è´§åœ°å€
    /// </summary>
    [SugarColumn(ColumnName = "RECEIVER_ADDRESS")]
    public string? ReceiverAddress { get; set; }
    /// <summary>
    ///     æ”¶è´§åœ°å€å…¨ç§°
    /// </summary>
    [SugarColumn(ColumnName = "RECEIVER_ADDRESS_FULL")]
    public string? ReceiverAddressFull { get; set; }
    /// <summary>
    ///     æ”¶è´§è”系人
    /// </summary>
    [SugarColumn(ColumnName = "RECEIVER_CONTACT")]
    public string? ReceiverContact { get; set; }
    /// <summary>
    ///     å¯é€€æ¢
    /// </summary>
    [SugarColumn(ColumnName = "RETURNABLE")]
    public string? Returnable { get; set; }
    /// <summary>
    ///     å¯ç”¨æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "AVAILABLE_DATE")]
    public string? AvailableDate { get; set; }
    /// <summary>
    ///     æ‰¿è¯ºæ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "COMMITMENT_DATE")]
    public string? CommitmentDate { get; set; }
    /// <summary>
    ///     è®¡åˆ’出货日
    /// </summary>
    [SugarColumn(ColumnName = "PLAN_SHIP_DATE")]
    public string? PlanShipDate { get; set; }
    /// <summary>
    ///     å®¢æˆ·ç¡®è®¤å‡ºè´§æ—¥
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_CONFIRM_DATE")]
    public string? CustomerConfirmDate { get; set; }
    /// <summary>
    ///     è®¡åˆ’组织
    /// </summary>
    [SugarColumn(ColumnName = "PLAN_ORG")]
    public string? PlanOrg { get; set; }
    /// <summary>
    ///     ä¾›åº”商直运
    /// </summary>
    [SugarColumn(ColumnName = "VENDOR_DIRECT_SHIP")]
    public string? VendorDirectShip { get; set; }
    /// <summary>
    ///     ä¾›åº”来源
    /// </summary>
    [SugarColumn(ColumnName = "SUPPLY_SOURCE")]
    public string? SupplySource { get; set; }
    /// <summary>
    ///     ä¾›åº”类型
    /// </summary>
    [SugarColumn(ColumnName = "SUPPLY_TYPE")]
    public string? SupplyType { get; set; }
    /// <summary>
    ///     ä¾›åº”组织
    /// </summary>
    [SugarColumn(ColumnName = "SUPPLY_ORG")]
    public string? SupplyOrg { get; set; }
    /// <summary>
    ///     ä¾›åº”商
    /// </summary>
    [SugarColumn(ColumnName = "SUPPLIER")]
    public string? Supplier { get; set; }
    /// <summary>
    ///     å‡ºè´§æ–¹å¼
    /// </summary>
    [SugarColumn(ColumnName = "DETAIL_SHIPPING_METHOD")]
    public string? DetailShippingMethod { get; set; }
    /// <summary>
    ///     è´§ä¸»ç»„织
    /// </summary>
    [SugarColumn(ColumnName = "OWNER_ORG")]
    public string? OwnerOrg { get; set; }
    /// <summary>
    ///     éœ€æ±‚分类
    /// </summary>
    [SugarColumn(ColumnName = "DETAIL_DEMAND_CATEGORY")]
    public string? DetailDemandCategory { get; set; }
    /// <summary>
    ///     åº“存规划
    /// </summary>
    [SugarColumn(ColumnName = "INVENTORY_PLANNING")]
    public string? InventoryPlanning { get; set; }
    /// <summary>
    ///     è¡Œå¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "LINE_REMARK")]
    public string? LineRemark { get; set; }
    /// <summary>
    ///     æ¥æºå•据类别
    /// </summary>
    [SugarColumn(ColumnName = "SOURCE_DOC_CATEGORY")]
    public string? SourceDocCategory { get; set; }
    /// <summary>
    ///     æ¥æºå•号
    /// </summary>
    [SugarColumn(ColumnName = "SOURCE_DOC_NO")]
    public string? SourceDocNo { get; set; }
    /// <summary>
    ///     æ¥æºå•行号
    /// </summary>
    [SugarColumn(ColumnName = "SOURCE_LINE_NO")]
    public string? SourceLineNo { get; set; }
    /// <summary>
    ///     ERP行ID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_LINE_ID")]
    public string? ErpLineId { get; set; }
    /// <summary>
    ///     ERP头ID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_HEAD_ID")]
    public string? ErpHeadId { get; set; }
}
StandardPda/MES.Service/service/BasicData/ShipmentPlanDeliveryManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,302 @@
using System.Globalization;
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service;
/// <summary>
///     å‡ºè´§è®¡åˆ’出货服务管理类
/// </summary>
public class ShipmentPlanDeliveryManager : Repository<ShipmentPlanDelivery>
{
    private readonly ShipmentPlanDeliveryDetailManager _detailManager = new();
    /// <summary>
    ///     ä¿å­˜å‡ºè´§è®¡åˆ’出货数据
    /// </summary>
    public bool Save(ErpShipmentPlanDelivery data)
    {
        var headerDto = data.OrderDto;
        var header = ConvertDtoToHeader(data.OrderDto);
        var details = ConvertDtoToDetails(data.Items);
        return UseTransaction(db =>
        {
            switch (headerDto.Type)
            {
                case "3":
                    return UpdateData(db, header, details) ? 1 : 0;
                case "2":
                case "4":
                    return SaveOrUpdateData(db, header, details) ? 1 : 0;
                default:
                    throw new NotImplementedException($"不支持的接口类型: {headerDto.Type}");
            }
        }) > 0;
    }
    /// <summary>
    ///     æ›´æ–°æ•°æ®
    /// </summary>
    private bool UpdateData(SqlSugarScope db, ShipmentPlanDelivery header, List<ShipmentPlanDeliveryDetail> details)
    {
        // æ£€æŸ¥æ˜¯å¦å·²ç”Ÿæˆå‡ºåº“单
        var outCount = Db.Ado.SqlQuery<decimal>(
            "SELECT COUNT(*) FROM MES_INV_ITEM_OUTS A WHERE A.WORK_NO = :billNo AND A.BILL_TYPE_ID = 200 AND A.TRANSACTION_NO = 250",
            new { billNo = header.BillNo }).First();
        if (outCount > 0)
        {
            throw new NotImplementedException("该出货单已生成出库单,不能修改!");
        }
        // åˆ é™¤åŽŸæœ‰æ•°æ®
        var deleteHeader = base.DeleteById(header.Id);
        var detailIds = details.Select(d => d.Id).ToArray();
        var deleteDetails = db.Deleteable<ShipmentPlanDeliveryDetail>().In(detailIds).ExecuteCommand() > 0;
        if (deleteHeader && deleteDetails)
        {
            return true;
        }
        throw new NotImplementedException("更新失败");
    }
    /// <summary>
    ///     æ’入或更新数据
    /// </summary>
    private bool SaveOrUpdateData(SqlSugarScope db, ShipmentPlanDelivery header, List<ShipmentPlanDeliveryDetail> details)
    {
        // æ£€æŸ¥æ˜¯å¦å·²ç”Ÿæˆå‡ºåº“单
        var outCount = Db.Ado.SqlQuery<decimal>(
            "SELECT COUNT(*) FROM MES_INV_ITEM_OUTS A WHERE A.WORK_NO = :billNo AND A.BILL_TYPE_ID = 200 AND A.TRANSACTION_NO = 250",
            new { billNo = header.BillNo }).First();
        if (outCount > 0)
        {
            throw new NotImplementedException("该出货单已生成出库单,不能修改!");
        }
        // å¦‚果存在则删除旧数据
        if (header.Id != null)
        {
            base.DeleteById(header.Id);
        }
        if (details.Count > 0)
        {
            db.Deleteable<ShipmentPlanDeliveryDetail>()
                .Where(s => s.ErpHeadId == header.ErpHeadId)
                .ExecuteCommand();
        }
        // æ’入新数据并获取主表ID
        var headerId = base.InsertReturnIdentity(header);
        // æ’入明细数据,关联主表ID
        if (headerId > 0)
        {
            foreach (var detail in details)
            {
                detail.HeadId = headerId;
                _detailManager.Insert(detail);
            }
        }
        return headerId > 0;
    }
    /// <summary>
    ///     æ‰¹é‡ä¿å­˜
    /// </summary>
    public bool SaveList(List<ErpShipmentPlanDelivery> dataList)
    {
        var result = dataList.Select(Save).ToList();
        return result.All(b => b);
    }
    /// <summary>
    ///     è½¬æ¢DTO为主表实体
    /// </summary>
    private ShipmentPlanDelivery ConvertDtoToHeader(ErpShipmentPlanDeliveryDto dto)
    {
        DateTime? ParseDateTime(string? dateStr)
        {
            if (string.IsNullOrEmpty(dateStr)) return null;
            if (DateTime.TryParseExact(dateStr, "yyyy-MM-dd HH:mm:ss",
                    CultureInfo.InvariantCulture,
                    DateTimeStyles.None,
                    out var parsedDate))
            {
                return parsedDate;
            }
            return null;
        }
        var entity = new ShipmentPlanDelivery
        {
            BillType = dto.BillType,
            BillNo = dto.BillNo,
            Customer = dto.Customer,
            FDate = ParseDateTime(dto.FDate),
            InterfaceStatus = dto.InterfaceStatus,
            Salesperson = dto.Salesperson,
            Department = dto.Department,
            SourceDocCategory = dto.SourceDocCategory,
            SourceDocument = dto.SourceDocument,
            Status = dto.Status,
            CreatedBy = dto.CreatedBy,
            CreatedDate = ParseDateTime(dto.CreatedDate),
            ApprovedBy = dto.ApprovedBy,
            ApprovedDate = ParseDateTime(dto.ApprovedDate),
            HeaderNote = dto.HeaderNote,
            Remark = dto.Remark,
            AsnNo = dto.AsnNo,
            Project = dto.Project,
            CustomerPo = dto.CustomerPo,
            ShippingPolicy = dto.ShippingPolicy,
            ShippingMethod = dto.ShippingMethod,
            DemandCategory = dto.DemandCategory,
            ShippingPort = dto.ShippingPort,
            DestinationPort = dto.DestinationPort,
            ErpHeadId = dto.ErpHeadId
        };
        // æ ¹æ®ErpHeadId查找是否已存在
        var existing = base.GetSingle(it => it.ErpHeadId == dto.ErpHeadId);
        if (existing != null)
        {
            entity.Id = existing.Id;
        }
        // éªŒè¯å¿…填项
        if (string.IsNullOrEmpty(entity.ErpHeadId))
        {
            throw new NotImplementedException("表头ErpHeadId不能为空");
        }
        return entity;
    }
    /// <summary>
    ///     è½¬æ¢DTO为明细表实体列表
    /// </summary>
    private List<ShipmentPlanDeliveryDetail> ConvertDtoToDetails(List<ErpShipmentPlanDeliveryDetailDto> dtoList)
    {
        var detailList = new List<ShipmentPlanDeliveryDetail>();
        foreach (var dto in dtoList)
        {
            var detail = new ShipmentPlanDeliveryDetail
            {
                LineNo = dto.LineNo,
                Project = dto.Project,
                CustomerItemNo = dto.CustomerItemNo,
                CustomerItemName = dto.CustomerItemName,
                MaterialId = dto.MaterialId,
                MaterialName = dto.MaterialName,
                Specification = dto.Specification,
                StorageLocation = dto.StorageLocation,
                Unit = dto.Unit,
                Quantity = string.IsNullOrEmpty(dto.Quantity) ? null : Convert.ToDecimal(dto.Quantity),
                FreeItemType = dto.FreeItemType,
                DeliveryDate = dto.DeliveryDate,
                BodyNote = dto.BodyNote,
                AsnLineNo = dto.AsnLineNo,
                AvailableStock = dto.AvailableStock,
                InventoryQueryTime = dto.InventoryQueryTime,
                LineStatus = dto.LineStatus,
                ReceiverLocation = dto.ReceiverLocation,
                ReceiverAddress = dto.ReceiverAddress,
                ReceiverAddressFull = dto.ReceiverAddressFull,
                ReceiverContact = dto.ReceiverContact,
                Returnable = dto.Returnable,
                AvailableDate = dto.AvailableDate,
                CommitmentDate = dto.CommitmentDate,
                PlanShipDate = dto.PlanShipDate,
                CustomerConfirmDate = dto.CustomerConfirmDate,
                PlanOrg = dto.PlanOrg,
                VendorDirectShip = dto.VendorDirectShip,
                SupplySource = dto.SupplySource,
                SupplyType = dto.SupplyType,
                SupplyOrg = dto.SupplyOrg,
                Supplier = dto.Supplier,
                DetailShippingMethod = dto.DetailShippingMethod,
                OwnerOrg = dto.OwnerOrg,
                DetailDemandCategory = dto.DetailDemandCategory,
                InventoryPlanning = dto.InventoryPlanning,
                LineRemark = dto.LineRemark,
                SourceDocCategory = dto.SourceDocCategory,
                SourceDocNo = dto.SourceDocNo,
                SourceLineNo = dto.SourceLineNo,
                ErpLineId = dto.ErpLineId,
                ErpHeadId = dto.ErpHeadId
            };
            // éªŒè¯å¿…填项
            if (string.IsNullOrEmpty(detail.ErpLineId))
            {
                throw new NotImplementedException("明细行ErpLineId不能为空");
            }
            if (string.IsNullOrEmpty(detail.ErpHeadId))
            {
                throw new NotImplementedException("明细行ErpHeadId不能为空");
            }
            // æ ¹æ®ErpLineId查找是否已存在
            var existing = _detailManager.GetSingle(it => it.ErpLineId == detail.ErpLineId);
            if (existing != null)
            {
                detail.Id = existing.Id;
            }
            // ç‰©æ–™ID映射转换(如果需要)
            if (!string.IsNullOrEmpty(dto.MaterialId) && !string.IsNullOrEmpty(dto.SupplyOrg))
            {
                var materialLink = Db.Queryable<MesLinkU9>()
                    .Where(x => x.U9Id == dto.MaterialId
                                && x.OrgId == dto.SupplyOrg
                                && x.TableType == "MES_ITEMS")
                    .First();
                if (materialLink != null)
                {
                    detail.MaterialId = materialLink.MesId;
                }
            }
            // é¡¹ç›®æ˜ å°„转换(如果需要)
            if (!string.IsNullOrEmpty(dto.Project) && !string.IsNullOrEmpty(dto.SupplyOrg))
            {
                var projectLink = Db.Queryable<MesLinkU9>()
                    .Where(x => x.U9Id == dto.Project
                                && x.OrgId == dto.SupplyOrg
                                && x.TableType == "MES_PROJECT")
                    .First();
                if (projectLink != null)
                {
                    detail.Project = projectLink.MesId;
                }
            }
            detailList.Add(detail);
        }
        return detailList;
    }
}
/// <summary>
///     å‡ºè´§è®¡åˆ’出货明细管理类
/// </summary>
public class ShipmentPlanDeliveryDetailManager : Repository<ShipmentPlanDeliveryDetail>
{
    // ç»§æ‰¿Repository基础增删改查方法
}
StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs
@@ -26,9 +26,9 @@
        // ä¼˜åŒ–点1: ä½¿ç”¨åŽŸç”ŸSQL ROW_NUMBER()在数据库端完成去重和排序
        var rackingTaskSql = @"
            SELECT ITEM_BARCODE AS ItemBarcode, PALLETCODE AS PalletCode, CODE AS Code
            SELECT ITEM_BARCODE AS ItemBarcode, PALLETCODE AS PalletCode, CODE AS Code, TASKTYPE AS TaskType
            FROM (
                SELECT ITEM_BARCODE, PALLETCODE, CODE,
                SELECT ITEM_BARCODE, PALLETCODE, CODE, TASKTYPE,
                       ROW_NUMBER() OVER (PARTITION BY ITEM_BARCODE ORDER BY ID DESC) AS RN
                FROM XB_RACKING_TASK_SYXT_LOG
                WHERE ITEM_BARCODE IS NOT NULL AND (CODE IS NULL OR CODE != '500')
@@ -230,10 +230,16 @@
            
            rackingTaskDict.TryGetValue(barcodeToMatch, out var rackingTask);
            string stockStatus = "进入立库的路上";
            if (rackingTask?.Code != null)
            string stockStatus;
            if (rackingTask?.TaskType == "立库出库请求")
            {
                stockStatus = rackingTask.Code == "200" ? "已在立库中" : "进入立库的路上";
                // å‡ºåº“请求:Code=200表示已出库,Code=null表示出库路上
                stockStatus = rackingTask.Code == "200" ? "已出立库" : "出立库路上";
            }
            else
            {
                // å›žåº“请求(默认):Code=200表示已在立库中,Code=null表示进入立库的路上
                stockStatus = rackingTask?.Code == "200" ? "已在立库中" : "进入立库的路上";
            }
            return new
@@ -443,6 +449,7 @@
        public string ItemBarcode { get; set; }
        public string PalletCode { get; set; }
        public string Code { get; set; }
        public string TaskType { get; set; }
    }
    /// <summary>
StandardPda/MESApplication/Controllers/BasicData/ShipmentPlanDeliveryController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,262 @@
using System.Dynamic;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using MES.Service.service;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace MESApplication.Controllers;
/// <summary>
///     æ¥æºå‡ºè´§è®¡åˆ’的标准出货接口
/// </summary>
[ApiController]
[Route("api/[controller]")]
public class ShipmentPlanDeliveryController : ControllerBase
{
    private readonly MessageCenterManager _manager = new();
    private readonly ShipmentPlanDeliveryManager m = new();
    private readonly string METHOD = "POST";
    private readonly string TableName = "SHIPMENT_PLAN_DELIVERY";
    private readonly string URL = "http://localhost:10054/api/ShipmentPlanDelivery/";
    /// <summary>
    ///     ä¿å­˜å‡ºè´§è®¡åˆ’出货数据(标准接口)
    /// </summary>
    /// <param name="data">出货计划出货数据</param>
    /// <returns></returns>
    [HttpPost("Save")]
    public ResponseResult Save(ErpShipmentPlanDelivery data)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "Save";
        entity.Method = METHOD;
        entity.Route = data.OrderDto.BillNo;
        entity.Data = JsonConvert.SerializeObject(data);
        entity.Status = (short)1;
        entity.CreateBy = "SYSTEM";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.Save(data);
            resultInfos.tbBillList = save;
            entity.Result = (short)(save ? 1 : 0);
            entity.DealWith = (short)1;
            _manager.save(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            entity.Result = (short)0;
            entity.DealWith = (short)0;
            entity.ResultData = ex.Message;
            _manager.save(entity);
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ‰¹é‡ä¿å­˜å‡ºè´§è®¡åˆ’出货数据
    /// </summary>
    /// <param name="dataList">出货计划出货数据列表</param>
    /// <returns></returns>
    [HttpPost("SaveList")]
    public ResponseResult SaveList(List<ErpShipmentPlanDelivery> dataList)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "SaveList";
        entity.Method = METHOD;
        entity.Data = JsonConvert.SerializeObject(dataList);
        entity.Status = (short)1;
        entity.CreateBy = "SYSTEM";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.SaveList(dataList);
            resultInfos.tbBillList = save;
            entity.Result = (short)(save ? 1 : 0);
            entity.DealWith = (short)1;
            _manager.save(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            entity.Result = (short)0;
            entity.DealWith = (short)0;
            entity.ResultData = ex.Message;
            _manager.save(entity);
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰å‡ºè´§è®¡åˆ’å‡ºè´§æ•°æ®
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetList();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®èŽ·å–å‡ºè´§è®¡åˆ’å‡ºè´§æ•°æ®
    /// </summary>
    /// <param name="id">主键ID</param>
    /// <returns></returns>
    [HttpPost("GetById")]
    public ResponseResult GetById(decimal id)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetById(id);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®åˆ é™¤å‡ºè´§è®¡åˆ’出货数据
    /// </summary>
    /// <param name="ids">主键ID数组</param>
    /// <returns></returns>
    [HttpPost("DeleteByIds")]
    public ResponseResult DeleteByIds([FromBody] object[] ids)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.DeleteByIds(ids);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ å‡ºè´§è®¡åˆ’å‡ºè´§æ•°æ®
    /// </summary>
    /// <param name="data">出货计划出货数据</param>
    /// <returns></returns>
    [HttpPost("Insert")]
    public ResponseResult Add([FromBody] ShipmentPlanDelivery data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Insert(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ å‡ºè´§è®¡åˆ’å‡ºè´§æ•°æ®å¹¶è¿”å›žè‡ªå¢žID
    /// </summary>
    /// <param name="data">出货计划出货数据</param>
    /// <returns></returns>
    [HttpPost("InsertReturnIdentity")]
    public ResponseResult InsertReturnIdentity([FromBody] ShipmentPlanDelivery data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.InsertReturnIdentity(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ä¿®æ”¹å‡ºè´§è®¡åˆ’出货数据
    /// </summary>
    /// <param name="data">出货计划出货数据</param>
    /// <returns></returns>
    [HttpPost("Update")]
    public ResponseResult Update([FromBody] ShipmentPlanDelivery data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Update(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}