11
啊鑫
3 天以前 646ac6f3e1e77d0481e46ea15a6eb6db4ecba065
MES.Service/service/QC/RKJService.cs
@@ -1,4 +1,6 @@
using MES.Service.DB;
using System.Net.NetworkInformation;
using Masuit.Tools.Models;
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
@@ -57,10 +59,6 @@
    public List<RkDaa002> GetDaa001s(string lineNo)
    {
        var db = SqlSugarHelper.GetInstance();
        // return db.Queryable<RKJDaa001>()
        //     .Where(t => t.LineNo == lineNo)
        //     .OrderBy(t => t.BillNo, OrderByType.Desc)
        //     .ToList();
        return null;
    }
@@ -230,10 +228,15 @@
        {
            var commit = 0;
            xj.CreateBy = userNo;
            xj.CreateDate = DateTime.Now;
            // xj.CreateBy = userNo;
            // xj.CreateDate = DateTime.Now;
            var pid = db.Insertable(xj).ExecuteReturnIdentity();
            var qsItemOqcReq = db.Queryable<QsItemOqcReq>()
                .Where(s => s.Id == xj.Id)
                .First();
            decimal? pid = 0;
            pid = qsItemOqcReq == null ? db.Insertable(xj).ExecuteReturnIdentity() : qsItemOqcReq.Id;
            xj.Id = pid;
@@ -402,9 +405,26 @@
                .ExecuteCommand();
        });
        if (FcheckResu.Equals("不合格"))
            //自动生成入库检异常对策
            saveDetect02(detail.Gid, detail.CreateBy);
        //if (FcheckResu.Equals("不合格"))
        //    //自动生成入库检异常对策
        //    saveDetect02(detail.Gid, detail.CreateBy);
       var oqcReq = db.Queryable<QsItemOqcReq>()
                .Where(s => s.Id == detail.Gid)
                .Select<string?>(s=>s.BillNo)
                .First();
        if (oqcReq != null)
        {
            //FSTATUS
            //CHECK_RES
            db.Updateable<MesInvItemIns>()
                .SetColumns(s => s.Fstatus == 1)
                .SetColumns(s=>s.CheckRes == FcheckResu)
                .Where(s => s.BillNo == oqcReq)
                .ExecuteCommand();
        }
        return useTransactionWithOracle;
    }
@@ -454,48 +474,61 @@
    }
    public List<QsItemOqcReq> getPage(XJPageResult queryObj)
    public (List<QsItemOqcReq> items, int TotalCount) getPage(XJPageResult queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
        return db
            .Queryable<QsItemOqcReq, Womdaa, MesItems, MesInvItemIns, Womdab,
                MesInvTransaction, RKJDaa001>(
                (a, da, b, c, d, ca, m) => new JoinQueryInfos(
                    JoinType.Left, da.Daa001 == a.BillNo,
                    JoinType.Left, a.ItemId == b.Id,
                    JoinType.Left, a.BillNo == c.BillNo,
                    JoinType.Left, c.CbillNo == d.Dab001,
                    JoinType.Left,
                    c.TransctionNo == ca.TransactionNo.ToString() &&
                    c.Company == ca.Company && c.Factory == ca.Factory,
                    JoinType.Left, c.Id == m.ItemInId && a.ItemNo == m.ItemNo
                ))
            .Select((a, da, b, c, d, ca, m) => new QsItemOqcReq
            {
                BillNo = a.BillNo,
                Remarks = a.Remarks,
                Id = a.Id,
                CreateDate = a.CreateDate,
                CreateBy = a.CreateBy,
                FcheckResu = a.FcheckResu,
                ItemNo = a.ItemNo,
                FcheckBy = a.FcheckBy,
                FcheckDate = a.FcheckDate,
                ReleaseNo = a.ReleaseNo,
                // 添加其他字段
                // 如果在 QsItemOqcReq 中定义了额外字段,则需要将它们赋值
                // 例如:
                ItemName = b.ItemName,
                ItemModel = b.ItemModel,
                TaskNo = c.TaskNo,
                CbillNo = c.CbillNo,
                Dab001 = d.Dab001,
                Daa015 = da.Daa015,
                LineNo = c.LineNo,
                Quantity = m.Quantity
            }).OrderBy(a => a.CreateDate, OrderByType.Desc)
            .ToPageList(queryObj.PageIndex, queryObj.Limit);
        var totalCount = 0;
        var qsItemOqcReqs = db.Queryable<QsItemOqcReq, MesItems, MesInvItemIns, Womdaa, MesInvTransaction, RKJDaa001, MesLine>(
                 (a, b, c, da, ca, m, l) => new JoinQueryInfos(
                     JoinType.Left, a.ItemNo == b.Id.ToString(),
                     JoinType.Left, a.BillNo == c.BillNo,
                     JoinType.Left, da.Daa001 == c.RbillNo,
                     JoinType.Left, c.TransctionNo == ca.TransactionNo.ToString()
                                   && c.Company == ca.Company
                                   && c.Factory == ca.Factory,
                     JoinType.Left, m.ItemInId == c.Id,
                     JoinType.Left, l.LineNo == da.Daa015
                 ))
             //.WhereIF(!"PL017".Equals(queryObj.createUser),
             //    (a, b, c, da, ca, m) => lineNo.Contains(da.Daa015))
             .WhereIF(!string.IsNullOrEmpty(queryObj.id), (a, b, c, da, ca, m, l) => a.Id.ToString() == queryObj.id)
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.result) && "未完成".Equals(queryObj.result),
                 (a, b, c, da, ca, m, l) => a.FcheckResu == null)
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.result) && !"未完成".Equals(queryObj.result),
                 (a, b, c, da, ca, m, l) => a.FcheckResu != null)
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.SearchValue),
                 (a, b, c, da, ca, m, l) => a.ReleaseNo.Contains(queryObj.SearchValue)
                 || b.ItemNo.Contains(queryObj.SearchValue)
                 )
             .Select((a, b, c, da, ca, m, l) => new QsItemOqcReq
             {
                 BillNo = a.BillNo,
                 Remarks = a.Remarks,
                 Id = a.Id,
                 CreateDate = a.CreateDate,
                 CreateBy = a.CreateBy,
                 FcheckResu = a.FcheckResu,
                 ItemNo = b.ItemNo,
                 FcheckBy = a.FcheckBy,
                 FcheckDate = a.FcheckDate,
                 ReleaseNo = a.ReleaseNo,
                 ItemName = b.ItemName,
                 ItemModel = b.ItemModel,
                 TaskNo = c.RbillNo,
                 //CbillNo = c.CbillNo,
                 //LineNo = da.Daa015,
                 LineNo = l.LineName,
                 Quantity = m.Quantity
             })
             .OrderBy(a => a.CreateDate, OrderByType.Desc)
             .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
        return (qsItemOqcReqs, totalCount);
    }
    //删除主表并且连级删除子表和孙表
@@ -648,4 +681,28 @@
        return Convert.ToInt32(rkjDto.gid);
    }
    public List<MesInvItemInCDetails2> GetRKDetail(RKJDto rkjDto)
    {
        //物料条码和物料编码,数量   MES_INV_ITEM_IN_C_DETAILS2
        var db = SqlSugarHelper.GetInstance();
        var oqcReq = db.Queryable<QsItemOqcReq>()
                .Where(s => s.Id == rkjDto.gid)
                .Select<string?>(s => s.BillNo)
                .First();
        if (oqcReq != null)
        {
            //FSTATUS
            //CHECK_RES
           var mesInvItemIns = db.Queryable<MesInvItemIns>()
                .Where(s => s.BillNo == oqcReq).First();
           return db.Queryable<MesInvItemInCDetails2>()
                .Where(a=>a.ItemInId == mesInvItemIns.Id).ToList();
        }
        return new List<MesInvItemInCDetails2>();
    }
}