hao
2 天以前 575b5421f861e2ea113341b7c7c53e5e518538c8
销售
已修改10个文件
1611 ■■■■ 文件已修改
StandardInterface/MES.Service/Modes/SalesOrder.cs 192 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/SalesOrderDetail.cs 312 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/SalesReturnNotice.cs 263 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/SalesReturnNoticeDetail.cs 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/BasicData/Sales/SalesOrderManager.cs 242 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/BasicData/Sales/SalesReturnNoticeDetailManager.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/BasicData/Sales/SalesReturnNoticeManager.cs 253 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MESApplication/Controllers/BasicData/SalesOrderController.cs 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MESApplication/Controllers/BasicData/SalesReturnNoticeController.cs 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MESApplication/Controllers/BasicData/SalesReturnNoticeDetailController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/SalesOrder.cs
@@ -11,103 +11,101 @@
    /// <summary>
    ///     SEQ_sales序列
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_sales",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_XSDD", IsPrimaryKey = true)]
    public decimal? Id { get; set; }
    /// <summary>
    ///     订单单号
    /// </summary>
    [SugarColumn(ColumnName = "ORDER_ID")]
    public string OrderId { get; set; }
    /// <summary>
    ///     订单单别
    /// </summary>
    [SugarColumn(ColumnName = "ORDER_TYPE")]
    public string OrderType { get; set; }
    /// <summary>
    ///     受订日期
    /// </summary>
    [SugarColumn(ColumnName = "ORDER_DATE")]
    public DateTime? OrderDate { get; set; }
    /// <summary>
    ///     单据版本
    /// </summary>
    [SugarColumn(ColumnName = "DOCUMENT_VERSION")]
    public long? DocumentVersion { get; set; }
    /// <summary>
    ///     单据日期
    /// </summary>
    [SugarColumn(ColumnName = "DOCUMENT_DATE")]
    public DateTime? DocumentDate { get; set; }
    /// <summary>
    ///     工厂编号
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY_ID")]
    public string FactoryId { get; set; }
    /// <summary>
    ///     工厂简称
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY_NAME")]
    public string FactoryName { get; set; }
    /// <summary>
    ///     客户编号
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_ID")]
    public string CustomerId { get; set; }
    /// <summary>
    ///     客户简称
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_NAME")]
    public string CustomerName { get; set; }
    /// <summary>
    ///     客户单号
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_ORDER_ID")]
    public string CustomerOrderId { get; set; }
    /// <summary>
    ///     部门编号
    /// </summary>
    [SugarColumn(ColumnName = "DEPARTMENT_ID")]
    public string DepartmentId { get; set; }
    /// <summary>
    ///     总数量
    /// </summary>
    [SugarColumn(ColumnName = "TOTAL_QUANTITY")]
    public decimal? TotalQuantity { get; set; }
    /// <summary>
    ///     备注
    /// </summary>
    [SugarColumn(ColumnName = "REMARKS")]
    public string Remarks { get; set; }
    /// <summary>
    ///     erp审核日期
    /// </summary>
    [SugarColumn(ColumnName = "APPROVAL_DATE")]
    public DateTime? ApprovalDate { get; set; }
    /// <summary>
    ///     erp审核者
    /// </summary>
    [SugarColumn(ColumnName = "APPROVER")]
    public string Approver { get; set; }
    /// <summary>
    ///     ERPID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_ID")]
    public string ErpId { get; set; }
    public decimal? ErpID { get; set; } // ERPID
    [SugarColumn(ColumnName = "BILL_NO")]
    public string? BillNo { get; set; } // 单据编号
    [SugarColumn(ColumnName = "BILL_TYPE_ID")]
    public string? BillTypeId { get; set; } // 单据类型
    [SugarColumn(ColumnName = "DOCUMENT_STATUS")]
    public string? DocumentStatus { get; set; } // 单据状态
    [SugarColumn(ColumnName = "F_DATE")]
    public DateTime? FDate { get; set; } // 日期
    [SugarColumn(ColumnName = "BUSINESS_TYPE")]
    public string? BusinessType { get; set; } // 业务类型
    [SugarColumn(ColumnName = "HEAD_DELIVERY_WAY")]
    public string? HeadDeliveryWay { get; set; } // 交货方式
    [SugarColumn(ColumnName = "HEAD_LOC_ID")]
    public string? HeadLocId { get; set; } // 交货地点
    [SugarColumn(ColumnName = "CUST_ID")]
    public string? CustId { get; set; } // 客户
    [SugarColumn(ColumnName = "CLOSE_STATUS")]
    public string? CloseStatus { get; set; } // 关闭状态
    [SugarColumn(ColumnName = "SALE_DEPT_ID")]
    public string? SaleDeptId { get; set; } // 销售部门
    [SugarColumn(ColumnName = "SALER_ID")]
    public string? SalerId { get; set; } // 销售员
    [SugarColumn(ColumnName = "CHANGE_REASON")]
    public string? ChangeReason { get; set; } // 变更原因
    [SugarColumn(ColumnName = "SETTLE_ID")]
    public string? SettleId { get; set; } // 结算方
    [SugarColumn(ColumnName = "APPROVER_ID")]
    public string? ApproverId { get; set; } // 审核人
    [SugarColumn(ColumnName = "LINK_MAN")]
    public string? LinkMan { get; set; } // 收货人姓名
    [SugarColumn(ColumnName = "CHARGE_ID")]
    public string? ChargeId { get; set; } // 付款方
    [SugarColumn(ColumnName = "LINK_PHONE")]
    public string? LinkPhone { get; set; } // 联系电话
    [SugarColumn(ColumnName = "CREATOR_ID")]
    public string? CreatorId { get; set; } // 创建人
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; } // 创建日期
    [SugarColumn(ColumnName = "MODIFIER_ID")]
    public string? ModifierId { get; set; } // 最后修改人
    [SugarColumn(ColumnName = "MODIFY_DATE")]
    public DateTime? ModifyDate { get; set; } // 最后修改日期
    [SugarColumn(ColumnName = "APPROVE_DATE")]
    public DateTime? ApproveDate { get; set; } // 审核日期
    [SugarColumn(ColumnName = "CLOSER_ID")]
    public string? CloserId { get; set; } // 关闭人
    [SugarColumn(ColumnName = "CLOSE_DATE")]
    public DateTime? CloseDate { get; set; } // 关闭日期
    [SugarColumn(ColumnName = "CHANGE_DATE")]
    public DateTime? ChangeDate { get; set; } // 变更日期
    [SugarColumn(ColumnName = "CANCEL_STATUS")]
    public string? CancelStatus { get; set; } // 作废状态
    [SugarColumn(ColumnName = "CANCELLER_ID")]
    public string? CancellerId { get; set; } // 作废人
    [SugarColumn(ColumnName = "VERSION_NO")]
    public double? VersionNo { get; set; } // 版本号
    [SugarColumn(ColumnName = "CHANGER_ID")]
    public string? ChangerId { get; set; } // 变更人
    [SugarColumn(ColumnName = "ENTRY_NOTE")]
    public string? EntryNote { get; set; } // 备注
}
StandardInterface/MES.Service/Modes/SalesOrderDetail.cs
@@ -11,103 +11,237 @@
    /// <summary>
    ///     SEQ_sales序列
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_sales",
        IsPrimaryKey = true)]
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_XSDD_MX", IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     订单单号
    /// </summary>
    [SugarColumn(ColumnName = "ORDER_ID")]
    public string OrderId { get; set; }
    /// <summary>
    ///     序号
    /// </summary>
    [SugarColumn(ColumnName = "LINE_NUMBER")]
    public long? LineNumber { get; set; }
    /// <summary>
    ///     产品编码
    /// </summary>
    [SugarColumn(ColumnName = "PRODUCT_CODE")]
    public string ProductCode { get; set; }
    /// <summary>
    ///     产品名称
    /// </summary>
    [SugarColumn(ColumnName = "PRODUCT_NAME")]
    public string ProductName { get; set; }
    /// <summary>
    ///     产品规格
    /// </summary>
    [SugarColumn(ColumnName = "PRODUCT_SPEC")]
    public string ProductSpec { get; set; }
    /// <summary>
    ///     预交货日期
    /// </summary>
    [SugarColumn(ColumnName = "SCHEDULED_DELIVERY_DATE")]
    public DateTime? ScheduledDeliveryDate { get; set; }
    /// <summary>
    ///     订单数量
    /// </summary>
    [SugarColumn(ColumnName = "ORDER_QUANTITY")]
    public decimal? OrderQuantity { get; set; }
    /// <summary>
    ///     单位
    /// </summary>
    [SugarColumn(ColumnName = "UNIT")]
    public string Unit { get; set; }
    /// <summary>
    ///     单价
    /// </summary>
    [SugarColumn(ColumnName = "UNIT_PRICE")]
    public decimal? UnitPrice { get; set; }
    /// <summary>
    ///     金额
    /// </summary>
    [SugarColumn(ColumnName = "AMOUNT")]
    public decimal? Amount { get; set; }
    /// <summary>
    ///     客户产品编码
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_PRODUCT_CODE")]
    public string CustomerProductCode { get; set; }
    /// <summary>
    ///     已交货数
    /// </summary>
    [SugarColumn(ColumnName = "DELIVERED_QUANTITY")]
    public decimal? DeliveredQuantity { get; set; }
    /// <summary>
    ///     结束
    /// </summary>
    [SugarColumn(ColumnName = "IS_CLOSED")]
    public string IsClosed { get; set; }
    /// <summary>
    ///     备注
    /// </summary>
    [SugarColumn(ColumnName = "REMARKS")]
    public string Remarks { get; set; }
    /// <summary>
    ///     ERPID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_ID")]
    public string ErpId { get; set; }
    public decimal? ErpID { get; set; }
    /// <summary>
    ///     ERP头ID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_HEAD_ID")]
    public string ErpHeadId { get; set; }
    [SugarColumn(ColumnName = "E_HID")]
    public decimal? EHID { get; set; }
    /// <summary>
    ///     物料编码
    /// </summary>
    [SugarColumn(ColumnName = "MATERIAL_ID")]
    public string? MaterialId { get; set; }
    /// <summary>
    ///     销售单位
    /// </summary>
    [SugarColumn(ColumnName = "UNIT_ID")]
    public string? UnitId { get; set; }
    /// <summary>
    ///     销售数量
    /// </summary>
    [SugarColumn(ColumnName = "QTY")]
    public decimal? Qty { get; set; }
    /// <summary>
    ///     计价单位
    /// </summary>
    [SugarColumn(ColumnName = "PRICE_UNIT_ID")]
    public string? PriceUnitId { get; set; }
    /// <summary>
    ///     计价数量
    /// </summary>
    [SugarColumn(ColumnName = "PRICE_UNIT_QTY")]
    public decimal? PriceUnitQty { get; set; }
    /// <summary>
    ///     要货日期
    /// </summary>
    [SugarColumn(ColumnName = "DELIVERY_DATE")]
    public DateTime? DeliveryDate { get; set; }
    /// <summary>
    ///     是否赠品
    /// </summary>
    [SugarColumn(ColumnName = "IS_FREE")]
    public decimal? IsFree { get; set; }
    /// <summary>
    ///     货主类型
    /// </summary>
    [SugarColumn(ColumnName = "OWNER_TYPE_ID")]
    public string? OwnerTypeId { get; set; }
    /// <summary>
    ///     货主
    /// </summary>
    [SugarColumn(ColumnName = "OWNER_ID")]
    public string? OwnerId { get; set; }
    /// <summary>
    ///     备注
    /// </summary>
    [SugarColumn(ColumnName = "ENTRY_NOTE")]
    public string? EntryNote { get; set; }
    /// <summary>
    ///     计划跟踪号
    /// </summary>
    [SugarColumn(ColumnName = "MTO_NO")]
    public string? MtoNo { get; set; }
    /// <summary>
    ///     批号
    /// </summary>
    [SugarColumn(ColumnName = "LOT")]
    public string? Lot { get; set; }
    /// <summary>
    ///     发货上限
    /// </summary>
    [SugarColumn(ColumnName = "DELIVERY_MAX_QTY")]
    public decimal? DeliveryMaxQty { get; set; }
    /// <summary>
    ///     发货下限
    /// </summary>
    [SugarColumn(ColumnName = "DELIVERY_MIN_QTY")]
    public decimal? DeliveryMinQty { get; set; }
    /// <summary>
    ///     超发控制单位
    /// </summary>
    [SugarColumn(ColumnName = "OUT_LMT_UNIT_ID")]
    public string? OutLmtUnitId { get; set; }
    /// <summary>
    ///     业务关闭
    /// </summary>
    [SugarColumn(ColumnName = "MRP_CLOSE_STATUS")]
    public string? MrpCloseStatus { get; set; }
    /// <summary>
    ///     业务终止
    /// </summary>
    [SugarColumn(ColumnName = "MRP_TERMINATE_STATUS")]
    public string? MrpTerminateStatus { get; set; }
    /// <summary>
    ///     终止日期
    /// </summary>
    [SugarColumn(ColumnName = "TERMINATE_DATE")]
    public DateTime? TerminateDate { get; set; }
    /// <summary>
    ///     终止人
    /// </summary>
    [SugarColumn(ColumnName = "TERMINATER_ID")]
    public string? TerminaterId { get; set; }
    /// <summary>
    ///     源单类型
    /// </summary>
    [SugarColumn(ColumnName = "SRC_TYPE")]
    public string? SrcType { get; set; }
    /// <summary>
    ///     源单单号
    /// </summary>
    [SugarColumn(ColumnName = "SRC_BILL_NO")]
    public string? SrcBillNo { get; set; }
    /// <summary>
    ///     累计发货通知数量
    /// </summary>
    [SugarColumn(ColumnName = "DELI_QTY")]
    public decimal? DeliQty { get; set; }
    /// <summary>
    ///     累计出库数量
    /// </summary>
    [SugarColumn(ColumnName = "STOCK_OUT_QTY")]
    public decimal? StockOutQty { get; set; }
    /// <summary>
    ///     累计退货通知数量(销售基本)
    /// </summary>
    [SugarColumn(ColumnName = "BASE_RET_NOTICE_QTY")]
    public decimal? BaseRetNoticeQty { get; set; }
    /// <summary>
    ///     累计退货数量(销售基本)
    /// </summary>
    [SugarColumn(ColumnName = "BASE_RETURN_QTY")]
    public decimal? BaseReturnQty { get; set; }
    /// <summary>
    ///     剩余未出数量(销售基本)
    /// </summary>
    [SugarColumn(ColumnName = "BASE_REMAIN_OUT_QTY")]
    public decimal? BaseRemainOutQty { get; set; }
    /// <summary>
    ///     累计应收数量(销售基本)
    /// </summary>
    [SugarColumn(ColumnName = "BASEARQTY")]
    public decimal? BASEARQTY { get; set; }
    /// <summary>
    ///     销售订单号
    /// </summary>
    [SugarColumn(ColumnName = "SALES_ORDER")]
    public string? SalesOrder { get; set; }
    /// <summary>
    ///    客户订单号
    /// </summary>
    [SugarColumn(ColumnName = "CUST_ORDER")]
    public string? CustOrder { get; set; }
    /// <summary>
    ///    销售合同编号
    /// </summary>
    [SugarColumn(ColumnName = "SALES_CONTRACT_NO")]
    public string? SalesContractNo { get; set; }
    /// <summary>
    ///    成品料号
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_NO")]
    public string? ItemNo { get; set; }
    /// <summary>
    ///    成品名称
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_NAME")]
    public string? ItemName { get; set; }
    /// <summary>
    ///     客户
    /// </summary>
    [SugarColumn(ColumnName = "CUST_ID")]
    public string? CustId { get; set; }
    /// <summary>
    ///    采购到货日期
    /// </summary>
    [SugarColumn(ColumnName = "ARRIVAL_DATE")]
    public DateTime? ArrivalDate { get; set; }
    /// <summary>
    ///     客户物料规格型号
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_MODEL")]
    public string? ItemModel { get; set; }
    /// <summary>
    ///     订单来源
    /// </summary>
    [SugarColumn(ColumnName = "DDLY")]
    public string? Ddly { get; set; }
}
StandardInterface/MES.Service/Modes/SalesReturnNotice.cs
@@ -1,83 +1,184 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     销售退货通知单表
/// </summary>
[SugarTable("SALES_RETURN_NOTICE")]
public class SalesReturnNotice
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace MES.Service.Modes
{
    /// <summary>
    ///     SEQ_sales
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_sales",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     制单人
    /// </summary>
    [SugarColumn(ColumnName = "CREATED_BY")]
    public string CreatedBy { get; set; }
    /// <summary>
    ///     单据编号
    /// </summary>
    [SugarColumn(ColumnName = "DOCUMENT_ID")]
    public string DocumentId { get; set; }
    /// <summary>
    ///     审核人名称
    /// </summary>
    [SugarColumn(ColumnName = "APPROVED_BY")]
    public string ApprovedBy { get; set; }
    /// <summary>
    ///     制单/审核日期
    /// </summary>
    [SugarColumn(ColumnName = "CREATED_OR_APPROVED_DATE")]
    public DateTime? CreatedOrApprovedDate { get; set; }
    /// <summary>
    ///     部门代码
    /// </summary>
    [SugarColumn(ColumnName = "DEPARTMENT_CODE")]
    public string DepartmentCode { get; set; }
    /// <summary>
    ///     部门名称
    /// </summary>
    [SugarColumn(ColumnName = "DEPARTMENT_NAME")]
    public string DepartmentName { get; set; }
    /// <summary>
    ///     购货单位代码
    /// </summary>
    [SugarColumn(ColumnName = "PURCHASER_CODE")]
    public string PurchaserCode { get; set; }
    /// <summary>
    ///     购货单位名称
    /// </summary>
    [SugarColumn(ColumnName = "PURCHASER_NAME")]
    public string PurchaserName { get; set; }
    /// <summary>
    ///     业务员代码
    /// </summary>
    [SugarColumn(ColumnName = "SALESPERSON_CODE")]
    public string SalespersonCode { get; set; }
    /// <summary>
    ///     业务员名称
    /// </summary>
    [SugarColumn(ColumnName = "SALESPERSON_NAME")]
    public string SalespersonName { get; set; }
    /// <summary>
    ///     ERPID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_ID")]
    public string ErpId { get; set; }
}
    /// 销售退货通知单表
    ///</summary>
    [SugarTable("SALES_RETURN_NOTICE")]
    public class SalesReturnNotice
    {
        /// <summary>
        ///
        ///</summary>
        [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_sales", 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 = "F_DATE")]
        public DateTime? FDate { get; set; }
        /// <summary>
        /// 结算币别
        ///</summary>
        [SugarColumn(ColumnName = "CURRENCY")]
        public string Currency { get; set; }
        /// <summary>
        /// 销售部门
        ///</summary>
        [SugarColumn(ColumnName = "SALES_DEPT")]
        public string SalesDept { get; set; }
        /// <summary>
        /// 退货客户
        ///</summary>
        [SugarColumn(ColumnName = "RETURN_CUSTOMER")]
        public string ReturnCustomer { get; set; }
        /// <summary>
        /// 退货原因
        ///</summary>
        [SugarColumn(ColumnName = "RETURN_REASON")]
        public string ReturnReason { get; set; }
        /// <summary>
        /// 交货地点
        ///</summary>
        [SugarColumn(ColumnName = "DELIVERY_LOCATION")]
        public string DeliveryLocation { get; set; }
        /// <summary>
        /// 库存部门
        ///</summary>
        [SugarColumn(ColumnName = "INVENTORY_DEPT")]
        public string InventoryDept { get; set; }
        /// <summary>
        /// 库存组
        ///</summary>
        [SugarColumn(ColumnName = "INVENTORY_GROUP")]
        public string InventoryGroup { get; set; }
        /// <summary>
        /// 仓管员
        ///</summary>
        [SugarColumn(ColumnName = "WAREHOUSE_MANAGER")]
        public string WarehouseManager { get; set; }
        /// <summary>
        /// 销售组
        ///</summary>
        [SugarColumn(ColumnName = "SALES_GROUP")]
        public string SalesGroup { get; set; }
        /// <summary>
        /// 销售员
        ///</summary>
        [SugarColumn(ColumnName = "SALES_PERSON")]
        public string SalesPerson { get; set; }
        /// <summary>
        /// 收货方
        ///</summary>
        [SugarColumn(ColumnName = "RECEIVER")]
        public string Receiver { get; set; }
        /// <summary>
        /// 收货方联系人
        ///</summary>
        [SugarColumn(ColumnName = "RECEIVER_CONTACT")]
        public string ReceiverContact { get; set; }
        /// <summary>
        /// 收货方地址
        ///</summary>
        [SugarColumn(ColumnName = "RECEIVER_ADDRESS")]
        public string ReceiverAddress { get; set; }
        /// <summary>
        /// 收货方姓名
        ///</summary>
        [SugarColumn(ColumnName = "RECEIVER_NAME")]
        public string ReceiverName { get; set; }
        /// <summary>
        /// 结算方
        ///</summary>
        [SugarColumn(ColumnName = "SETTLE_PARTY")]
        public string SettleParty { 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 = "MODIFIED_BY")]
        public string ModifiedBy { get; set; }
        /// <summary>
        /// 修改时间
        ///</summary>
        [SugarColumn(ColumnName = "MODIFIED_DATE")]
        public DateTime? ModifiedDate { get; set; }
        /// <summary>
        /// 关闭人
        ///</summary>
        [SugarColumn(ColumnName = "CLOSED_BY")]
        public string ClosedBy { get; set; }
        /// <summary>
        /// 关闭原因
        ///</summary>
        [SugarColumn(ColumnName = "CLOSE_REASON")]
        public string CloseReason { get; set; }
        /// <summary>
        /// 关闭日期
        ///</summary>
        [SugarColumn(ColumnName = "CLOSE_DATE")]
        public DateTime? CloseDate { 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 = "CANCEL_STATUS")]
        public string CancelStatus { get; set; }
        /// <summary>
        /// 作废人
        ///</summary>
        [SugarColumn(ColumnName = "CANCELLED_BY")]
        public string CancelledBy { get; set; }
        /// <summary>
        /// 作废日期
        ///</summary>
        [SugarColumn(ColumnName = "CANCEL_DATE")]
        public DateTime? CancelDate { get; set; }
        /// <summary>
        /// 关闭状态
        ///</summary>
        [SugarColumn(ColumnName = "CLOSE_STATUS")]
        public string CloseStatus { get; set; }
        /// <summary>
        /// ERP头ID
        ///</summary>
        [SugarColumn(ColumnName = "ERP_ID")]
        public string ErpId { get; set; }
        /// <summary>
        /// 单据状态
        ///</summary>
        [SugarColumn(ColumnName = "BILL_STATUS")]
        public string BillStatus { get; set; }
    }
}
StandardInterface/MES.Service/Modes/SalesReturnNoticeDetail.cs
@@ -11,145 +11,121 @@
    /// <summary>
    ///     SEQ_sales
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_sales",
        IsPrimaryKey = true)]
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_sales", IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     单据行号
    ///     物料编码
    /// </summary>
    [SugarColumn(ColumnName = "LINE_NUMBER")]
    public long? LineNumber { get; set; }
    [SugarColumn(ColumnName = "MATERIAL_ID")]
    public string MaterialId { get; set; }
    /// <summary>
    ///     产品代码
    ///     销售单位
    /// </summary>
    [SugarColumn(ColumnName = "PRODUCT_CODE")]
    public string ProductCode { get; set; }
    [SugarColumn(ColumnName = "SALES_UNIT_ID")]
    public string SalesUnitId { get; set; }
    /// <summary>
    ///     产品名称
    ///     销售数量
    /// </summary>
    [SugarColumn(ColumnName = "PRODUCT_NAME")]
    public string ProductName { get; set; }
    [SugarColumn(ColumnName = "SALES_QUANTITY")]
    public decimal SalesQuantity { get; set; }
    /// <summary>
    ///     产品规格
    ///     是否赠品
    /// </summary>
    [SugarColumn(ColumnName = "PRODUCT_SPEC")]
    public string ProductSpec { get; set; }
    [SugarColumn(ColumnName = "IS_FREE")]
    public string IsFree { get; set; }
    /// <summary>
    ///     金额
    ///     退货日期
    /// </summary>
    [SugarColumn(ColumnName = "AMOUNT")]
    public decimal? Amount { get; set; }
    [SugarColumn(ColumnName = "RETURN_DATE")]
    public DateTime? ReturnDate { get; set; }
    /// <summary>
    ///     单价
    ///     仓库
    /// </summary>
    [SugarColumn(ColumnName = "UNIT_PRICE")]
    public decimal? UnitPrice { get; set; }
    [SugarColumn(ColumnName = "WAREHOUSE")]
    public string Warehouse { get; set; }
    /// <summary>
    ///     数量
    ///     计划跟踪号
    /// </summary>
    [SugarColumn(ColumnName = "QUANTITY")]
    public decimal? Quantity { get; set; }
    /// <summary>
    ///     出库数量
    /// </summary>
    [SugarColumn(ColumnName = "OUT_QUANTITY")]
    public decimal? OutQuantity { get; set; }
    [SugarColumn(ColumnName = "PLAN_TRACKING_NUMBER")]
    public string PlanTrackingNumber { get; set; }
    /// <summary>
    ///     批号
    /// </summary>
    [SugarColumn(ColumnName = "BATCH_NUMBER")]
    public string BatchNumber { get; set; }
    /// <summary>
    ///     退货数量
    /// </summary>
    [SugarColumn(ColumnName = "RETURN_QUANTITY")]
    public decimal? ReturnQuantity { get; set; }
    /// <summary>
    ///     发货数量
    /// </summary>
    [SugarColumn(ColumnName = "DELIVERY_QUANTITY")]
    public decimal? DeliveryQuantity { get; set; }
    [SugarColumn(ColumnName = "LOT_NUMBER")]
    public string LotNumber { get; set; }
    /// <summary>
    ///     备注
    /// </summary>
    [SugarColumn(ColumnName = "REMARKS")]
    public string Remarks { get; set; }
    [SugarColumn(ColumnName = "NOTE")]
    public string Note { get; set; }
    /// <summary>
    ///     销售订单单号
    ///     退货类型
    /// </summary>
    [SugarColumn(ColumnName = "SALES_ORDER_ID")]
    public string SalesOrderId { get; set; }
    [SugarColumn(ColumnName = "RETURN_TYPE")]
    public string ReturnType { get; set; }
    /// <summary>
    ///     销售订单分录
    ///     库存单位
    /// </summary>
    [SugarColumn(ColumnName = "SALES_ORDER_ENTRY")]
    public string SalesOrderEntry { get; set; }
    [SugarColumn(ColumnName = "INVENTORY_UNIT")]
    public string InventoryUnit { get; set; }
    /// <summary>
    ///     销售订单ID
    ///     库存数量
    /// </summary>
    [SugarColumn(ColumnName = "SALES_ORDER_DETAIL_ID")]
    public string SalesOrderDetailId { get; set; }
    [SugarColumn(ColumnName = "INVENTORY_QUANTITY")]
    public decimal InventoryQuantity { get; set; }
    /// <summary>
    ///     基本单价
    ///     货主类型
    /// </summary>
    [SugarColumn(ColumnName = "BASE_UNIT_PRICE")]
    public decimal? BaseUnitPrice { get; set; }
    [SugarColumn(ColumnName = "OWNER_TYPE_ID")]
    public string OwnerTypeId { get; set; }
    /// <summary>
    ///     基本单位数量
    ///     货主
    /// </summary>
    [SugarColumn(ColumnName = "BASE_UNIT_QUANTITY")]
    public decimal? BaseUnitQuantity { get; set; }
    [SugarColumn(ColumnName = "OWNER_ID")]
    public string OwnerId { get; set; }
    /// <summary>
    ///     仓库代码
    ///     源单类型
    /// </summary>
    [SugarColumn(ColumnName = "WAREHOUSE_CODE")]
    public string WarehouseCode { get; set; }
    [SugarColumn(ColumnName = "SOURCE_BILL_TYPE")]
    public string SourceBillType { get; set; }
    /// <summary>
    ///     仓库名称
    ///     源单单号
    /// </summary>
    [SugarColumn(ColumnName = "WAREHOUSE_NAME")]
    public string WarehouseName { get; set; }
    [SugarColumn(ColumnName = "SOURCE_BILL_NO")]
    public string SourceBillNo { get; set; }
    /// <summary>
    ///     基本单位出库数量
    ///     订单单号
    /// </summary>
    [SugarColumn(ColumnName = "BASE_UNIT_OUT_QUANTITY")]
    public decimal? BaseUnitOutQuantity { get; set; }
    [SugarColumn(ColumnName = "ORDER_BILL_NO")]
    public string OrderBillNo { get; set; }
    /// <summary>
    ///     单位
    ///     ERP行ID
    /// </summary>
    [SugarColumn(ColumnName = "UNIT")]
    public string Unit { get; set; }
    /// <summary>
    ///     ERPID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_ID")]
    public string ErpId { get; set; }
    [SugarColumn(ColumnName = "ERP_LINE_ID")]
    public string ErpLineId { get; set; }
    /// <summary>
    ///     ERP头ID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_HEAD_ID")]
    public string ErpHeadId { get; set; }
}
StandardInterface/MES.Service/service/BasicData/Sales/SalesOrderManager.cs
@@ -1,78 +1,194 @@
using MES.Service.DB;
using System.Data;
using System.Globalization;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
using MES.Service.service.BasicData.Sales;
namespace MES.Service.service.BasicData.Sales;
namespace MES.Service.service.BasicData;
public class SalesOrderManager : Repository<SalesOrder>
{
    //当前类已经继承了 Repository 增、删、查、改的方法
    //这里面写的代码不会给覆盖,如果要重新生成请删除 SalesOrderManager.cs
    #region 教学方法
    /// <summary>
    ///     仓储方法满足不了复杂业务需求,业务代码请在这里面定义方法
    /// </summary>
    public void Study()
    private readonly SalesOrderDetailManager _SalesOrderDetailManager = new();
    //ErpSalesOrder
    public bool Save(ErpSalesOrder SalesOrder)
    {
        /*********查询*********/
        var erpSalesOrderDto = SalesOrder.OrderDto;
        var mesSalesOrder = ConvertErpToSalesOrder(SalesOrder.OrderDto);
        var mesSalesOrderDatas = ConvertErpToSalesOrderDetail(SalesOrder.Items);
        var data1 = base.GetById(1); //根据ID查询
        var data2 = base.GetList(); //查询所有
        var data3 = base.GetList(it => 1 == 1); //根据条件查询
        //var data4 = base.GetSingle(it => 1 == 1);//根据条件查询一条,如果超过一条会报错
        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // 分页查询
        var data5 = base.GetPageList(it => 1 == 1, p);
        Console.Write(p.TotalCount); //返回总数
        var data6 =
            base.GetPageList(it => 1 == 1, p,
                it => SqlFunc.GetRandom()); // 分页查询加排序
        Console.Write(p.TotalCount); //返回总数
        var conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 分页查询加排序
        conModels.Add(new ConditionalModel
        return UseTransaction(db =>
        {
            FieldName = typeof(SalesOrder).GetProperties()[0].Name,
            ConditionalType = ConditionalType.Equal, FieldValue = "1"
        }); //id=1
        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
        AsQueryable().Where(x => 1 == 1)
            .ToList(); //支持了转换成queryable,我们可以用queryable实现复杂功能
        /*********插入*********/
        var insertData = new SalesOrder(); //测试参数
        var insertArray = new[] { insertData };
        base.Insert(insertData); //插入
        base.InsertRange(insertArray); //批量插入
        var id = base.InsertReturnIdentity(insertData); //插入返回自增列
        AsInsertable(insertData).ExecuteCommand(); //我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new SalesOrder(); //测试参数
        var updateArray = new[] { updateData }; //测试参数
        base.Update(updateData); //根据实体更新
        base.UpdateRange(updateArray); //批量更新
        //base.Update(it => new SalesOrder() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// 只更新ClassName列和CreateTime列,其它列不更新,条件id=1
        AsUpdateable(updateData).ExecuteCommand(); //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new SalesOrder(); //测试参数
        base.Delete(deldata); //根据实体删除
        base.DeleteById(1); //根据主键删除
        base.DeleteById(new[] { 1, 2 }); //根据主键数组删除
        base.Delete(it => 1 == 2); //根据条件删除
        AsDeleteable().Where(it => 1 == 2)
            .ExecuteCommand(); //转成Deleteable实现复杂的操作
            switch (erpSalesOrderDto.Type)
            {
                case "3":
                    return DeleteData(db, mesSalesOrder, mesSalesOrderDatas) ? 1 : 0;
                case "2":
                case "4":
                case "5":
                    return SaveOrUpdateData(db, mesSalesOrder, mesSalesOrderDatas, erpSalesOrderDto.Type) ? 1 : 0;
                default:
                    throw new NotImplementedException($"type没有{erpSalesOrderDto.Type}这个类型");
            }
        }) > 0;
    }
    #endregion
    private bool DeleteData(SqlSugarScope db, SalesOrder mesSalesOrder, List<SalesOrderDetail> mesSalesOrderDatas)
    {
        var decimals = mesSalesOrderDatas.Select(s => s.Id).ToArray();
        var update = base.DeleteById(mesSalesOrder.Id);
        var insertOrUpdate = db.Deleteable<SalesOrderDetail>().In(decimals).ExecuteCommand() > 0;
        if (update && insertOrUpdate)
        {
            return true;
        }
        throw new NotImplementedException("更新失败");
    }
    // 插入或更新数据的方法
    private bool SaveOrUpdateData(SqlSugarScope db, SalesOrder mesSalesOrder, List<SalesOrderDetail> mesSalesOrderDatas, string type)
    {
        if (mesSalesOrder.Id != null)
        {
            base.DeleteById(mesSalesOrder.Id);
        }
        if (mesSalesOrderDatas.Count > 0)
        {
            db.Deleteable<SalesOrderDetail>().Where(s => s.EHID == mesSalesOrder.ErpID).ExecuteCommand();
        }
        var orUpdate = base.Insert(mesSalesOrder);
        var baOrUpdate = _SalesOrderDetailManager.InsertRange(mesSalesOrderDatas);
        if (orUpdate && baOrUpdate)
        {
            return true;
        }
        throw new NotImplementedException("插入或更新失败");
    }
    // 批量保存记录的方法
    public bool SaveList(List<ErpSalesOrder> salesOrder)
    {
        var result = salesOrder.Select(Save).ToList();
        return result.All(b => b);
    }
    private SalesOrder ConvertErpToSalesOrder(ErpSalesOrderDto erpDto)
    {
        DateTime parsedDate;
        // 时间格式转换函数,ERP时间格式为 "yyyy-MM-dd HH:mm:ss"
        DateTime? ParseDateTime(string dateStr)
        {
            if (DateTime.TryParseExact(dateStr, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate))
            {
                return parsedDate;
            }
            return null; // 如果转换失败,返回null
        }
        var salesOrder = new SalesOrder
        {
            BillNo = erpDto.FBillNo,
            ErpID = Convert.ToDecimal(erpDto.ErpID),
            FDate = ParseDateTime(erpDto.FDate) ?? null,
            BillTypeId = erpDto.FBillTypeID, // 单据类型
            DocumentStatus = erpDto.FDocumentStatus, // 单据状态
            BusinessType = erpDto.FBusinessType, // 业务类型
            HeadDeliveryWay = erpDto.FHeadDeliveryWay, // 交货方式
            HeadLocId = erpDto.FHEADLOCID, // 交货地点
            CustId = erpDto.FCustId, // 客户
            CloseStatus = erpDto.FCloseStatus, // 关闭状态
            SaleDeptId = erpDto.FSaleDeptId, // 销售部门
            SalerId = erpDto.FSalerId, // 销售员
            ChangeReason = erpDto.FChangeReason, // 变更原因
            SettleId = erpDto.FSettleId, // 结算方
            ApproverId = erpDto.FApproverId, // 审核人
            LinkMan = erpDto.FLinkMan, // 收货人姓名
            ChargeId = erpDto.FChargeId, // 付款方
            LinkPhone = erpDto.FLinkPhone, // 联系电话
            CreatorId = erpDto.FCreatorId, // 创建人
            CreateDate = ParseDateTime(erpDto.FCreateDate) ?? null, // 创建日期
            ModifierId = erpDto.FModifierId, // 最后修改人
            ModifyDate = ParseDateTime(erpDto.FModifyDate) ?? null, // 最后修改日期
            ApproveDate = ParseDateTime(erpDto.FApproveDate) ?? null, // 审核日期
            CloserId = erpDto.FCloserId, // 关闭人
            CloseDate = ParseDateTime(erpDto.FCloseDate) ?? null, // 关闭日期
            ChangeDate = ParseDateTime(erpDto.FChangeDate) ?? null, // 变更日期
            CancelStatus = erpDto.FCancelStatus, // 作废状态
            CancellerId = erpDto.FCancellerId, // 作废人
            VersionNo = Convert.ToDouble(erpDto.FVersionNo), // 版本号
            ChangerId = erpDto.FChangerId, // 变更人
            EntryNote = erpDto.FEntryNote // 备注
        };
        var single = base.GetSingle(it => it.ErpID == Convert.ToDecimal(erpDto.ErpID));
        if (single != null)
        {
            salesOrder.Id = single.Id;
        }
        return salesOrder;
    }
    private List<SalesOrderDetail> ConvertErpToSalesOrderDetail(List<ErpSalesOrderDetailDto> erpDtoList)
    {
        var salesOrderSubList = new List<SalesOrderDetail>();
        foreach (var erpDto in erpDtoList)
        {
            var salesOrderSub = new SalesOrderDetail
            {
                ErpID = Convert.ToDecimal(erpDto.ErpID),
                EHID = Convert.ToDecimal(erpDto.EHID),
                MaterialId = erpDto.FMaterialId,
                UnitId = erpDto.FUnitID,
                Qty = Convert.ToDecimal(erpDto.FQty),
                PriceUnitId = erpDto.FPriceUnitId,
                PriceUnitQty = Convert.ToDecimal(erpDto.FPriceUnitQty),
                DeliveryDate = Convert.ToDateTime(erpDto.FDeliveryDate),
                IsFree = Convert.ToDecimal(erpDto.FIsFree),
                OwnerTypeId = erpDto.FOwnerTypeId,
                OwnerId = erpDto.FOwnerId,
                EntryNote = erpDto.FEntryNote,
                MtoNo = erpDto.FMtoNo,
                Lot = erpDto.FLot,
                DeliveryMaxQty = Convert.ToDecimal(erpDto.FDeliveryMaxQty),
                DeliveryMinQty = Convert.ToDecimal(erpDto.FDeliveryMinQty),
                OutLmtUnitId = erpDto.FOutLmtUnitID,
                MrpCloseStatus = erpDto.FMrpCloseStatus,
                MrpTerminateStatus = erpDto.FMrpTerminateStatus,
                TerminateDate = Convert.ToDateTime(erpDto.FTerminateDate),
                TerminaterId = erpDto.FTerminatorId,
                SrcType = erpDto.FSrcType,
                SrcBillNo = erpDto.FSrcBillNo,
                DeliQty = Convert.ToDecimal(erpDto.FDeliQty),
                StockOutQty = Convert.ToDecimal(erpDto.FStockOutQty),
                BaseRetNoticeQty = Convert.ToDecimal(erpDto.FBaseRetNoticeQty),
                BaseReturnQty = Convert.ToDecimal(erpDto.FBaseReturnQty),
                BaseRemainOutQty = Convert.ToDecimal(erpDto.FBaseRemainOutQty),
                BASEARQTY = Convert.ToDecimal(erpDto.FBASEARQTY),
                ItemNo = erpDto.FMapId,
                ItemName = erpDto.FMapName,
                ItemModel = erpDto.FMapSpec,
            };
            var single = _SalesOrderDetailManager.GetSingle(it => it.ErpID == Convert.ToDecimal(salesOrderSub.ErpID));
            if (single != null)
            {
                salesOrderSub.Id = single.Id;
            }
            salesOrderSubList.Add(salesOrderSub);
        }
        return salesOrderSubList;
    }
}
StandardInterface/MES.Service/service/BasicData/Sales/SalesReturnNoticeDetailManager.cs
@@ -2,10 +2,10 @@
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.BasicData.Sales;
namespace MES.Service.service.BasicData;
public class
    SalesReturnNoticeDetailManager : Repository<SalesReturnNoticeDetail>
    SalesReturnDetailManager : Repository<SalesReturnNoticeDetail>
{
    //当前类已经继承了 Repository 增、删、查、改的方法
StandardInterface/MES.Service/service/BasicData/Sales/SalesReturnNoticeManager.cs
@@ -1,78 +1,205 @@
using MES.Service.DB;
using System.Data;
using System.Globalization;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
using DbType = System.Data.DbType;
namespace MES.Service.service.BasicData.Sales;
namespace MES.Service.service.BasicData;
public class SalesReturnNoticeManager : Repository<SalesReturnNotice>
{
    //当前类已经继承了 Repository 增、删、查、改的方法
    //这里面写的代码不会给覆盖,如果要重新生成请删除 SalesReturnNoticeManager.cs
    #region 教学方法
    /// <summary>
    ///     仓储方法满足不了复杂业务需求,业务代码请在这里面定义方法
    /// </summary>
    public void Study()
    private readonly SalesReturnDetailManager _SalesReturnDetailManager =
        new();
    //ErpSalesRerurn
    public bool Save(ErpSalesRerurn SalesReturn)
    {
        /*********查询*********/
        var erpSalesReturnDto = SalesReturn.OrderDto;
        var mesSalesReturn = ConvertErpToSalesReturn(SalesReturn.OrderDto);
        var mesSalesReturnDatas = ConvertErpToSalesReturnDetail(SalesReturn.Items);
        var data1 = base.GetById(1); //根据ID查询
        var data2 = base.GetList(); //查询所有
        var data3 = base.GetList(it => 1 == 1); //根据条件查询
        //var data4 = base.GetSingle(it => 1 == 1);//根据条件查询一条,如果超过一条会报错
        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // 分页查询
        var data5 = base.GetPageList(it => 1 == 1, p);
        Console.Write(p.TotalCount); //返回总数
        var data6 =
            base.GetPageList(it => 1 == 1, p,
                it => SqlFunc.GetRandom()); // 分页查询加排序
        Console.Write(p.TotalCount); //返回总数
        var conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 分页查询加排序
        conModels.Add(new ConditionalModel
        return UseTransaction(db =>
        {
            FieldName = typeof(SalesReturnNotice).GetProperties()[0].Name,
            ConditionalType = ConditionalType.Equal, FieldValue = "1"
        }); //id=1
        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
        AsQueryable().Where(x => 1 == 1)
            .ToList(); //支持了转换成queryable,我们可以用queryable实现复杂功能
        /*********插入*********/
        var insertData = new SalesReturnNotice(); //测试参数
        var insertArray = new[] { insertData };
        base.Insert(insertData); //插入
        base.InsertRange(insertArray); //批量插入
        var id = base.InsertReturnIdentity(insertData); //插入返回自增列
        AsInsertable(insertData).ExecuteCommand(); //我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new SalesReturnNotice(); //测试参数
        var updateArray = new[] { updateData }; //测试参数
        base.Update(updateData); //根据实体更新
        base.UpdateRange(updateArray); //批量更新
        //base.Update(it => new SalesReturnNotice() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// 只更新ClassName列和CreateTime列,其它列不更新,条件id=1
        AsUpdateable(updateData).ExecuteCommand(); //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new SalesReturnNotice(); //测试参数
        base.Delete(deldata); //根据实体删除
        base.DeleteById(1); //根据主键删除
        base.DeleteById(new[] { 1, 2 }); //根据主键数组删除
        base.Delete(it => 1 == 2); //根据条件删除
        AsDeleteable().Where(it => 1 == 2)
            .ExecuteCommand(); //转成Deleteable实现复杂的操作
            switch (erpSalesReturnDto.Type)
            {
                // case "2":
                //     return InsertData(db, mesSalesReturn, mesSalesReturnDatas,
                //         rohInErpRohIn.FBILLTYPE)
                //         ? 1
                //         : 0;
                case "3":
                    return UpdateData(db, mesSalesReturn, mesSalesReturnDatas) ? 1 : 0;
                case "2":
                case "4":
                    return SaveOrUpdateData(db, mesSalesReturn, mesSalesReturnDatas, erpSalesReturnDto.Type)
                        ? 1
                        : 0;
                default:
                    throw new NotImplementedException(
                        $"type没有{erpSalesReturnDto.Type}这个类型");
            }
        }) > 0;
    }
    #endregion
    private bool UpdateData(SqlSugarScope db, SalesReturnNotice mesSalesReturn,
        List<SalesReturnNoticeDetail> mesSalesReturnDatas)
    {
        var decimals = mesSalesReturnDatas.Select(s => s.Id).ToArray();
        var update = base.DeleteById(mesSalesReturn.Id);
        var insertOrUpdate = db
            .Deleteable<SalesReturnNoticeDetail>().In(decimals)
            .ExecuteCommand() > 0;
        if (update && insertOrUpdate) return true;
        throw new NotImplementedException("更新失败");
    }
    // 插入或更新数据的方法
    private bool SaveOrUpdateData(SqlSugarScope db, SalesReturnNotice mesSalesReturn,
        List<SalesReturnNoticeDetail> mesSalesReturnDatas,string type)
    {
        if (mesSalesReturn.Id != null) base.DeleteById(mesSalesReturn.Id);
        if (mesSalesReturnDatas.Count > 0)
            db.Deleteable<SalesReturnNoticeDetail>()
                .Where(s => s.ErpHeadId == mesSalesReturn.ErpId).ExecuteCommand();
        var orUpdate = base.Insert(mesSalesReturn);
        var baOrUpdate = _SalesReturnDetailManager.InsertRange(mesSalesReturnDatas);
        if (orUpdate && baOrUpdate) return true;
        throw new NotImplementedException("插入或更新失败");
    }
    // 批量保存记录的方法
    public bool SaveList(List<ErpSalesRerurn> salesOrder)
    {
        var result = salesOrder.Select(Save).ToList();
        return result.All(b => b);
    }
    private SalesReturnNotice ConvertErpToSalesReturn(
        ErpSalesReturnDto erpDto)
    {
        DateTime parsedDate;
        // 时间格式转换函数,ERP时间格式为 "yyyy-MM-dd HH:mm:ss"
        DateTime? ParseDateTime(string dateStr)
        {
            if (DateTime.TryParseExact(dateStr, "yyyy-MM-dd HH:mm:ss",
                    CultureInfo.InvariantCulture,
                    DateTimeStyles.None,
                    out parsedDate))
                return parsedDate;
            return null; // 如果转换失败,返回null
        }
        var salesOrder = new SalesReturnNotice
        {
            BillNo = erpDto.FBillNo,
            ErpId = erpDto.ErpID,
            FDate = ParseDateTime(erpDto.FDate) ?? null,
            BillType = erpDto.FBillTypeID, // 单据类型
            Currency = erpDto.FSettleCurrld, // 结算币别
            SalesDept = erpDto.FSaleDeptId, //销售部门
            ReturnCustomer = erpDto.FRetcustId, // 退货客户
            ReturnReason = erpDto.FRetcustReason, // 退货原因
            DeliveryLocation = erpDto.FHeadLocId, // 交货地点
            InventoryDept = erpDto.FRetDeptId, // 库存部门
            InventoryGroup = erpDto.FStockerGroupId, // 库存组
            WarehouseManager = erpDto.FStockerId, // 仓管员
            SalesGroup = erpDto.FSaleGroupId, // 销售组
            SalesPerson = erpDto.FSalesManId,//销售员
            Receiver = erpDto.FReceiveCusId, // 收货方
            ReceiverContact = erpDto.FReceiveCusContact, // 收货方联系人
            ReceiverAddress = erpDto.FReceiveAddress, // 收货方地址
            ReceiverName = erpDto.FLinkMan, // 收货方姓名
            SettleParty = erpDto.FSettleCusId, // 结算方
            CreatedBy = erpDto.FCreatorId, // 创建人
            CreatedDate = ParseDateTime(erpDto.FCreateDate) ?? null, // 创建时间
            ModifiedBy = erpDto.FModifierId, // 修改人
            ModifiedDate = ParseDateTime(erpDto.FModifyDate) ?? null, // 修改时间
            ClosedBy = erpDto.FCloserId, // 关闭人
            CloseReason = erpDto.FCloseReason, // 关闭原因
            CloseDate = ParseDateTime(erpDto.FCloseDate) ?? null, // 关闭日期
            ApprovedBy = erpDto.FApproverId, // 审核人
            ApprovedDate = ParseDateTime(erpDto.FApproveDate) ?? null, // 审核日期
            CancelStatus = erpDto.FCancelStatus, // 作废状态
            CancelledBy = erpDto.FCancellerId, // 作废人
            CancelDate = ParseDateTime(erpDto.FCancelDate) ?? null, // 作废日期
            CloseStatus = erpDto.FBillCloseStatus, // 关闭状态
            BillStatus  = erpDto.FDocumentStatus //单据状态
        };
        var single = base.GetSingle(it => it.ErpId == erpDto.ErpID);
        if (single != null) salesOrder.Id = single.Id;
        return salesOrder;
    }
    private List<SalesReturnNoticeDetail> ConvertErpToSalesReturnDetail(
        List<ErpSalesReturnDetailDto> erpDtoList)
    {
        var salesOrderSubList =
            new List<SalesReturnNoticeDetail>();
        DateTime parsedDate;
        // 时间格式转换函数,ERP时间格式为 "yyyy-MM-dd HH:mm:ss"
        DateTime? ParseDateTime(string dateStr)
        {
            if (DateTime.TryParseExact(dateStr, "yyyy-MM-dd HH:mm:ss",
                    CultureInfo.InvariantCulture,
                    DateTimeStyles.None,
                    out parsedDate))
                return parsedDate;
            return null; // 如果转换失败,返回null
        }
        foreach (var erpDto in erpDtoList)
        {
            var salesOrderSub = new SalesReturnNoticeDetail
            {
                ErpLineId = erpDto.ErpID,//ERP行ID
                ErpHeadId = erpDto.EHID,//ERP头ID
                MaterialId = erpDto.FMaterialId,//物料编号
                SalesUnitId = erpDto.FUnitID,//销售单位
                SalesQuantity = Convert.ToDecimal(erpDto.FQty),//销售数量
                IsFree = erpDto.FIsFree,//是否赠品
                ReturnDate = ParseDateTime(erpDto.FDeliverydate),//退货日期
                Warehouse = erpDto.FStockId,//仓库
                PlanTrackingNumber = erpDto.FMtoNo,//计划跟踪号
                LotNumber = erpDto.FLot,//批号
                Note = erpDto.FEntryDescription,//备注
                ReturnType = erpDto.FRmType,//退货类型
                InventoryUnit = erpDto.FStockUnitID,//库存单位
                InventoryQuantity = Convert.ToDecimal(erpDto.FStockQty),//库存数量
                OwnerTypeId = erpDto.FOwnerTypeID,//货主类型
                OwnerId = erpDto.FOwnerId,//货主
                SourceBillType = erpDto.FSrcType,
                SourceBillNo = erpDto.FSrcBillNo,
                OrderBillNo = erpDto.FOrderNo
            };
            var single = _SalesReturnDetailManager.GetSingle(it =>
                it.ErpLineId == salesOrderSub.ErpLineId);
            if (single != null) salesOrderSub.Id = single.Id;
            salesOrderSubList.Add(salesOrderSub);
        }
        return salesOrderSubList;
    }
}
StandardInterface/MESApplication/Controllers/BasicData/SalesOrderController.cs
@@ -1,9 +1,15 @@
using System.Dynamic;
using MES.Service.Modes;
using MES.Service.service.BasicData;
using MES.Service.service.BasicData.Sales;
using MES.Service.util;
using MES.Service.Dto.webApi;
using MES.Service.service;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using Newtonsoft.Json;
namespace MESApplication.Controllers.BasicData;
@@ -12,9 +18,103 @@
public class SalesOrderController : ControllerBase
{
    private readonly SalesOrderManager m = new();
    private readonly MessageCenterManager _manager = new();
    private readonly string METHOD = "POST";
    private readonly string TableName = "SALES_ORDER";
    private readonly string URL = "http://localhost:10054/api/SalesOrder/";
    /***进入模版管理可以修改模版***/
    [HttpPost("Save")]
    public ResponseResult Save(ErpSalesOrder salesOrder)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "Save";
        entity.Method = METHOD;
        entity.Route = salesOrder.OrderDto.FBillNo;
        entity.Data = JsonConvert.SerializeObject(salesOrder);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.Save(salesOrder);
            resultInfos.tbBillList = save;
            entity.Result = 0;
            if (save) entity.Result = 1;
            entity.DealWith = 1;
            _manager.save(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            entity.Result = 0;
            entity.DealWith = 0;
            entity.ResultData = ex.Message;
            _manager.save(entity);
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("SaveList")]
    public ResponseResult SaveList(List<ErpSalesOrder> units)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "SaveList";
        entity.Method = METHOD;
        entity.Data = JsonConvert.SerializeObject(units);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.SaveList(units);
            resultInfos.tbBillList = save;
            entity.Result = 0;
            if (save) entity.Result = 1;
            entity.DealWith = 1;
            _manager.save(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            entity.Result = 0;
            entity.DealWith = 0;
            entity.ResultData = ex.Message;
            _manager.save(entity);
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     获取所有
StandardInterface/MESApplication/Controllers/BasicData/SalesReturnNoticeController.cs
@@ -1,9 +1,11 @@
using System.Dynamic;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using MES.Service.service;
using MES.Service.service.BasicData;
using MES.Service.service.BasicData.Sales;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace MESApplication.Controllers.BasicData;
@@ -11,8 +13,110 @@
[Route("api/[controller]")]
public class SalesReturnNoticeController : ControllerBase
{
   private readonly MessageCenterManager _manager = new();
    private readonly SalesReturnNoticeManager m = new();
    private readonly string METHOD = "POST";
    private readonly string TableName = "SALES_RETURN_NOTICE";
    private readonly string URL = "http://localhost:10054/api/SalesReturnNotice/";
    //
    [HttpPost("Save")]
    public ResponseResult Save(ErpSalesRerurn salesOrder)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "Save";
        entity.Method = METHOD;
        entity.Route = salesOrder.OrderDto.FBillNo;
        entity.Data = JsonConvert.SerializeObject(salesOrder);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.Save(salesOrder);
            resultInfos.tbBillList = save;
            entity.Result = 0;
            if (save) entity.Result = 1;
            entity.DealWith = 1;
            _manager.save(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            entity.Result = 0;
            entity.DealWith = 0;
            entity.ResultData = ex.Message;
            _manager.save(entity);
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("SaveList")]
    public ResponseResult SaveList(List<ErpSalesRerurn> units)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "SaveList";
        entity.Method = METHOD;
        entity.Data = JsonConvert.SerializeObject(units);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.SaveList(units);
            resultInfos.tbBillList = save;
            entity.Result = 0;
            if (save) entity.Result = 1;
            entity.DealWith = 1;
            _manager.save(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            entity.Result = 0;
            entity.DealWith = 0;
            entity.ResultData = ex.Message;
            _manager.save(entity);
            return ResponseResult.ResponseError(ex);
        }
    }
    /***进入模版管理可以修改模版***/
StandardInterface/MESApplication/Controllers/BasicData/SalesReturnNoticeDetailController.cs
@@ -1,7 +1,6 @@
using System.Dynamic;
using MES.Service.Modes;
using MES.Service.service.BasicData;
using MES.Service.service.BasicData.Sales;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
@@ -9,9 +8,9 @@
[ApiController]
[Route("api/[controller]")]
public class SalesReturnNoticeDetailController : ControllerBase
public class SalesReturnDetailController : ControllerBase
{
    private readonly SalesReturnNoticeDetailManager m = new();
    private readonly SalesReturnDetailManager m = new();
    /***进入模版管理可以修改模版***/