南骏 池
6 天以前 4910c0fa81d93635e19a57c073c3a62c76053320
service/QC/LljService.cs
@@ -1,12 +1,12 @@
using System.Data;
using MES.Service.Models;
using Microsoft.IdentityModel.Tokens;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.entity.Base;
using NewPdaSqlServer.util;
using SqlSugar;
using DbType = System.Data.DbType;
using static Azure.Core.HttpHeader;
namespace NewPdaSqlServer.service.QC;
@@ -17,7 +17,7 @@
        var parsedGuid = Guid.Empty;
        if (!queryObj.id.IsNullOrEmpty())
        {
            bool isValid = Guid.TryParse(queryObj.id, out parsedGuid);
            var isValid = Guid.TryParse(queryObj.id, out parsedGuid);
            if (!isValid)
                throw new ApplicationException("GUID转换错误");
        }
@@ -26,16 +26,26 @@
        var totalCount = 0;
        var pageList = Db.Queryable<LLJView>()
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                "未完成".Equals(queryObj.result),
                a => a.FcheckResu == null)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                !"未完成".Equals(queryObj.result),
                a => a.FcheckResu != null)
            //.WhereIF(
            //    StringUtil.IsNotNullOrEmpty(queryObj.result) &&
            //    "未完成".Equals(queryObj.result),
            //    a => (a.STATUS ?? "") != "已提交")
            //    //a => (a.FcheckResu ?? "") == ""|| (a.FcheckResu ?? "") == "检验中")
            //.WhereIF(
            //    StringUtil.IsNotNullOrEmpty(queryObj.result) &&
            //    !"未完成".Equals(queryObj.result),
            //    a => (a.STATUS ?? "") == "已提交")
            .WhereIF(!string.IsNullOrWhiteSpace(queryObj.keyword), a =>
                a.ItemNo.Contains(queryObj.keyword) ||
                a.ItemName.Contains(queryObj.keyword) ||
                a.LotNo.Contains(queryObj.keyword) ||
                a.ReleaseNo.Contains(queryObj.keyword) ||
                a.SuppName.Contains(queryObj.keyword)
            )
            .WhereIF(UtilityHelper.CheckGuid(parsedGuid),
                a => a.guid == parsedGuid)
                a => a.guid == parsedGuid )
            .Where(a => (a.fsubmit ?? 0) == 0)
            .OrderByDescending(a => a.CreateDate)
            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
@@ -62,7 +72,7 @@
                    FcheckItem = b.FcheckItem,
                    FdownAllow = b.FdownAllow,
                    FcheckLevel = b.FREQUENCY,
                    Fstand = Convert.ToInt32(b.FSTAND),
                    Fstand = b.FSTAND,
                    FupAllow = b.FupAllow,
                    SampleSizeNo = b.SampleSizeNo,
                    FenterQty = 0,
@@ -74,7 +84,7 @@
        mesQaIqcItem.ForEach(item =>
        {
            string LEV = item.FcheckLevel switch
            var LEV = item.FcheckLevel switch
            {
                null => "" // 默认值
                ,
@@ -147,7 +157,7 @@
        {
            foreach (var item in items) item.ReleaseNo = rkjDto.releaseNo;
            return db.Insertable(items).ExecuteCommand();
            return db.Insertable(items).IgnoreColumns(true).ExecuteCommand();
        });
        rkjDto.items = GetItems(rkjDto.releaseNo, null);
@@ -189,49 +199,45 @@
    }
    public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo,
        decimal? id)
        string? id)
    {
        return Db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>(
                (a, b) =>
                    new JoinQueryInfos(JoinType.Left, a.Guid == b.ParentGuid))
            .Where((a, b) => a.ReleaseNo == releaseNo)
            // .WhereIF(id > 0, (a, b) => a.Id == id)
            .GroupBy((a, b) => new
            {
                a.Guid,
                a.ReleaseNo,
                a.FacLevel,
                a.FcheckItem,
                a.FcheckTool,
                a.FdownAllow,
                a.FcheckLevel,
                a.Fstand,
                a.FupAllow,
                a.SampleSizeNo,
                a.FspecRequ,
                a.FreQty,
                a.CheckQyt,
                a.FcheckResu
            }).Select((a, b) => new MesQaItemsDetectDetail5
            {
                Guid = a.Guid,
                ReleaseNo = a.ReleaseNo,
                CheckQyt = a.CheckQyt,
                FacLevel = a.FacLevel,
                FcheckItem = a.FcheckItem,
                FcheckTool = a.FcheckTool,
                FdownAllow = a.FdownAllow,
                FcheckLevel = a.FcheckLevel,
                Fstand = a.Fstand,
                FupAllow = a.FupAllow,
                SampleSizeNo = a.SampleSizeNo,
                FspecRequ = a.FspecRequ,
                FreQty = a.FreQty,
                Factory = "1000",
                Company = "1000",
                FenterQty = SqlFunc.AggregateCount(b.Guid),
                FcheckResu = a.FcheckResu
            }).ToList();
        var parsedGuid = Guid.Empty;
        var sql = string.Format(@"SELECT [a].[guid]           AS [Guid],
       [a].[parent_guid]    AS [ParentGuid],
       [a].[release_no]     AS [ReleaseNo],
       [a].[check_qyt]      AS [CheckQyt],
       [a].[fac_level]      AS [FacLevel],
       [a].[fcheck_item]    AS [FcheckItem],
       [a].[fcheck_tool]    AS [FcheckTool],
       [a].[fdown_allow]    AS [FdownAllow],
       [a].[fcheck_level]   AS [FcheckLevel],
       [a].[fstand]         AS [Fstand],
       [a].[fup_allow]      AS [FupAllow],
       [a].[sample_size_no] AS [SampleSizeNo],
       [a].[fspec_requ]     AS [FspecRequ],
       [a].[fre_qty]        AS [FreQty],
       N'1000'              AS [Factory],
       N'1000'              AS [Company],
       COUNT([b].[guid])    AS [FenterQty],
       [a].[fcheck_resu]    AS [FcheckResu],
       [a].[forder]         AS [Order],
       [a].[ybsl]           AS [Ybsl],
       ISNULL((SELECT COUNT(1)
FROM MES_QA_ITEMS_DETECT_DETAIL13 C
WHERE C.parent_guid = A.guid),0) AS [YbslIn]
FROM [MES_QA_ITEMS_DETECT_DETAIL5] [a]
         Left JOIN [MES_QA_ITEMS_DETECT_DETAIL12] [b] ON ([a].[guid] = [b].[parent_guid])
WHERE ([a].[release_no] = N'{0}')
GROUP BY [a].[guid], [a].[parent_guid], [a].[release_no], [a].[fac_level], [a].[fcheck_item], [a].[fcheck_tool],
         [a].[fdown_allow], [a].[fcheck_level], [a].[fstand], [a].[fup_allow], [a].[sample_size_no], [a].[fspec_requ],
         [a].[fre_qty], [a].[check_qyt], [a].[fcheck_resu], [a].[forder], [a].[ybsl]
ORDER BY [a].[forder] ASC", releaseNo);
        var Ybsl_In = Db.Ado.SqlQuery<MesQaItemsDetectDetail5>(sql).ToList();
        return Ybsl_In;
    }
    public int SetQSItemDetail(MesQaItemsDetectDetail12 detail)
@@ -243,6 +249,8 @@
            {
                var item = new MesQaItemsDetectDetail12();
                item.ParentGuid = detail.ParentGuid;
                item.GrandpaGuid = detail.GrandpaGuid;
                item.FcheckItem = detail.FcheckItem;
                item.Fstand = detail.Fstand;
                item.FcheckResu = detail.FcheckResu;
                item.CreateBy = detail.LastupdateBy;
@@ -250,7 +258,7 @@
                result.Add(item);
            }
            return db.Insertable(result).ExecuteCommand();
            return db.Insertable(result).PageSize(1).IgnoreColumnsNull().ExecuteCommand();
        });
        detail.CreateBy = detail.LastupdateBy;
@@ -302,6 +310,7 @@
                commit += db.Updateable<MesQaItemsDetectDetail5>()
                    .SetColumns(s => s.FcheckResu == result)
                    .SetColumns(s => s.FenterQty == count)
                    .SetColumns(s => s.FngRate == (s.CheckQyt == 0 ? (decimal?)null : (decimal?)(Convert.ToDouble(noCount) / Convert.ToDouble(count))))
                    .Where(s => s.Guid == detail.ParentGuid)
                    .ExecuteCommand();
@@ -402,12 +411,9 @@
    {
        var rkjDto = new LLJDto();
        bool isValid = Guid.TryParse(id, out var parsedGuid);
        var isValid = Guid.TryParse(id, out var parsedGuid);
        if (!isValid)
        {
            throw new Exception("GUID转换错误");
        }
        if (!isValid) throw new Exception("GUID转换错误");
        var qsItemOqcItem =
            Db.Queryable<MesQaItemsDetectDetail5>()
@@ -436,6 +442,16 @@
        rkjDto.ItemXj02s = Db.Queryable<MesQaItemsDetectDetail12>()
            .Where(s => s.ParentGuid == parsedGuid)
            .ToList();
        foreach (var mesQaItemsDetectDetail12 in rkjDto.ItemXj02s)
        {
            //this.formData.fupAllow && this.formData.fdownAllow && this.formData.fstand
            mesQaItemsDetectDetail12.isNumber = true;
            if (qsItemOqcItem.FupAllow.IsNullOrEmpty()
                && qsItemOqcItem.FdownAllow.IsNullOrEmpty()
                && qsItemOqcItem.Fstand == null)
                mesQaItemsDetectDetail12.isNumber = false;
        }
        return rkjDto;
    }
@@ -502,10 +518,9 @@
    //子表修改备注字段
    public int saveRemarksPid(LLJDto dto)
    {
        bool isValid = Guid.TryParse(dto.pid, out var parsedGuid);
        var isValid = Guid.TryParse(dto.pid, out var parsedGuid);
        if (isValid)
        {
            return UseTransaction(db =>
            {
                return db.Updateable<MesQaItemsDetectDetail5>()
@@ -514,7 +529,6 @@
                    .Where(it => it.Guid == parsedGuid)
                    .ExecuteCommand();
            });
        }
        throw new Exception("GUID转换错误");
    }
@@ -562,7 +576,7 @@
            throw new Exception("该检验单已提交");
        if (mesQaItemsDetect01.FcheckDate == null)
            throw new Exception("该检测单未输入检验日期,请核对。");
            throw new Exception("该检测单没有检验完成,请核对。");
        if (mesQaItemsDetect01.FcheckBy.IsNullOrEmpty())
            throw new Exception("该检测单未输入检验人员,请核对。");
@@ -577,11 +591,9 @@
        {
            mesQaItemsDetectDetail5.FenterQty ??= 0;
            if (mesQaItemsDetectDetail5.FenterQty == 0)
            {
                throw new Exception("检验项目:" +
                                    mesQaItemsDetectDetail5.FcheckItem +
                                    " 已录入数量为0,请确认。");
            }
        }
        var com = UseTransaction(db =>
@@ -643,7 +655,7 @@
                        TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
                    })
                    .First();
                var totalQuantity = first.TotalQuantity ?? 0;
                var totalOkRkQty = first.TotalOkRkQty ?? 0;
@@ -658,12 +670,13 @@
                executeCommand += db.Updateable<MesInvItemArnDetail>()
                    .SetColumns(s => s.CheckStates == "不合格待审批")
                    .SetColumns(s => s.Ischeck == 1)
                    .SetColumns(s => s.CheckRes == mesQaItemsDetect01.FcheckResu)
                    .SetColumns(
                        s => s.CheckRes == mesQaItemsDetect01.FcheckResu)
                    .SetColumns(s => s.CheckDate == DateTime.Now)
                    .Where(s => s.ParentGuid == mesInvItemArn.Guid
                                && s.ItemId == mesQaItemsDetect01.ItemId)
                    .ExecuteCommand();
                executeCommand += db.Updateable<MesQaItemsDetect01>()
                    .SetColumns(s => s.IqcDate == DateTime.Now)
                    .SetColumns(s => s.FcheckDate == DateTime.Now)
@@ -672,7 +685,7 @@
                    .ExecuteCommand();
            }
            if (executeCommand >=3)
            if (executeCommand >= 3)
                return executeCommand;
            throw new Exception("更新失败");
@@ -680,4 +693,38 @@
        return com > 0;
    }
    public int[] getBadge()
    {
        var isNullCount = Db.Queryable<MesQaItemsDetect01>()
            .Where(a => (a.FcheckResu ?? "") == "").Count();
        var isNotNullCount = Db.Queryable<MesQaItemsDetect01>()
            .Where(a => (a.FcheckResu ?? "") != "").Count();
        return [isNullCount, isNotNullCount];
    }
    //删除特征值
    public int deleteDetail13(LLJDto dto)
    {
        var withOracle = Db.Deleteable<MesQaItemsDetectDetail13>()
                .Where(s => s.Guid.ToString() == dto.id13)
                .ExecuteCommand();
        return withOracle;
    }
    //更新不合格描述
    public int updateRemarks(LLJDto dto)
    {
        var withOracle = Db.Updateable<MesQaItemsDetect01>()
                .SetColumns(s => s.FngDesc == dto.Remarks)
                .Where(s => s.Guid.ToString() == dto.gid)
                .ExecuteCommand();
        return withOracle;
    }
}