cnf
2025-11-24 336ef950ae9b3f89e09f1b64d68adf6e53a331b5
service/Wom/MesWorkProdManager.cs
@@ -3,6 +3,7 @@
using NewPdaSqlServer.entity;
using NewPdaSqlServer.entity.Base;
using NewPdaSqlServer.util;
using SharpCompress;
using SqlSugar;
using System.Data;
using System.Data.SqlClient;
@@ -294,31 +295,76 @@
        var po_outSum = parameters[3].Value != DBNull.Value ? Convert.ToInt32(parameters[3].Value) : -1;
        var po_womInBarSum = parameters[4].Value != DBNull.Value ? Convert.ToDecimal(parameters[4].Value) : 0m;
        var rksqOrder = Db.Queryable<MesInvItemIns>()
            .Where(x => x.RbillNo == barcode.BillNo && x.TransctionNo=="181" && x.CreateBy==request.StaffNo)
            .First();
        var sql = string.Format(@"SELECT A.item_barcode ItemBarcode,B.QUANTITY BgQuantity,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel
    FROM MES_INV_ITEM_IN_RKSQ_DETAILS A
    LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE
    LEFT JOIN MES_ITEMS C ON  B.ITEM_ID = C.item_id
    WHERE A.bill_no= '{0}' ORDER BY A.create_date DESC", rksqOrder.BillNo);
        // 声明变量在外层,确保在所有分支中都可访问
        MesInvItemIns rksqOrder = null;
        List<MesInvItemInRksqDetails> rksqDetails = new List<MesInvItemInRksqDetails>();
        List<MesInvItemInRksqDetails> itemDetails = new List<MesInvItemInRksqDetails>();
        var RKSQ = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql);
        if (po_outSum == 1)
        {
            rksqOrder = Db.Queryable<MesInvItemIns>()
        .LeftJoin<Womdaa>((a, daa) => a.TaskNo == daa.Daa001)
        .Where(a => a.Status == 0)
        .Where(a => a.TransctionNo == "181")
        .Where((a, daa) => daa.Daa029 == item.ItemNo)
        .Where((a, daa) => daa.Daa015 == workOrder.Daa015)
        .Where(a => a.InsDate.Value.Date == DateTime.Today)
        .First();
            if (rksqOrder != null)
            {
                var sql = string.Format(@"SELECT A.item_barcode ItemBarcode,B.QUANTITY BgQuantity,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel
FROM MES_INV_ITEM_IN_RKSQ_DETAILS A
LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE
LEFT JOIN MES_ITEMS C ON  B.ITEM_ID = C.item_id
WHERE A.bill_no= '{0}' ORDER BY A.create_date DESC", rksqOrder.BillNo);
        var rksqDetails = RKSQ.ToList();
                var sql1 = string.Format(@"SELECT
    SUM(ISNULL(B.QUANTITY,0)) as BgQuantity,
    c.item_no as ItemNo,
    c.item_name as ItemName,
    c.item_model as ItemModel,
    MAX(A.create_date) as LatestCreateDate  -- 添加这个字段
FROM MES_INV_ITEM_IN_RKSQ_DETAILS A
LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE
LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id
WHERE A.bill_no = '{0}'
GROUP BY c.item_no, c.item_name, c.item_model
ORDER BY MAX(A.create_date) DESC", rksqOrder.BillNo);
                rksqDetails = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql).ToList();
                itemDetails = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql1).ToList();
            }
        }
        else if (po_outSum == 2)
        {
            rksqOrder = Db.Queryable<MesInvItemIns>()
        .LeftJoin<Womdaa>((a, daa) => a.TaskNo == daa.Daa001)
        .Where(a => a.Status == 0)
        .Where(a => a.TransctionNo == "181")
        .Where((a, daa) => daa.Daa029 == item.ItemNo)
        .Where((a, daa) => daa.Daa015 == workOrder.Daa015)
        .Where(a => a.InsDate.Value.Date == DateTime.Today)
        .First();
        //var rksqDetails = Db.Queryable<MesInvItemInRksqDetails>()
        //    .Where(x => x.BillNo == )
        //    .ToList();
            if (rksqOrder != null)
            {
                rksqOrder.BillNo = "";
            }
            rksqDetails = new List<MesInvItemInRksqDetails>();
            itemDetails = new List<MesInvItemInRksqDetails>();
        }
        // Check if the procedure failed
        if (po_outSum == -1)
        {
            throw new Exception(po_outMsg);
        }
        // 处理rksqOrder为null的情况
        string sjBillNo = rksqOrder?.BillNo ?? "";
        // 15. Return processing result
        return new ScanWorkResult
@@ -332,8 +378,9 @@
            ItemName = item.ItemName,
            ItemModel = workOrder.Daa004,
            Message = po_outMsg,
            sjBillNo  = rksqOrder.BillNo,
            sjBillNo = sjBillNo,
            BarcodesDetail = rksqDetails,
            itemDetail = itemDetails
        };
    }
@@ -537,10 +584,25 @@
    LEFT JOIN MES_ITEMS C ON  B.ITEM_ID = C.item_id
    WHERE A.bill_no= '{0}'ORDER BY A.create_date DESC", rksqOrder.BillNo);
        var sql1 = string.Format(@"SELECT
    SUM(ISNULL(B.QUANTITY,0)) as BgQuantity,
    c.item_no as ItemNo,
    c.item_name as ItemName,
    c.item_model as ItemModel,
    MAX(A.create_date) as LatestCreateDate  -- 添加这个字段
FROM MES_INV_ITEM_IN_RKSQ_DETAILS A
LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE
LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id
WHERE A.bill_no = '{0}'
GROUP BY c.item_no, c.item_name, c.item_model
ORDER BY MAX(A.create_date) DESC", rksqOrder.BillNo);
        var RKSQ = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql);
        var wlhz = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql1);
        var rksqDetails = RKSQ.ToList();
        var wlhzDetails = wlhz.ToList();
        //var rksqDetails = Db.Queryable<MesInvItemInRksqDetails>()
@@ -551,6 +613,7 @@
        return new ScanWorkResult
        {
            BarcodesDetail = rksqDetails,
            itemDetail = wlhzDetails
        };
    }
@@ -564,7 +627,7 @@
            throw new Exception("请先选择人员");
        var rksqOrder = Db.Queryable<MesInvItemIns>()
            .Where(x => x.TransctionNo=="181"&& x.Status == 0 && x.CreateBy== request.StaffNo)
            .Where(x => x.TransctionNo=="181"&& x.Status == 0)
            .ToList();
        return new ScanWorkResult