南骏 池
2025-06-20 7b84eb64d11b12b6fb41ae7f7085452512ad5d3f
service/Wom/MesWorkProdManager.cs
@@ -84,7 +84,7 @@
        var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>(
                (a, b) =>
                    new JoinQueryInfos(JoinType.Inner,
                        a.BillNo == b.BillNo))
                        a.Id == b.MesWorkProdId))
            .Where((a, b) => b.ItemBarcode == request.ItemBarcode
                             && a.BillTypeId == billTypeId
                             && a.TransactionNo == transactionNo)
@@ -133,11 +133,11 @@
                db.Updateable<MesInvItemBarcodes>()
                    .SetColumns(x => new MesInvItemBarcodes
                    {
                        WorkFlg = true,
                        Quantity = reportQty
                        WorkFlg = true
                        //Quantity = reportQty
                    })
                    .Where(x => x.Guid == barcode.Guid)
                    .ExecuteCommandAsync();
                    .ExecuteCommand();
                // 11. 获取或创建报工单
                var workProd = db.Queryable<MesWorkProd>()
@@ -147,13 +147,15 @@
                                DateTime.Now.Date.ToString("yyyy-MM-dd")
                                && x.BillTypeId == billTypeId
                                && x.TransactionNo == transactionNo
                                && x.Status == 0)
                                && x.ReportBy == request.StaffNo)
                    .First();
                var id = Guid.Empty;
                var billNo = "";
                if (workProd == null)
                {
                    var id = Guid.NewGuid();
                    var billNo = BillNo.GetBillNo("BG(报工编号)");
                    id = Guid.NewGuid();
                    billNo = BillNo.GetBillNo("BG(报工)");
                    workProd = new MesWorkProd
                    {
@@ -168,11 +170,18 @@
                        LastupdateDate = DateTime.Now,
                        BillTypeId = billTypeId,
                        TransactionNo = transactionNo,
                        TaskNo = barcode.BillNo
                        TaskNo = barcode.BillNo,
                        ReportBy = request.StaffNo,
                        ReportDate = DateTime.Now
                    };
                    db.Insertable(workProd).IgnoreColumns(true)
                        .ExecuteCommand();
                }
                else
                {
                    id = workProd.Id;
                    billNo = workProd.BillNo;
                }
                // 12. 插入报工明细
@@ -180,7 +189,8 @@
                db.Insertable(new MesWorkProdCDetails
                {
                    Id = detailId,
                    BillNo = workProd.BillNo,
                    MesWorkProdId = id,
                    BillNo = billNo,
                    ItemBarcode = request.ItemBarcode,
                    Quantity = (int)reportQty,
                    Company = barcode.Company,
@@ -194,16 +204,17 @@
                    SilkPqty = barcode.SilkPqty,
                    SilkId = barcode.SilkId,
                    Silk = barcode.Silk,
                    BgYg = staff.Id
                    BgYg = request.StaffNo
                }).IgnoreColumns(true).ExecuteCommand();
                // 13. 更新工单已报工数量
                db.Updateable<Womdaa>()
                    .SetColumns(x =>
                        x.Daa011 == (x.Daa011 ?? 0) + (int)barcode.Quantity
                    )
                    .Where(x => x.Daa001 == barcode.BillNo)
                    .ExecuteCommandAsync();
                        .SetColumns(x => new Womdaa
                        {
                            Daa011 = (x.Daa011 ?? 0) + (int)barcode.Quantity
                        })
                        .Where(x => x.Daa001 == barcode.BillNo)
                        .ExecuteCommand();
                // 14. 重新获取最新已报工数量
                reportedQty = db.Queryable<MesWorkProd, MesWorkProdCDetails>(
@@ -222,7 +233,7 @@
        // 15. 返回处理结果
        return new ScanWorkResult
        {
            TaskNo = barcode.TaskNo,
            TaskNo = barcode.BillNo,
            ItemNo = item.ItemNo,
            PlanQty = planQty ?? 0,
            ReportedQty = reportedQty ?? 0,