zyf
2025-11-21 612b2285b823072809d811d456787432a3234fc3
MES.Service/service/QC/XJService.cs
@@ -2,6 +2,7 @@
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using Newtonsoft.Json.Linq;
using SqlSugar;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
@@ -14,7 +15,7 @@
    private readonly BaseService _baseService = new();
    private readonly string[] statusArray = ["开工", "待开工"];
    private readonly string[] statusArray = ["开工", "待开工","已开工" ,"未开工"];
    //生成最新的检验单号
    public string getMaxReleaseNo()
@@ -39,47 +40,71 @@
        return "XJN" + date + number;
    }
    public List<Womdaa> getItem(string daa001)
    public class DaaInfoDto
    {
        public decimal? Id { get; set; }
        public string Daa001 { get; set; }
        public string? Daa003 { get; set; }
        public string? Daa004 { get; set; }
        public decimal? Daa008 { get; set; }
        public string? Daa015 { get; set; }
        public string? Daa020 { get; set; }
        public string? ItemNo { get; set; }   // 来自关联表
        public string? ItemName { get; set; }
    }
    public List<DaaInfoDto> getItem(string daa001)
    {
        var db = SqlSugarHelper.GetInstance();
        //in的写法 https://www.donet5.com/Home/Doc?typeId=1187
        return db.Queryable<Womdaa>()
        return db.Queryable<Womdaa,MesItems>((a, b) => new JoinQueryInfos(
            JoinType.Inner, a.Daa002 == b.Id.ToString()))
            .Where(a =>
                a.Daa001 == daa001 &&
                statusArray.Contains(a.Daa018))
            .Select((a, b) => new DaaInfoDto
            {
                Daa001= daa001,
                Daa003=a.Daa003,
                Daa004=a.Daa004,
                Daa008=a.Daa008,
                Daa015=a.Daa015,
                Daa020=a.Daa020,
                ItemNo=b.ItemNo,
                ItemName = b.ItemName,
                Id =a.Id
            })
            .ToList();
    }
    public List<MesLine> getLineAll()
    public List<QCUserLine> getLineAll(string UserNo)
    {
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<Womdaa, MesLine>((a, b) =>
                new JoinQueryInfos(JoinType.Left, a.Daa015 == b.LineNo))
            .Where((a, b) => b.LineName != null &&
                             statusArray.Contains(a.Daa018))
            .GroupBy((a, b) => new
        return db.Queryable<QCUserLine>()
            .Where(a => a.UserCode == UserNo)
            .Select(a => new QCUserLine
            {
                b.LineNo, b.LineName
            })
            .Select((a, b) => new MesLine
            {
                LineNo = b.LineNo,
                LineName = b.LineName
            }).OrderBy("b.LINE_NO").ToList();
                LineNo = a.LineNo,
                LineName = a.LineName
            }).OrderBy("LINENO").ToList();
    }
    public List<Womdaa> getDaa001(string daa020, string item)
    public List<Womdaa> getDaa001(JObject data)
    {
        var daa020 = data["daa020"]?.ToString();
        var item = data["item"]?.ToString();
        var db = SqlSugarHelper.GetInstance();
        return db.Queryable<Womdaa, MesItems>((a, b) =>
                new JoinQueryInfos(JoinType.Inner, a.Daa002 == b.Id.ToString()))
            .Where((a, b) =>
                a.Daa015 == daa020 &&
                b.ItemNo == item &&
                statusArray.Contains(a.Daa018))
            .WhereIF(!string.IsNullOrEmpty(daa020), (a, b) => a.Daa015 == daa020)
            .WhereIF(!string.IsNullOrEmpty(item), (a, b) => b.ItemNo == item)
            .Where((a, b) => statusArray.Contains(a.Daa018))
            .Select<Womdaa>(a => new Womdaa
            {
                Id = a.Id,
@@ -347,6 +372,27 @@
                    .ExecuteCommand();
            });
        var db = SqlSugarHelper.GetInstance();
        // 创建参数
        var FID = new SugarParameter("P_ID", rkjDto.gid);
        var FRes = new SugarParameter("c_result", null, true);            // 输出参数
        var FMsg = new SugarParameter("c_msg", null, true);
        // 执行存储过程
        db.Ado.UseStoredProcedure().GetDataTable("PRC_XJ_UPDATE_RES_JK", FID, FRes, FMsg);
        int result = int.Parse((string)FRes.Value);
        string message = FMsg.Value == DBNull.Value ? string.Empty : (string)FMsg.Value;
        if (result == 1)
        {
            //存储过程失败则事务进行回滚
            //db.Ado.RollbackTran();
            throw new Exception(message);
        }
        return useTransactionWithOracle > 0;
    }