service/Wom/WwGdManager.cs
@@ -58,7 +58,9 @@
                        daa001 = query.daa001,
                        barcodeNum = barcodeNum,
                        splitNum = splitNum,
                        barcode = query.barcode
                        barcode = query.barcode,
                        strMsg = _strMsg,
                        result = _intSum
                    };
                    return dto;
@@ -147,7 +149,7 @@
        var wwgd = Db.Queryable<WwGd, MesItems>((a, i) =>
                new JoinQueryInfos(JoinType.Left,
                    a.Daa003 == i.ItemId))
            .Where((a, i) => a.Daa001 == query.daa001)
            .Where((a, i) => a.Daa001 == query.daa001 && (a.PcSh ?? 0) == 1)
            .Select((a, i) => new
            {
                a.Daa001, a.RwdGuid
@@ -162,8 +164,7 @@
                        JoinType.Left,
                        a.Id == b.Pid,
                        JoinType.Inner,
                        c.Id ==
                        b.Dab003,
                        c.Id == b.Dab003,
                        JoinType.Inner, b.Erpid.ToString() == d.ErpId
                    ))
            .Where((a, b, c, d) =>
@@ -668,6 +669,11 @@
            .Where(a => a.Daa001 == query.billNo)
            .First();
        // 检查工单信息
        var WWRWD = Db.Queryable<ProductionOrder>()
            .Where(a => a.OrderNo == wwgd.Daa014)
            .First();
        if (wwgd == null)
            throw new Exception($"工单 {query.billNo} 不存在,请确认!");
@@ -678,6 +684,11 @@
        if (womdab == null)
            throw new Exception($"备料明细不存在此物料 {stockBarcode.ItemNo} 请确认!");
        var depots = Db.Queryable<MesDepots>()
            .Where(t => t.DepotId == stockBarcode.DepotId)
            .First();
        if (stockBarcode.Quantity > quantity)
        {
@@ -707,13 +718,24 @@
        // 开启事务处理
        var success = UseTransaction(db =>
        {
            query.Type = "委外补料";
            var outNoType = "WWBL(委外补料)";
            if (query.Type == "生产补料")
            {
                outNoType = "SCBL(生产补料)";
            }
            else
            {
                outNoType = "SCCL(生产超领)";
            }
            outNoType = "WWBL(委外补料)";
            // 获取或创建出库单
            var outId = Guid.NewGuid();
            var outNo = BillNo.GetBillNo("BL(工单补料)");
            var outNo = BillNo.GetBillNo(outNoType);
            var existingOut = db.Queryable<MesInvItemOuts>()
                .Where(a => a.BbillNo == query.blNo
                            && a.DepotCode == womdab.Dab017
                .Where(a => a.TaskNo == query.blNo
                            && a.DepotId == stockBarcode.DepotId
                            && a.OutDate.Value.Date.ToString("yyyy-MM-dd") ==
                            DateTime.Now.Date.ToString("yyyy-MM-dd")
                            && a.BillTypeId == 200
@@ -741,33 +763,36 @@
                    BillTypeId = 200,
                    TransactionNo = 209,
                    Remark = mesItemBl.Bl007,
                    DepotCode = womdab.Dab017,
                    OutPart = wwgd.Daa013.ToString(),
                    DepotCode = depots.DepotCode,
                    OutPart = wwgd.DepartId.ToString(),
                    OutType = query.Type,
                    FType = 0,
                    Factory = stockBarcode.Factory,
                    Company = stockBarcode.Company,
                    // WorkNo = wwgd.Daa021,
                    // BoardItem = wwgd.Daa002,
                    WorkNo = WWRWD.ErpProductionOrderNo,
                    BoardItem = wwgd.Daa003.ToString(),
                    PbillNo = wwgd.Daa001,
                    OutDate = DateTime.Now,
                    Status = 0,
                    BbillNo = query.blNo
                    DepotId = stockBarcode.DepotId,
                    THORGID = stockBarcode.StockOrgId,
                    //BbillNo = query.billNo
                }).IgnoreColumns(true).ExecuteCommand();
            }
            // 检查并更新出库单物料明细
            var itemCount = db.Queryable<MesInvItemOutItems>()
                .Where(i =>
                    i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId)
                    i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && i.ItemOutId == outId && i.DepotId == stockBarcode.DepotsId.ToString())
                .Count();
            if (itemCount > 0)
                // 更新已存在的物料明细数量
                db.Updateable<MesInvItemOutItems>()
                    .SetColumns(i =>
                        i.Quantity == i.Quantity + stockBarcode.Quantity)
                        i.TlQty == i.TlQty + stockBarcode.Quantity)
                    .Where(i =>
                        i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId)
                        i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && i.ItemOutId == outId && i.DepotId == stockBarcode.DepotsId.ToString())
                    .ExecuteCommand();
            else
                // 插入新的物料明细记录
@@ -777,21 +802,24 @@
                    ItemOutId = outId,
                    ItemNo = blDetail.Bld002,
                    Quantity = stockBarcode.Quantity,
                    TlQty = stockBarcode.Quantity,
                    CreateBy = query.userName,
                    CreateDate = DateTime.Now,
                    LastupdateBy = query.userName,
                    LastupdateDate = DateTime.Now,
                    Factory = stockBarcode.Factory,
                    Company = stockBarcode.Company,
                    DepotCode = womdab.Dab017,
                    DepotCode = depots.DepotCode,
                    TaskNo = query.blNo,
                    // WorkNo = wwgd.Daa021,
                    WorkNo = WWRWD.ErpProductionOrderNo,
                    WorkLine = blDetail.Bld013,
                    ErpItemNo = womdab.Dab003.ToString(),
                    ErpId = womdab.Eid,
                    ErpAutoid = womdab.Erpid,
                    PbillNo = query.billNo,
                    ItemId = blDetail.Bld012
                    ItemId = blDetail.Bld012,
                    DepotId = stockBarcode.DepotsId.ToString(),
                    ItemDabid = womdab.Id,
                    // Unit = blDetail.Bld009,
                    // DepotId = (int)stockBarcode.DepotsId
                }).IgnoreColumns(true).ExecuteCommand();
@@ -810,7 +838,7 @@
                CreateDate = DateTime.Now,
                LastupdateBy = query.userName,
                LastupdateDate = DateTime.Now,
                DepotCode = stockBarcode.DepotsCode,
                DepotCode = depots.DepotCode,
                DepotSectionCode = stockBarcode.DepotSectionsCode,
                Remark = blDetail.Bld010,
                Factory = stockBarcode.Factory,
@@ -835,7 +863,7 @@
                Guid = Guid.NewGuid(),
                Status = 1,
                BillTypeId = 200, // p_bill_type_id
                TransactionCode = "210", // p_transaction_no
                TransactionCode = "209", // p_transaction_no
                BusinessType = -1,
                ItemBarcode = stockBarcode.ItemBarcode,
                ItemNo = stockBarcode.ItemNo,
@@ -871,6 +899,7 @@
                .Where(it => it.Id == womdab.Id && it.Dab003 == womdab.Dab003)
                .ExecuteCommand();
            // 更新补料单明细已补数量
            db.Updateable<MesItemBlDetail>()
                .SetColumns(it => new MesItemBlDetail