111
tjx
6 天以前 f34f0751ef0c6305c94ff342ca7fbe24aa09844e
StandardPda/MES.Service/service/BasicData/SalesReturnNoticeManager.cs
@@ -1,10 +1,8 @@
using MES.Service.DB;
using System.Data;
using System.Globalization;
using System.Globalization;
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
using DbType = System.Data.DbType;
namespace MES.Service.service.BasicData;
@@ -14,12 +12,14 @@
    private readonly SalesReturnNoticeDetailManager _SalesReturnDetailManager =
        new();
    //ErpSalesRerurn
    public bool Save(ErpSalesRerurn SalesReturn)
    {
        var erpSalesReturnDto = SalesReturn.OrderDto;
        var mesSalesReturn = ConvertErpToSalesReturn(SalesReturn.OrderDto);
        var mesSalesReturnDatas = ConvertErpToSalesReturnDetail(SalesReturn.Items);
        var mesSalesReturnDatas =
            ConvertErpToSalesReturnDetail(SalesReturn.Items);
        return UseTransaction(db =>
        {
@@ -31,10 +31,13 @@
                //         ? 1
                //         : 0;
                case "3":
                    return UpdateData(db, mesSalesReturn, mesSalesReturnDatas) ? 1 : 0;
                    return UpdateData(db, mesSalesReturn, mesSalesReturnDatas)
                        ? 1
                        : 0;
                case "2":
                case "4":
                    return SaveOrUpdateData(db, mesSalesReturn, mesSalesReturnDatas, erpSalesReturnDto.Type)
                    return SaveOrUpdateData(db, mesSalesReturn,
                        mesSalesReturnDatas, erpSalesReturnDto.Type)
                        ? 1
                        : 0;
                default:
@@ -58,17 +61,20 @@
    }
    // 插入或更新数据的方法
    private bool SaveOrUpdateData(SqlSugarScope db, SalesReturnNotice mesSalesReturn,
    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();
                .Where(s => s.ErpHeadId == mesSalesReturn.ErpId)
                .ExecuteCommand();
        var orUpdate = base.Insert(mesSalesReturn);
        var baOrUpdate = _SalesReturnDetailManager.InsertRange(mesSalesReturnDatas);
        var baOrUpdate =
            _SalesReturnDetailManager.InsertRange(mesSalesReturnDatas);
        if (orUpdate && baOrUpdate) return true;
@@ -115,16 +121,16 @@
            ApprovedBy = erpDto.FApproverId, // 审核人
            ApprovedDate = ParseDateTime(erpDto.FApproveDate) ?? null, // 审核日期
            BillStatus = erpDto.FDocumentStatus, //单据状态
            ReturnType= erpDto.ReturnType, // 退回类型
            ReturnType = erpDto.ReturnType, // 退回类型
            TotalQuantity = erpDto.TotalQuantity, // 总数量
            SourceDocumentCategory = erpDto.SourceDocumentCategory, // 来源单据类别
            SourceDocument = erpDto.SourceDocument, // 源单据
            ReplenishmentOrganization= erpDto.ReplenishmentOrganization, // 补货组织
            CustomerRequestDate = erpDto.CustomerRequestDate,  // 客户要求日期
            ReturnSalesman= erpDto.ReturnSalesman, // 退货销售员
            ReplenishmentOrganization =
                erpDto.ReplenishmentOrganization, // 补货组织
            CustomerRequestDate = erpDto.CustomerRequestDate, // 客户要求日期
            ReturnSalesman = erpDto.ReturnSalesman, // 退货销售员
            ReturnDescription = erpDto.ReturnDescription, // 退货说明
            ReturnDepartment = erpDto.ReturnDepartment // 退货部门
        };
        var single = base.GetSingle(it => it.ErpId == erpDto.ErpID);
@@ -141,6 +147,7 @@
            new List<SalesReturnNoticeDetail>();
        DateTime parsedDate;
        // 时间格式转换函数,ERP时间格式为 "yyyy-MM-dd HH:mm:ss"
        DateTime? ParseDateTime(string dateStr)
        {
@@ -154,57 +161,55 @@
        }
        foreach (var erpDto in erpDtoList)
        {
            var salesOrderSub = new SalesReturnNoticeDetail
            {
                ErpLineId = erpDto.ErpID,//ERP行ID
                ErpHeadId = erpDto.EHID,//ERP头ID
                MaterialId = erpDto.FMaterialId,//物料编号
                ErpLineId = erpDto.ErpID, //ERP行ID
                ErpHeadId = erpDto.EHID, //ERP头ID
                MaterialId = erpDto.FMaterialId, //物料编号
                //SalesUnitId = erpDto.FUnitID,//销售单位
                SalesQuantity = Convert.ToDecimal(erpDto.FQty),//销售数量
                SalesQuantity = Convert.ToDecimal(erpDto.FQty), //销售数量
                //IsFree = erpDto.FIsFree,//是否赠品
                //ReturnDate = ParseDateTime(erpDto.FDeliverydate),//退货日期
                Warehouse = erpDto.FStockId,//仓库
                Warehouse = erpDto.FStockId, //仓库
                //PlanTrackingNumber = erpDto.FMtoNo,//计划跟踪号
                LotNumber = erpDto.FLot,//批号
                Note = erpDto.FEntryDescription,//备注
                LotNumber = erpDto.FLot, //批号
                Note = erpDto.FEntryDescription, //备注
                //ReturnType = erpDto.FRmType,//退货类型
                //InventoryUnit = erpDto.FStockUnitID,//库存单位
                //InventoryQuantity = Convert.ToDecimal(erpDto.FStockQty),//库存数量
                //OwnerTypeId = erpDto.FOwnerTypeID,//货主类型
                OwnerId = erpDto.FOwnerId,//货主
                OwnerId = erpDto.FOwnerId, //货主
                SourceBillType = erpDto.FSrcType,
                SourceBillNo = erpDto.FSrcBillNo,
                OrderBillNo = erpDto.FOrderNo,
                FLineNumber= erpDto.FLineNumber, // 行号
                FLineStatus= erpDto.FLineStatus, // 行状态
                FLineNumber = erpDto.FLineNumber, // 行号
                FLineStatus = erpDto.FLineStatus, // 行状态
                FRefundCustomer = erpDto.FRefundCustomer, // 退款客户
                FSupplier = erpDto.FSupplier, // 供应商
                FFreebieType = erpDto.FFreebieType, // 免费品类型
                FFreebieReason = erpDto.FFreebieReason, // 免费品原因
                FSourceDocLineNo = erpDto.FSourceDocLineNo, // 源头单据行号
                FSourceDocSubLineNo = erpDto.FSourceDocSubLineNo, // 源头单据子行号
                FSourceDocType = erpDto.FSourceDocType,// 源头单据类型
                FOriginalDocLineNo = erpDto.FOriginalDocLineNo,// 原始单据行号
                FReplenishOrg = erpDto.FReplenishOrg,// 补货组织
                FReceivingOrg = erpDto.FReceivingOrg,// 收货组织
                FOriginalSalesman = erpDto.FOriginalSalesman,// 原始销售员
                FOriginalDept = erpDto.FOriginalDept,// 原始部门
                FSourceDocType = erpDto.FSourceDocType, // 源头单据类型
                FOriginalDocLineNo = erpDto.FOriginalDocLineNo, // 原始单据行号
                FReplenishOrg = erpDto.FReplenishOrg, // 补货组织
                FReceivingOrg = erpDto.FReceivingOrg, // 收货组织
                FOriginalSalesman = erpDto.FOriginalSalesman, // 原始销售员
                FOriginalDept = erpDto.FOriginalDept, // 原始部门
                FProject = erpDto.FProject, // 项目
                FReturnReason = erpDto.FReturnReason,// 退货原因
                FReturnDescription = erpDto.FReturnDescription,// 退货说明
                FReturnReason = erpDto.FReturnReason, // 退货原因
                FReturnDescription = erpDto.FReturnDescription // 退货说明
            };
            var single = _SalesReturnDetailManager.GetSingle(it =>
                it.ErpLineId == salesOrderSub.ErpLineId);
            if (single != null) salesOrderSub.Id = single.Id;
            var mesLinkU9 = Db.Queryable<MesLinkU9>()
.Where(x => x.U9Id == erpDto.FMaterialId
    && x.OrgId == erpDto.FReceivingOrg
    && x.TableType == "MES_ITEMS").First();
                .Where(x => x.U9Id == erpDto.FMaterialId
                            && x.OrgId == erpDto.FReceivingOrg
                            && x.TableType == "MES_ITEMS").First();
            if (mesLinkU9 != null) salesOrderSub.MaterialId = mesLinkU9.MesId;
@@ -221,6 +226,4 @@
        return salesOrderSubList;
    }
}