cnf
8 天以前 8f25fecab6e6a79096b9940ab3432401b9045b39
MES.Service/service/SentLaboratory/SaveLaboratoryManager.cs
@@ -1,4 +1,5 @@
using MES.Service.DB;
using MES.Service.Dto.webApi.QcIssueResult;
using MES.Service.Modes.QcIssueResult;
using MES.Service.Modes.SentLaboratory;
using Newtonsoft.Json;
@@ -7,6 +8,7 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
@@ -14,6 +16,222 @@
public class SaveLaboratoryManager:Repository<UpdateMesQmsSample>
{
    public class ResultObject
    {
        public string? SjReleaseNo { get; set; }
        public decimal? IS_SJ { get; set; }
        public string? DEPARTMENTNAME { get; set; }
        public string? DEPARTMENTCODE { get; set; }
        public DateTime? CREATE_DATE { get; set; }
        public DateTime? CompleteDate { get; set; }
        public string? REMARKS { get; set; }
        public string? SIM_REQ { get; set; }
        public string? Test_REQ { get; set; }
        //磁铁拉力
        public decimal? Check01 { get; set; }
        //磁铁承重
        public decimal? Check02 { get; set; }
        //盐雾
        public decimal? Check03 { get; set; }
        //IP
        public decimal? Check04 { get; set; }
        //老化测试
        public decimal? Check05 { get; set; }
        //传导辐射
        public decimal? Check06 { get; set; }
        public decimal? Check07 { get; set; }
        //电线拉力
        public decimal? Check08 { get; set; }
        //接口插拔
        public decimal? Check09 { get; set; }
        //光谱测试
        public decimal? Check10 { get; set; }
        //ROHS
        public decimal? Check11 { get; set; }
        //电池充放电
        public decimal? Check12 { get; set; }
        //高温
        public decimal? Check13 { get; set; }
        //低温
        public decimal? Check14 { get; set; }
        //IK
        public decimal? Check15 { get; set; }
        //温升测试
        public decimal? Check16 { get; set; }
        //寿命
        public decimal? Check17 { get; set; }
        //其它
        public decimal? Check18 { get; set; }
        //其它的内容
        public string? Line04 { get; set; }
        public List<AllItem>? allItem { get; set; }
    }
    public class AllItem
    {
        public decimal? Pid { get; set; }
        public string? sj_no { get; set; }
        public string? release_no { get; set; }
        public decimal? ITEM_ID { get; set; }
        public string? ITEM_NO { get; set; }
        public string? QUANTITY { get; set; }
        public decimal? URGENT_FLAG { get; set; }
        public DateTime? CREATE_DATE { get; set; }
        public string? SUPP_NAME { get; set; }
        public string? DECISION_OUTCOMES { get; set; }
    }
    public ResultObject GetListAll(string RELEASE_NO)
    {
        // 假设你有一个数据库上下文或数据访问层
        // 这里用模拟数据代替实际数据库查询
        var mainTable = GetMainTableData(RELEASE_NO);
        var subTable = GetSubTableData(RELEASE_NO);
        // 创建返回对象
        var result = new ResultObject
        {
            SjReleaseNo = mainTable.ReleaseNo,
            IS_SJ = mainTable.IsSubmit,
            DEPARTMENTNAME = mainTable.DEPARTMENTNAME,
            DEPARTMENTCODE=mainTable.DEPARTMENTCODE,
            REMARKS = mainTable.REMARKS,
            SIM_REQ = mainTable.SimReq,
            CompleteDate=mainTable.CompleteDate,
            Test_REQ=mainTable.TestReq,
            Check01 = mainTable.Check01,
            Check02 = mainTable.Check02,
            Check03 = mainTable.Check03,
            Check04 = mainTable.Check04,
            Check05 = mainTable.Check05,
            Check06 = mainTable.Check06,
            Check07 = mainTable.Check07,
            Check08 = mainTable.Check08,
            Check09 = mainTable.Check09,
            Check10 = mainTable.Check10,
            Check11 = mainTable.Check11,
            Check12 = mainTable.Check12,
            Check13 = mainTable.Check13,
            Check14 = mainTable.Check14,
            Check15 = mainTable.Check15,
            Check16 = mainTable.Check16,
            Check17 = mainTable.Check17,
            Check18 = mainTable.Check18,
            Line04 = mainTable.Line04,
            allItem = subTable.Select(item => new AllItem
            {
                Pid=item.PID,
                sj_no = item.SJ_NO,
                CREATE_DATE = item.CREATE_DATE,
                ITEM_ID = item.ITEM_ID,
                release_no=item.RELEASE_NO,
                ITEM_NO = item.ITEM_NO,
                SUPP_NAME = item.SUPP_NAME,
                QUANTITY=item.QUANTITY,
                URGENT_FLAG=item.URGENT_FLAG,
                DECISION_OUTCOMES=item.DECISION_OUTCOMES,
            }).ToList()
        };
        return result;
    }
    // 模拟主表数据查询
    private UpdateMesQmsSample GetMainTableData(string RELEASE_NO)
    {
        var db = SqlSugarHelper.GetInstance();
        var map = db.Queryable<UpdateMesQmsSample>()
         .Where(t => t.ReleaseNo == RELEASE_NO)
         .First();
        // 这里应该是实际的数据库查询逻辑
        // 例如:return db.MainTable.FirstOrDefault(m => m.RELEASE_NO == RELEASE_NO);
        return new UpdateMesQmsSample
        {
            ReleaseNo = map.ReleaseNo,
            DEPARTMENTNAME = map.DEPARTMENTNAME,
            CreateDate = map.CreateDate,
            QUANTITY = map.QUANTITY,
            CompleteDate = map.CompleteDate,
            TestReq = map.TestReq,
            SimReq = map.SimReq,
            ItemNo = map.ItemNo,
            UrgentFlag = map.UrgentFlag,
            JYDH = map.JYDH,
            REMARKS = map.REMARKS,
            ItemName = map.ItemName,
            DEPARTMENTCODE = map.DEPARTMENTCODE,
            PAPERBILLNO = map.PAPERBILLNO,
            IsSubmit = map.IsSubmit,
            ZHBS = map.ZHBS,
            Check01 = map.Check01,
            Check02 = map.Check02,
            Check03 = map.Check03,
            Check04 = map.Check04,
            Check05 = map.Check05,
            Check06 = map.Check06,
            Check07 = map.Check07,
            Check08 = map.Check08,
            Check09 = map.Check09,
            Check10 = map.Check10,
            Check11 = map.Check11,
            Check12 = map.Check12,
            Check13 = map.Check13,
            Check14 = map.Check14,
            Check15 = map.Check15,
            Check16 = map.Check16,
            Check17 = map.Check17,
            Check18 = map.Check18,
            Line04=map.Line04
        };
    }
    // 模拟子表数据查询
    private List<UpdateMesQmsSamplePjt> GetSubTableData(string RELEASE_NO)
    {
        var db = SqlSugarHelper.GetInstance();
        var mapping = db.Queryable<UpdateMesQmsSamplePjt>()
            .Where(t => t.SJ_NO == RELEASE_NO)
            .ToList();
        // 如果查询结果为空,返回空列表
        if (mapping == null || mapping.Count == 0)
        {
            return new List<UpdateMesQmsSamplePjt>();
        }
        // 返回查询结果
        return mapping;
    }
    public dynamic Save(GetLaboratoryDetails getLaboratoryDetails)
    {
@@ -21,12 +239,17 @@
        return UseTransaction(db =>
        {
            return SaveOrUpdateData(db, mesUpdateMesQmsSample) ? 1 : 0;
            return SaveOrUpdateData(db, mesUpdateMesQmsSample,getLaboratoryDetails) ? 1 : 0;
        }) > 0;
    }
    public UpdateMesQmsSample GetMesQcIssueResults(GetLaboratoryDetails getLaboratoryDetails)
    {
        if (getLaboratoryDetails.URGENT_FLAG == null) {
            getLaboratoryDetails.URGENT_FLAG = 0;
        }
        var mesUpdateMesQmsSample = new UpdateMesQmsSample
        {
            ReleaseNo = getLaboratoryDetails.RELEASE_NO,
@@ -43,8 +266,29 @@
            ItemName = getLaboratoryDetails.ITEM_NAME,
            DEPARTMENTCODE = getLaboratoryDetails.DEPARTMENTCODE,
            PAPERBILLNO = getLaboratoryDetails.LOT_NO,
            IsSubmit = getLaboratoryDetails.IS_SUBMIT,
            ZHBS = getLaboratoryDetails.ZH_BS
        };
        mesUpdateMesQmsSample.Check01 = 0;
        mesUpdateMesQmsSample.Check02 = 0;
        mesUpdateMesQmsSample.Check03 = 0;
        mesUpdateMesQmsSample.Check04 = 0;
        mesUpdateMesQmsSample.Check05 = 0;
        mesUpdateMesQmsSample.Check06 = 0;
        mesUpdateMesQmsSample.Check07 = 0;
        mesUpdateMesQmsSample.Check08 = 0;
        mesUpdateMesQmsSample.Check09 = 0;
        mesUpdateMesQmsSample.Check10 = 0;
        mesUpdateMesQmsSample.Check11 = 0;
        mesUpdateMesQmsSample.Check12 = 0;
        mesUpdateMesQmsSample.Check13 = 0;
        mesUpdateMesQmsSample.Check14 = 0;
        mesUpdateMesQmsSample.Check15 = 0;
        mesUpdateMesQmsSample.Check16 = 0;
        mesUpdateMesQmsSample.Check17 = 0;
        mesUpdateMesQmsSample.Check18 = 0;
        // 遍历 CHECKBOX 并赋值
        foreach (var item in getLaboratoryDetails.CHECKBOX)
@@ -117,41 +361,165 @@
    /**
    * 插入数据库表
    */
    private bool SaveOrUpdateData(SqlSugarScope db, UpdateMesQmsSample updateMesQmsSample)
    private bool SaveOrUpdateData(SqlSugarScope db, UpdateMesQmsSample updateMesQmsSample, GetLaboratoryDetails getLaboratoryDetails)
    {
        ////// 查询 QcIssueResults 表中是否存在匹配的记录
        ////var mapping = db.Queryable<UpdateMesQmsSample>()
        ////    .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo)
        ////    .Select(t => new QcIssueResults
        ////    {
        ////        ReleaseNo = t.ReleaseNo,
        ////    })
        ////    .ToList();
        // 查询 MES_QMS_SAMPLE 表中是否存在匹配的记录
        var existingRecord = db.Queryable<UpdateMesQmsSample>()
            .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo)
            .First(); // 使用 First 获取第一条记录
        if (existingRecord != null)
        {
            Debug.WriteLine("hhhhhhhhh!");
            // 更新 UpdateMesQaItems 表中的字段
            updateMesQmsSample.Id = existingRecord.Id;
        //// 查询 UpdateMesQmsSample 表中是否存在匹配的记录
        //var existingRecord = db.Queryable<UpdateMesQmsSample>()
        //    .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo)
        //    .First(); // 使用 First 获取第一条记录
            // 执行更新操作
            var updateResult = db.Updateable(updateMesQmsSample).ExecuteCommand();
        //if (existingRecord != null)
        //{
        //    // 更新 UpdateMesQaItems 表中的字段
        //    updateMesQmsSample.Id = existingRecord.Id;
            var mapping = db.Queryable<UpdateMesQmsSamplePjt>()
             .Where(t => t.RELEASE_NO == updateMesQmsSample.JYDH && t.PID == updateMesQmsSample.Id)
             .Select(t => new UpdateMesQmsSamplePjt
             {
                 PID=t.PID
             })
             .ToList();
        //    // 执行更新操作
        //    var updateResult = db.Updateable(updateMesQmsSample).ExecuteCommand();
        //      return updateResult > 0; // 如果更新成功,返回 true
        //}
        //else
        //{
        //    Debug.WriteLine("插入");
            // 如果 mapping 为空,插入新记录到 QcIssueResults 表
            Debug.WriteLine(updateMesQmsSample.JYDH);
            if (mapping.Any())
            {
                updateResult = db.Updateable<UpdateMesQmsSamplePjt>()
                .SetColumns(t => new UpdateMesQmsSamplePjt
             {
                 SJ_NO = updateMesQmsSample.ReleaseNo,
                 RELEASE_NO = updateMesQmsSample.JYDH,
                 ITEM_NO = updateMesQmsSample.ItemNo,
                 QUANTITY = updateMesQmsSample.QUANTITY,
                 URGENT_FLAG = updateMesQmsSample.UrgentFlag,
                 CREATE_DATE = System.DateTime.Now,
                 ITEM_ID = getLaboratoryDetails.ITEM_ID,
                 SUPP_NAME = getLaboratoryDetails.SUPP_NAME
             })
             .Where(t => t.RELEASE_NO == updateMesQmsSample.JYDH && t.PID == updateMesQmsSample.Id) // 显式指定更新条件
             .ExecuteCommand();
            }
            else
            {
                Debug.WriteLine("hhhhhhhhaddadah!");
                var mesUpdateMesQmsSamplePjt = new UpdateMesQmsSamplePjt
                {
                    PID = updateMesQmsSample.Id,
                    SJ_NO = updateMesQmsSample.ReleaseNo,
                    RELEASE_NO = updateMesQmsSample.JYDH,
                    ITEM_NO = updateMesQmsSample.ItemNo,
                    QUANTITY = updateMesQmsSample.QUANTITY,
                    URGENT_FLAG = updateMesQmsSample.UrgentFlag,
                    CREATE_DATE = System.DateTime.Now,
                    ITEM_ID = getLaboratoryDetails.ITEM_ID,
                    SUPP_NAME = getLaboratoryDetails.SUPP_NAME
                };
                updateResult = db.Insertable(mesUpdateMesQmsSamplePjt).ExecuteCommand();
            }
             var maping = db.Queryable<UpdateMesQaItems>()
             .Where(t => t.ReleaseNo == updateMesQmsSample.JYDH)
             .Select(t => new UpdateMesQaItems
             {
                 ISSJ = t.ISSJ,
                 SJ_NO = t.SJ_NO
             })
             .ToList();
            if (maping.Any())
            {
                updateResult = db.Updateable<UpdateMesQaItems>()
               .SetColumns(t => new UpdateMesQaItems
               {
                   ISSJ = updateMesQmsSample.IsSubmit,
                   SJ_NO = updateMesQmsSample.ReleaseNo
               })
               .Where(t => t.ReleaseNo == updateMesQmsSample.JYDH) // 显式指定更新条件
               .ExecuteCommand();
            }
            else
            {
                throw new NotImplementedException("未找到对应来料检验申请单");
            }
            return updateResult > 0; // 如果更新成功,返回 true
        }
        else
        {
            //Debug.WriteLine("插入");
            //如果 mapping 为空,插入新记录到 QcIssueResults 表
            var orUpdate = base.Insert(updateMesQmsSample);
            if (orUpdate) return true;
            throw new NotImplementedException("插入或更新失败");
        //}
            var insertedId = 0;
            if (orUpdate)
            {
                // 使用 RELEASE_NO 查询刚刚插入的记录的 id
                 insertedId =(int) db.Queryable<UpdateMesQmsSample>()
                    .Where(it => it.ReleaseNo == updateMesQmsSample.ReleaseNo)
                    .Select(it => it.Id)
                    .Single(); // 如果 RELEASE_NO 是唯一字段,可以使用 Single()
            };
            var mesUpdateMesQmsSamplePjt = new UpdateMesQmsSamplePjt
            {
                PID= insertedId,
                SJ_NO= updateMesQmsSample.ReleaseNo,
                RELEASE_NO= updateMesQmsSample.JYDH,
                ITEM_NO= updateMesQmsSample.ItemNo,
                QUANTITY= updateMesQmsSample.QUANTITY,
                URGENT_FLAG= updateMesQmsSample.UrgentFlag,
                CREATE_DATE = System.DateTime.Now,
                ITEM_ID= getLaboratoryDetails.ITEM_ID,
                SUPP_NAME=getLaboratoryDetails.SUPP_NAME
            };
            var updateResult = db.Insertable(mesUpdateMesQmsSamplePjt).ExecuteCommand();
            var mapping = db.Queryable<UpdateMesQaItems>()
            .Where(t => t.ReleaseNo == updateMesQmsSample.JYDH)
            .Select(t => new UpdateMesQaItems
            {
                ISSJ = t.ISSJ,
                SJ_NO= t.SJ_NO
            })
            .ToList();
            if (mapping.Any())
            {
               updateResult = db.Updateable<UpdateMesQaItems>()
              .SetColumns(t => new UpdateMesQaItems
              {
                 ISSJ= updateMesQmsSample.IsSubmit,
                 SJ_NO = updateMesQmsSample.ReleaseNo
              })
              .Where(t => t.ReleaseNo == updateMesQmsSample.JYDH) // 显式指定更新条件
              .ExecuteCommand();
            }
            else
            {
                throw new NotImplementedException("未找到对应来料检验申请单");
            }
           if (orUpdate) return true;
           throw new NotImplementedException("插入或更新失败");
        }
    }
@@ -161,22 +529,51 @@
        {
            var db = SqlSugarHelper.GetInstance();
            // 假设 db 是 SQLSugar 的 SqlSugarClient 实例
            var result = db.Deleteable<UpdateMesQmsSample>()
                .Where(t => t.JYDH == JYDH) // 根据 JYDH 删除
                .ExecuteCommand();
            var result = db.Updateable<UpdateMesQmsSample>()
              .SetColumns(t => new UpdateMesQmsSample
              {
                  IsSubmit = 2,
              })
              .Where(t => t.JYDH == JYDH) // 显式指定更新条件
              .ExecuteCommand();
            if (result > 0)
            Debug.WriteLine(result);
            var mapping = db.Queryable<UpdateMesQaItems>()
           .Where(t => t.ReleaseNo ==JYDH)
           .Select(t => new UpdateMesQaItems
           {
              ISSJ = t.ISSJ,
           })
           .ToList();
            if (mapping.Any())
            {
                return "删除成功!";
                var updateResult = db.Updateable<UpdateMesQaItems>()
               .SetColumns(t => new UpdateMesQaItems
               {
                   ISSJ = 2,
                   SJ_NO=null
               })
               .Where(t => t.ReleaseNo == JYDH) // 显式指定更新条件
               .ExecuteCommand();
            }
            else
            {
                return "未找到匹配的记录,删除失败。";
                throw new NotImplementedException("未找到对应来料检验申请单");
            }
            if (result > 0)
            {
                return "撤回成功!";
            }
            else
            {
                return "未找到匹配的记录,撤回失败。";
            }
        }
        catch (Exception ex)
        {
            return "删除失败,错误信息:" + ex.Message;
            return "撤回失败,错误信息:" + ex.Message;
        }
    }