啊鑫
2024-07-24 6bcfd2449dc18ad9455c365d18027663decf61e8
MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs
@@ -7,6 +7,13 @@
public class MesInvItemArnDetailManager : Repository<MesInvItemArnDetail>
{
    //var result = db.Ado.GetString($"SELECT f_getseqnextvalue('{sequenceName}') FROM DUAL");
    private readonly PurdhbManager purdhbManager = new();
    private readonly PurdkaManager purdkaManager = new();
    private readonly PurdkbManager purdkbManager = new();
    private readonly MesQaItemsDetect01Manager rohInDataManager = new();
    //当前类已经继承了 Repository 增、删、查、改的方法
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesInvItemArnDetailManager.cs
@@ -81,16 +88,9 @@
        return result;
    }
    //var result = db.Ado.GetString($"SELECT f_getseqnextvalue('{sequenceName}') FROM DUAL");
    private readonly PurdhbManager purdhbManager = new();
    private readonly PurdkaManager purdkaManager = new();
    private readonly PurdkbManager purdkbManager = new();
    private readonly MesQaItemsDetect01Manager rohInDataManager = new();
    public bool SetMaterial(Material material)
    {
        return UseTransaction(db =>
        var b1 = UseTransaction(db =>
        {
            var executeCommand = db.Updateable<MesInvItemArnDetail>()
                .SetColumns(s => s.CheckRes == "不合格")
@@ -103,50 +103,94 @@
            var mesQaItemsDetect01 = db.Queryable<MesQaItemsDetect01>()
                .Where(a => a.Id == material.FmesEntryId).Single();
            if (mesQaItemsDetect01 == null)
            {
                return 0;
            }
            if (mesQaItemsDetect01 == null) return 0;
            var suppName = db.Queryable<MesSupplier>()
                .Where(b => b.SuppNo == mesQaItemsDetect01.SuppNo)
                .Select<string>(b => b.SuppName).First();
            var CIdt = db.Ado.GetString(
                $"SELECT f_getseqnextvalue('mes_inv_item_ins') FROM DUAL");
                "SELECT f_getseqnextvalue('mes_inv_item_ins') FROM DUAL");
            var billNo = db.Ado.GetString(
                $"SELECT getbillcode1('1000', '1000', 'INV_IN_BACK') FROM DUAL");
                "SELECT getbillcode1('1000', '1000', 'INV_IN_BACK') FROM DUAL");
            // PURDKA
            var purdka = GetPurdka(CIdt, billNo, mesQaItemsDetect01, suppName);
            executeCommand += db.Insertable<Purdka>(purdka).ExecuteCommand();
            executeCommand += db.Insertable(purdka).ExecuteCommand();
            db.Queryable<Purdhb>()
                .Where(c => c.Dhb001 == mesQaItemsDetect01.LotNo
                            && c.Dhb003 == mesQaItemsDetect01.ItemNo)
                .Select(c => new Purdhb
                {
                    Dhb002 = c.Dhb002,
                    Dhb003 = c.Dhb003,
                    Dhb006 = c.Dhb006,
                    Dhb007 = c.Dhb007,
                    Dhb017 = c.Dhb017,
                    Dhb018 = c.Dhb018,
                    Dhb001 = c.Dhb001,
                    Dhb042 = c.Dhb042
                }).ToList();
            executeCommand += InsertPurdkbs(db, mesQaItemsDetect01, billNo);
            executeCommand += db.Updateable<MesQaItemsDetect01>()
                .SetColumns(c => c.Modify1Flag == 1)
                .SetColumns(c => c.Modify1By == material.UserName)
                .SetColumns(c => c.Modify1Date == DateTime.Now)
                .SetColumns(c => c.FngHandle == "退货")
                .Where(c => c.ReleaseNo == mesQaItemsDetect01.ReleaseNo)
                .ExecuteCommand();
            return executeCommand;
        }) > 3;
        }) >= 4;
        if (b1 == false) throw new NotImplementedException("推送失败,Mes方面出现问题");
        return b1;
    }
    private int InsertPurdkbs(SqlSugarScope db,
        MesQaItemsDetect01 mesQaItemsDetect01, string billNo)
    {
        var purdhbs = db.Queryable<Purdhb>()
            .Where(c => c.Dhb001 == mesQaItemsDetect01.LotNo
                        && c.Dhb003 == mesQaItemsDetect01.ItemNo)
            .Select(c => new Purdhb
            {
                Dhb002 = c.Dhb002,
                Dhb003 = c.Dhb003,
                Dhb006 = c.Dhb006,
                Dhb007 = c.Dhb007,
                Dhb017 = c.Dhb017,
                Dhb018 = c.Dhb018,
                Dhb001 = c.Dhb001,
                Dhb042 = c.Dhb042
            }).ToList();
        var list = new List<Purdkb>();
        purdhbs.ForEach(s =>
        {
            var id = db.Ado.GetString(
                "SELECT f_getseqnextvalue('MES_INV_ITEM_IN_C_DETAILS') FROM DUAL");
            var purdkb = new Purdkb();
            purdkb.Id = Convert.ToDecimal(id);
            purdkb.Dkb001 = billNo;
            purdkb.Dkb002 = s.Dhb002;
            purdkb.Dkb003 = s.Dhb003;
            purdkb.Dkb006 = s.Dhb006;
            purdkb.Dkb007 = s.Dhb006;
            purdkb.Dkb008 = 0;
            purdkb.Dkb009 = s.Dhb007;
            purdkb.Dkb010 = s.Dhb017;
            purdkb.Dkb011 = s.Dhb018;
            purdkb.Dkb012 = s.Dhb001;
            purdkb.Dkb013 = s.Dhb002;
            purdkb.Dkb016 = s.Dhb042;
            list.Add(purdkb);
        });
        var insertRange = db.Insertable(list).ExecuteCommand();
        return insertRange == purdhbs.Count ? 1 : 0;
    }
    private static Purdka GetPurdka(string CIdt, string billNo,
        MesQaItemsDetect01 mesQaItemsDetect01, string suppName)
    {
        var date = DateTime.Now.ToString("yyyy-MM-dd");
        Purdka purdka = new Purdka();
        var purdka = new Purdka();
        purdka.Id = Convert.ToDecimal(CIdt);
        purdka.Dka001 = billNo;
        purdka.Dka002 = "采购退货";