xwt
7 天以前 89b4e034c1c6157a71c5bf323055e989f420b588
StandardInterface/MES.Service/service/QC/LljService.cs
@@ -1,10 +1,12 @@
using System.Data;
using System.Xml;
using Masuit.Tools;
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
using Tea.Utils;
using DbType = System.Data.DbType;
@@ -22,23 +24,36 @@
        var totalCount = 0;
        //var itemIds = GetQaItem(db, queryObj.createUser);
        var pageList = db.Queryable<LtsLlj>()
        var pageList = db.Queryable<LtsLlj, IqcBefore, SysUser,
                IqcBeforeFrom, SysUser, SysUser>((a, b,
                    e, f, g, i) =>
                new JoinQueryInfos(JoinType.Left, a.ItemId == b.ItemId,
                    JoinType.Left, a.CreateBy == e.Fcode,
                    JoinType.Left, f.Id == b.Pid,
                    JoinType.Left, f.Sid == Convert.ToDecimal(g.Fid),
                    JoinType.Left, f.CheckUser == i.Fcode
                ))
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                "未完成".Equals(queryObj.result),
                a => a.FcheckResu == null)
                (a, b,
                    e, f, g, i) => a.FcheckResu == null)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                !"未完成".Equals(queryObj.result),
                a => a.FcheckResu != null)
            .WhereIF(id > 0, a => a.Id == id)
                (a, b,
                    e, f, g, i) => a.FcheckResu != null)
            .WhereIF(id > 0, (a, b,
                    e, f, g, i) => a.Id == id)
            .WhereIF(queryObj.createUser != "PL017" && queryObj.UserIndex == "0", (a, b,
                    e, f, g, i) => (g.Fcode == queryObj.createUser || i.Fcode == queryObj.createUser ||
                                   (g.Fcode == null && i.Fcode == null)))//判断此单的检验员,或者检验为空就显示此单据
            //加筛选条件,根据供应商,物料编码,物料名称搜索
            //.WhereIF(queryObj.SearchValue!=null && queryObj.SearchValue!="", (a) => a.SuppName == queryObj.SearchValue|| a.ItemName == queryObj.SearchValue || a.ItemNo == queryObj.SearchValue )
            .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue),
                a => a.SuppName.ToLower()
                (a, b,
                    e, f, g, i) => a.SuppName.ToLower()
                         .Contains(queryObj.SearchValue.ToLower())
                     || a.ItemName.ToLower()
                         .Contains(queryObj.SearchValue.ToLower())
@@ -50,10 +65,20 @@
                        .Contains(queryObj.SearchValue.ToLower())
                     || a.ItemModel.ToLower()
                        .Contains(queryObj.SearchValue.ToLower()))
            .OrderByDescending(a => a.Id)
            .OrderByDescending((a, b,
                    e, f, g, i) => a.Id)
            //.Select((a, b,
            //        e, f, g, i) => new LtsLlj
            //        {
            //            //UserName = g.Fname,
            //            //UserName = (i.Fname!=null ||i.Fname!="") ? i.Fname : g.Fname,
            //            UserName = i.Fname != null || i.Fname != "" ? i.Fname : g.Fname,
            //            CreateUserName = e.Fname
            //        }, true)
            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
        var emergencyValues = pageList.Select(item => item.EMERGENCY).ToList();
        //return (pageList, totalCount);
        return (pageList, totalCount);
    }
@@ -101,6 +126,92 @@
        msg[1] = messageValue;
        return msg;
    }
    //紧急放行
    public string[] EmergencyRelease(int id)
    {
        var db = SqlSugarHelper.GetInstance();
        int emergencyStatus = db.Queryable<MesQaItemsDetect01>()
                                .Where(t => t.Id == id)
                                .Select(t => t.EMERGENCY)
                                .First();
        if (emergencyStatus != 0)
        {
            return new string[] { "1", "非紧急状态,无法执行紧急放行" };
        }
        var outputResult = new SugarParameter("PO_RESULT", null,
            DbType.Int32, ParameterDirection.Output, 4000);
        var outputMessage = new SugarParameter("PO_MSG", null,
            DbType.String, ParameterDirection.Output, 4000);
        var parameters = new List<SugarParameter>
    {
        new("P_ID", id, DbType.Int32, ParameterDirection.Input),
        outputResult,
        outputMessage
    };
        db.Ado.ExecuteCommand(
            "BEGIN prc_MES_QA_ITEMS_update1(:P_ID, :PO_RESULT, :PO_MSG); END;",
            parameters.ToArray());
        var lotNo1 = db.Queryable<MesQaItemsDetect01>()
                   .Where(t => t.Id == id)
                   .Select(t => t.LotNo1)
                   .First();
        var resultValue = outputResult.Value?.ToString();
        var messageValue = outputMessage.Value?.ToString();
        return new string[] { resultValue, messageValue, lotNo1?.ToString() ?? "" };
    }
    public string[] WithdrawEmergencyRelease(int id)
    {
        var db = SqlSugarHelper.GetInstance();
        int emergencyStatus = db.Queryable<MesQaItemsDetect01>()
                                .Where(t => t.Id == id)
                                .Select(t => t.EMERGENCY)
                                .First();
        if (emergencyStatus != 0)
        {
            return new string[] { "1", "非紧急状态,无需撤回" };
        }
        var outputResult = new SugarParameter("PO_RESULT", null,
            DbType.Int32, ParameterDirection.Output, 4000);
        var outputMessage = new SugarParameter("PO_MSG", null,
            DbType.String, ParameterDirection.Output, 4000);
        var parameters = new List<SugarParameter>
    {
        new("P_ID", id, DbType.Int32, ParameterDirection.Input),
        outputResult,
        outputMessage
    };
        db.Ado.ExecuteCommand(
            "BEGIN prc_MES_QA_ITEMS_update2(:P_ID, :PO_RESULT, :PO_MSG); END;",
            parameters.ToArray());
        var lotNo1 = db.Queryable<MesQaItemsDetect01>()
                   .Where(t => t.Id == id)
                   .Select(t => t.LotNo1)
                   .First();
        var resultValue = outputResult.Value?.ToString();
        var messageValue = outputMessage.Value?.ToString();
        return new string[] { resultValue, messageValue, lotNo1?.ToString() ?? "" };
    }
    private string ExtractSubstring(string input, char startChar, char endChar)
@@ -194,7 +305,7 @@
                a.FreQty,
                a.CheckQyt,
                a.FcheckResu,
                a.FcheckItemDesc
                a.FcheckItemDesc,a.Funit
            }).Select((a, b) => new MesQaItemsDetectDetail5
            {
                Id = a.Id,
@@ -215,7 +326,8 @@
                FenterQty = SqlFunc.AggregateCount(b.Id),
                FcheckResu = a.FcheckResu,
                // FcheckItemDesc = a.FcheckItemDesc
                FcheckItemDesc = a.FspecRequ
                FcheckItemDesc = a.FspecRequ,
                Funit  =a.Funit
            }).ToList();
    }