111
啊鑫
4 天以前 96ee6437185cc02f17a8286967fd0f0eb88d9328
MES.Service/service/BasicData/SalesOrderManager.cs
@@ -57,17 +57,17 @@
        int update = 0;
        int insertOrUpdate = 0;
        if (mesSalesOrder.ErpID != null)
        if (mesSalesOrder.ErpId != null)
        {
            update = db.Deleteable<SalesOrder>()
                .Where(s => s.ErpID == mesSalesOrder.ErpID)
                .Where(s => s.ErpId == mesSalesOrder.ErpId)
                .ExecuteCommand();
        }
        if (mesSalesOrderDatas.Count > 0 && mesSalesOrder.ErpID != null)
        if (mesSalesOrderDatas.Count > 0 && mesSalesOrder.ErpId != null)
        {
            insertOrUpdate = db.Deleteable<SalesOrderDetail>()
                .Where(s => s.EHID == mesSalesOrder.ErpID)
                .Where(s => s.EHid == mesSalesOrder.ErpId)
                .ExecuteCommand();
        }
@@ -86,13 +86,13 @@
    {
        //if (mesSalesOrder.Id != null) base.DeleteById(mesSalesOrder.Id);
        if (mesSalesOrder.ErpID != null)
        if (mesSalesOrder.ErpId != null)
            db.Deleteable<SalesOrder>()
                .Where(s => s.ErpID == mesSalesOrder.ErpID).ExecuteCommand();
                .Where(s => s.ErpId == mesSalesOrder.ErpId).ExecuteCommand();
        if (mesSalesOrderDatas.Count > 0)
            db.Deleteable<SalesOrderDetail>()
                .Where(s => s.EHID == mesSalesOrder.ErpID).ExecuteCommand();
                .Where(s => s.EHid == mesSalesOrder.ErpId).ExecuteCommand();
        //var orUpdate = base.Insert(mesSalesOrder);
        //var baOrUpdate = _SalesOrderDetailManager.InsertRange(mesSalesOrderDatas);
@@ -138,7 +138,7 @@
        {
            Id = Guid.NewGuid(),
            BillNo = erpDto.FBillNo,
            ErpID = Convert.ToDecimal(erpDto.ErpID),
            ErpId = Convert.ToDecimal(erpDto.ErpID),
            FDate = ParseDateTime(erpDto.FDate) ?? null,
            BillTypeId = erpDto.FBillTypeID, // 单据类型
            DocumentStatus = erpDto.FDocumentStatus, // 单据状态
@@ -180,7 +180,9 @@
                : null,  // 变更日期
            CancelStatus = erpDto.FCancelStatus, // 作废状态
            CancellerId = erpDto.FCancellerId, // 作废人
            VersionNo = Convert.ToDouble(erpDto.FVersionNo), // 版本号
            VersionNo = !string.IsNullOrEmpty(erpDto.FVersionNo)
                ? Convert.ToInt32(erpDto.FVersionNo)
                : 0, // 版本号
            ChangerId = erpDto.FChangerId, // 变更人
            SynchronousDate = DateTime.Now
            //EntryNote = erpDto.FEntryNote // 备注
@@ -195,8 +197,37 @@
            ? (DateTime?)null
            : DateTime.ParseExact(erpDto.FCloseDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
        var single = base.GetSingle(it => it.ErpID == Convert.ToDecimal(erpDto.ErpID));
        var single = base.GetSingle(it => it.ErpId == Convert.ToDecimal(erpDto.ErpID));
        if (single != null) salesOrder.Id = single.Id;
        // CUST_ID => MES_CUSTOMER.id
        if (!string.IsNullOrEmpty(salesOrder.CustId))
        {
            var customer = Db.Queryable<MesCustomer>()
                .Where(c => c.CustNo == salesOrder.CustId)
                .Select(c => c.Id)
                .First();
            if (customer != null)
            {
                salesOrder.CustId = customer.ToString();
            }
        }
        // SALE_DEPT_ID => SYS_DEPARTMENT.id
        if (!string.IsNullOrEmpty(salesOrder.SaleDeptId))
        {
            var department = Db.Queryable<SysDepartment>()
                .Where(d => d.Departmentcode == salesOrder.SaleDeptId)
                .Select(d => d.Id)
                .First();
            if (department != null)
            {
                salesOrder.SaleDeptId = department.ToString();
            }
        }
        // SALE_ORG_ID => 1 (固定值)
        salesOrder.SaleOrgId = "1";
        return salesOrder;
    }
@@ -213,18 +244,30 @@
            var salesOrderSub = new SalesOrderDetail
            {
                Pid = salesOrder.Id,
                ErpID = Convert.ToDecimal(erpDto.ErpID),
                EHID = Convert.ToDecimal(erpDto.EHID),
                ErpId = !string.IsNullOrEmpty(erpDto.ErpID)
                    ? Convert.ToInt32(erpDto.ErpID)
                    : 0,
                EHid = !string.IsNullOrEmpty(erpDto.EHID)
                    ? Convert.ToInt32(erpDto.EHID)
                    : 0,
                MaterialId = erpDto.FMaterialId,
                MapId = erpDto.FMapId,
                MapName = erpDto.FMapName,
                MapSpec = erpDto.FMapSpec,
                Seq = Convert.ToInt32(erpDto.Seq),
                Seq = !string.IsNullOrEmpty(erpDto.Seq)
                    ? Convert.ToInt32(erpDto.Seq)
                    : 0,
                UnitId = erpDto.FUnitID,
                Qty = Convert.ToDecimal(erpDto.FQty),
                Qty = !string.IsNullOrEmpty(erpDto.FQty)
                    ? Convert.ToDecimal(erpDto.FQty)
                    : 0,
                PriceUnitId = erpDto.FPriceUnitId,
                PriceUnitQty = Convert.ToDecimal(erpDto.FPriceUnitQty),
                DeliveryDate = Convert.ToDateTime(erpDto.FDeliveryDate),
                PriceUnitQty = !string.IsNullOrEmpty(erpDto.FPriceUnitQty)
                    ? Convert.ToDecimal(erpDto.FPriceUnitQty)
                    : 0,
                DeliveryDate = !string.IsNullOrEmpty(erpDto.FDeliveryDate)
                    ? Convert.ToDateTime(erpDto.FDeliveryDate)
                    : DateTime.MinValue,
                IsFree = erpDto.FIsFree,
                SupplyOrgId = erpDto.FSupplyOrgId,
                StockOrgId = erpDto.FStockOrgId,
@@ -236,8 +279,12 @@
                EntryNote = erpDto.FEntryNote,
                MtoNo = erpDto.FMtoNo,
                Lot = erpDto.FLot,
                DeliveryMaxQty = Convert.ToDecimal(erpDto.FDeliveryMaxQty),
                DeliveryMinQty = Convert.ToDecimal(erpDto.FDeliveryMinQty),
                DeliveryMaxQty = !string.IsNullOrEmpty(erpDto.FDeliveryMaxQty)
                    ? Convert.ToDecimal(erpDto.FDeliveryMaxQty)
                    : 0,
                DeliveryMinQty = !string.IsNullOrEmpty(erpDto.FDeliveryMinQty)
                    ? Convert.ToDecimal(erpDto.FDeliveryMinQty)
                    : 0,
                OutLmtUnitId = erpDto.FOutLmtUnitID,
                MrpCloseStatus = erpDto.FMrpCloseStatus,
                MrpTerminateStatus = erpDto.FMrpTerminateStatus,
@@ -245,13 +292,24 @@
                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),
                DeliQty = !string.IsNullOrEmpty(erpDto.FDeliQty)
                    ? Convert.ToDecimal(erpDto.FDeliQty)
                    : 0,
                StockOutQty = !string.IsNullOrEmpty(erpDto.FStockOutQty)
                    ? Convert.ToDecimal(erpDto.FStockOutQty)
                    : 0,
                BaseRetNoticeQty = !string.IsNullOrEmpty(erpDto.FBaseRetNoticeQty)
                    ? Convert.ToDecimal(erpDto.FBaseRetNoticeQty)
                    : 0,
                BaseReturnQty = !string.IsNullOrEmpty(erpDto.FBaseReturnQty)
                    ? Convert.ToDecimal(erpDto.FBaseReturnQty)
                    : 0,
                BaseRemainOutQty = !string.IsNullOrEmpty(erpDto.FBaseRemainOutQty)
                    ? Convert.ToDecimal(erpDto.FBaseRemainOutQty)
                    : 0,
                Basearqty = !string.IsNullOrEmpty(erpDto.FBASEARQTY)
                    ? Convert.ToDecimal(erpDto.FBASEARQTY)
                    : 0,
            };
            if (!string.IsNullOrEmpty(salesOrderSub.TerminaterId))
@@ -260,9 +318,70 @@
                : DateTime.ParseExact(erpDto.FTerminateDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
            var single = _SalesOrderDetailManager.GetSingle(it =>
                it.ErpID == Convert.ToDecimal(salesOrderSub.ErpID));
                it.ErpId == Convert.ToDecimal(salesOrderSub.ErpId));
            if (single != null) salesOrderSub.Id = single.Id;
            // material_id => MES_ITEMS.id
            if (!string.IsNullOrEmpty(salesOrderSub.MaterialId))
            {
                var item = Db.Queryable<MesItems>()
                    .Where(i => i.ItemNo == salesOrderSub.MaterialId)
                    .Select(i => i.Id)
                    .First();
                if (item != null)
                {
                    salesOrderSub.MaterialId = item.ToString();
                }
            }
            // UNIT_ID => MES_UNIT.id
            if (!string.IsNullOrEmpty(salesOrderSub.UnitId))
            {
                var unit = Db.Queryable<MesUnit>()
                    .Where(u => u.Fnumber == salesOrderSub.UnitId)
                    .Select(u => u.Id)
                    .First();
                if (unit != null)
                {
                    salesOrderSub.UnitId = unit.ToString();
                }
            }
            // PRICE_UNIT_ID => MES_UNIT.id
            if (!string.IsNullOrEmpty(salesOrderSub.PriceUnitId))
            {
                var priceUnit = Db.Queryable<MesUnit>()
                    .Where(u => u.Fnumber == salesOrderSub.PriceUnitId)
                    .Select(u => u.Id)
                    .First();
                if (priceUnit != null)
                {
                    salesOrderSub.PriceUnitId = priceUnit.ToString();
                }
            }
            // OUT_LMT_UNIT_ID => MES_UNIT.id
            if (!string.IsNullOrEmpty(salesOrderSub.OutLmtUnitId))
            {
                var outLmtUnit = Db.Queryable<MesUnit>()
                    .Where(u => u.Fnumber == salesOrderSub.OutLmtUnitId)
                    .Select(u => u.Id)
                    .First();
                if (outLmtUnit != null)
                {
                    salesOrderSub.OutLmtUnitId = outLmtUnit.ToString();
                }
            }
            // SUPPLY_ORG_ID => 1 (固定值)
            salesOrderSub.SupplyOrgId = "1";
            // STOCK_ORG_ID => 1 (固定值)
            salesOrderSub.StockOrgId = "1";
            // SETTLE_ORG_IDS => 1 (固定值)
            salesOrderSub.SettleOrgIds = "1";
            salesOrderSubList.Add(salesOrderSub);
        }