啊鑫
2024-09-12 e80da1ea0baacf0cf324f1f6b699490d67cbb565
MES.Service/service/QC/LljService.cs
@@ -1,15 +1,17 @@
using MES.Service.DB;
using System.Data;
using System.Dynamic;
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
using DbType = System.Data.DbType;
namespace MES.Service.service.QC;
public class LljService
{
    public List<LtsLlj> GetPage(XJPageResult queryObj)
    {
        var db = SqlSugarHelper.GetInstance();
@@ -20,22 +22,25 @@
           .WhereIF(
               StringUtil.IsNotNullOrEmpty(queryObj.result) &&
               "未完成".Equals(queryObj.result),
               (a) =>a.FcheckResu == null)
                a => a.FcheckResu == null)
           .WhereIF(
               StringUtil.IsNotNullOrEmpty(queryObj.result) &&
               !"未完成".Equals(queryObj.result),
               (a) => a.FcheckResu != null)
                a => a.FcheckResu != null)
           .WhereIF(id > 0, (a) => a.Id == id)
            .OrderByDescending(a=>a.Id)
            .ToPageList(queryObj.PageIndex, queryObj.Limit);
    }
  //根据检验标准来计算检验个数
    public List<MesQaItemsDetectDetail5> SetItems(string itemNo, decimal quantity,string releaseNo)
    public List<MesQaItemsDetectDetail5> SetItems(string itemNo,
        decimal quantity, string releaseNo)
    {
        var db = SqlSugarHelper.GetInstance();
        
        var count = db.Queryable<MesQaIqc>().Where(s => s.EE == 1 && s.ISENABLED == 1
        var count = db.Queryable<MesQaIqc>().Where(s => s.EE == 1 &&
            s.ISENABLED == 1
                                                        && s.ItemNo == itemNo && s.FTYPE == "1").Count();
        if (count <= 0) return [];
@@ -45,7 +50,6 @@
                                                        && s.ItemNo == itemNo && s.FTYPE == "1").Select(
                b => new MesQaItemsDetectDetail5
                {
                    ReleaseNo = releaseNo, 
                    FacLevel = b.FacLevel,        
                    FcheckItem = b.FcheckItem ,       
@@ -68,7 +72,6 @@
                   // LastupdateBy = "0",
                   // ProcNo = "0",
                   // WorkshopCenterCode = "0"
                }).ToList();
        mesQaIqcItem.ForEach(item =>
@@ -105,7 +108,8 @@
            var sql =
                "SELECT " + LEV +
                " FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO='" +
                item.SampleSizeNo + "' AND B.LOT_FROM<= " + quantity + "   AND " +
                item.SampleSizeNo + "' AND B.LOT_FROM<= " + quantity +
                "   AND " +
                quantity + "<=B.LOT_TO";
            var maxBillNo = db.Ado.SqlQuerySingle<string>(sql);
@@ -116,7 +120,8 @@
            sql = "SELECT FSAMPLE_SIZE_WORD, " + result +
                  " Result FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO= '" +
                  item.SampleSizeNo + "'  AND SAMPLE_SIZE_WORD= '" + maxBillNo + "'";
                  item.SampleSizeNo + "'  AND SAMPLE_SIZE_WORD= '" + maxBillNo +
                  "'";
            var resultClass = db.Ado.SqlQuerySingle<ResultClass>(sql);
            item.CheckQyt = resultClass.FSAMPLE_SIZE_WORD;
@@ -140,6 +145,7 @@
        var length = endIndex - startIndex - 1;
        return input.Substring(startIndex + 1, length);
    }
    public int saveItem(LLJDto rkjDto)
    {
        var items = rkjDto.items;
@@ -166,12 +172,14 @@
                .Where(x => x.FcheckResu == "NG" && x.MainId == s.Id).Count();
            //检验明细总数
            var count = db.Queryable<MesQaItemsDetectDetail12>().Where(x1 => x1.MainId == s.Id).Count();
            var count = db.Queryable<MesQaItemsDetectDetail12>()
                .Where(x1 => x1.MainId == s.Id).Count();
            if (ifck > s.FreQty && s.CheckQyt == count)
            {
                s.FcheckResu = "不合格";
            }else if (ifck < s.FreQty && s.CheckQyt == count)
            }
            else if (ifck < s.FreQty && s.CheckQyt == count)
            {
                s.FcheckResu = "合格";
            }
@@ -193,11 +201,14 @@
        return Convert.ToInt32(rkjDto.gid);
    }
    public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo, decimal? id)
    public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo,
        decimal? id)
    {
        var db = SqlSugarHelper.GetInstance();
        
        return db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>((a, b) =>
        return db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>(
                (a, b) =>
                new JoinQueryInfos(JoinType.Left, a.Id == b.MainId))
            .Where((a, b) => a.ReleaseNo == releaseNo)
           // .WhereIF(id > 0, (a, b) => a.Id == id)
@@ -217,8 +228,6 @@
                 a.FreQty,
                 a.CheckQyt,
                 a.FcheckResu
            }).Select((a, b) => new MesQaItemsDetectDetail5
            {
                Id = a.Id,
@@ -259,11 +268,9 @@
                item.Factory = "1000";
                item.Company = "1000";
                result.Add(item);
            }
            
            return db.Insertable(result).ExecuteCommand();
        });
        detail.CreateBy = detail.LastupdateBy;
@@ -322,7 +329,8 @@
            });
        var isNull = db.Queryable<MesQaItemsDetectDetail5>()
            .Where(s => s.ReleaseNo == detail.ReleaseNo && s.FcheckResu == null).Count();
            .Where(s => s.ReleaseNo == detail.ReleaseNo && s.FcheckResu == null)
            .Count();
        if (isNull > 0) return 1;
@@ -335,7 +343,8 @@
        //获取检验单下的合格的检验项目个数
        var icount = db.Queryable<MesQaItemsDetectDetail5>()
            .Where(s => s.ReleaseNo == detail.ReleaseNo && s.FcheckResu == "合格").Count();
            .Where(s => s.ReleaseNo == detail.ReleaseNo && s.FcheckResu == "合格")
            .Count();
        var FcheckResu = "不合格";
@@ -452,7 +461,6 @@
                .SetColumns(s => s.LastupdateBy == detail.LastupdateBy)
               // .SetColumns(s => s.LastupdateDate == DateTime.Now)
                .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.Fstand),
                    s => s.Fstand == detail.Fstand)
                .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.FcheckResu),
                    s => s.FcheckResu == detail.FcheckResu)
@@ -466,6 +474,7 @@
        return withOracle;
    }
//更新检验明细已检、不合格数量  
    private int updateDetail5(MesQaItemsDetectDetail12 detail)
    {
@@ -490,6 +499,7 @@
        
        return withOracle;
    }
    //主表修改备注字段
    public int saveRemarksGid(LLJDto dto)
    {
@@ -502,6 +512,7 @@
                .ExecuteCommand();
        });
    }
    //子表修改备注字段
    public int saveRemarksPid(LLJDto dto)
    {
@@ -522,10 +533,12 @@
        {
            var commit = 0;
            //删除主表
            commit += db.Deleteable<MesQaItemsDetect01>().Where(s => s.ReleaseNo == releaseNo)
            commit += db.Deleteable<MesQaItemsDetect01>()
                .Where(s => s.ReleaseNo == releaseNo)
                .ExecuteCommand();
            //删除子表
            commit += db.Deleteable<MesQaItemsDetectDetail5>().Where(s => s.ReleaseNo == releaseNo)
            commit += db.Deleteable<MesQaItemsDetectDetail5>()
                .Where(s => s.ReleaseNo == releaseNo)
                .ExecuteCommand();
            //删除孙表
            commit += db.Deleteable<MesQaItemsDetectDetail12>()
@@ -536,4 +549,57 @@
        return withOracle;
    }
    public bool IqcQaSubmit(LLJDto dto)
    {
        var (factory, company) = UserUtil.GetFactory(dto.userNo);
        try
        {
            // 定义输出参数
            var outputResult = new SugarParameter("o_Result", null,
                DbType.Int32, ParameterDirection.Output,
                4000);
            var outputMessage = new SugarParameter("o_Msg", null,
                DbType.String,
                ParameterDirection.Output, 4000);
            // 定义输入参数
            var parameters = new List<SugarParameter>
            {
                new("PI_FACTORY", factory,
                    DbType.String, ParameterDirection.Input),
                new("PI_COMPANY", company, DbType.String,
                    ParameterDirection.Input),
                new("p_Release_No", dto.releaseNo, DbType.String,
                    ParameterDirection.Input),
                new("p_User", dto.userNo, DbType.String,
                    ParameterDirection.Input),
                outputResult,
                outputMessage
            };
            var db = SqlSugarHelper.GetInstance();
            // 使用 SqlSugar 执行存储过程
            db.Ado.ExecuteCommand(
                "BEGIN Prc_Mes_Iqc_Qa_Submit82(:PI_FACTORY, :PI_COMPANY, :p_Release_No, :p_User, :o_Result, :o_Msg); END;",
                parameters.ToArray());
            // 获取输出参数的值
            var resultValue = outputResult.Value?.ToString();
            var messageValue = outputMessage.Value?.ToString();
            if ("1".Equals(resultValue))
            {
                throw new Exception(messageValue);
            }
            return true;
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
}