xwt
7 天以前 e853dd2fecef3a0c446d161248d0498a5a081e66
StandardInterface/MES.Service/service/QC/LljService.cs
@@ -1,4 +1,4 @@
using System.Data;
using System.Data;
using System.Xml;
using System.Linq;
using Masuit.Tools;
@@ -52,7 +52,7 @@
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 3, // 供应商搜索
                    a => a.SuppName != null && a.SuppName.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 4, // 到货单号搜索
                    a => a.LotNo != null && a.LotNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                    a => a.PaperBillNo != null && a.PaperBillNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 5, // 检验单号搜索
                    a => a.ReleaseNo != null && a.ReleaseNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 6, // 物料规格搜索
@@ -65,12 +65,15 @@
                    ItemName = a.ItemName,
                    ItemModel = a.ItemModel,
                    SuppName = a.SuppName,
                    PaperBillNo = a.PaperBillNo,
                    LotNo = a.LotNo,
                    ReleaseNo = a.ReleaseNo,
                    FcheckResu = a.FcheckResu,
                    CreateDate = a.CreateDate,
                    FcovertQty = a.FcovertQty,
                    DEPARTMENTNAME = a.DEPARTMENTNAME,
                    FcheckBy = a.FcheckBy,
                    Modify1By = a.Modify1By,
                    FngDesc = a.FngDesc,
                    UrgentFlag = a.UrgentFlag,
                    Ftype = a.Ftype,
@@ -89,7 +92,9 @@
                    // 添加评审状态
                    PSZT = a.PSZT,
                    // 添加检验项目维护状态
                    Jyxm = a.Jyxm
                    Jyxm = a.Jyxm,
                    // 添加版本号(用于FTP路径)
                    Fversion = a.Fversion
                })
                .OrderBy("IQC_DATE DESC")
                .OrderBy("CASE WHEN EMERGENCY = 1 THEN 0 ELSE 1 END")
@@ -127,7 +132,7 @@
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 3, // 供应商搜索
                    (a, v) => a.SuppName != null && a.SuppName.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 4, // 到货单号搜索
                    (a, v) => a.LotNo != null && a.LotNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                    (a, v) => a.PaperBillNo != null && a.PaperBillNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 5, // 检验单号搜索
                    (a, v) => a.ReleaseNo != null && a.ReleaseNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 6, // 物料规格搜索
@@ -140,6 +145,7 @@
                    ItemName = a.ItemName,
                    ItemModel = a.ItemModel,
                    SuppName = a.SuppName,
                    PaperBillNo = a.PaperBillNo,
                    LotNo = a.LotNo,
                    ReleaseNo = a.ReleaseNo,
                    FcheckResu = a.FcheckResu,
@@ -150,6 +156,8 @@
                    UrgentFlag = a.UrgentFlag,
                    Ftype = a.Ftype,
                    LotNo1 = a.LotNo1,
                    FcheckBy = a.FcheckBy,
                    Modify1By = a.Modify1By,
                    EMERGENCY = a.EMERGENCY,
                    Status = a.Status,
                    IqcDate = a.IqcDate,
@@ -164,7 +172,9 @@
                    // 添加评审状态
                    PSZT = a.PSZT,
                    // 添加检验项目维护状态
                    Jyxm = a.Jyxm
                    Jyxm = a.Jyxm,
                    // 添加版本号(用于FTP路径)
                    Fversion = a.Fversion
                })
                .OrderBy("IQC_DATE DESC")
                .OrderBy("CASE WHEN EMERGENCY = 1 THEN 0 ELSE 1 END")
@@ -215,7 +225,7 @@
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 3, // 供应商搜索
                    a => a.SuppName != null && a.SuppName.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 4, // 到货单号搜索
                    a => a.LotNo != null && a.LotNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                    a => a.PaperBillNo != null && a.PaperBillNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 5, // 检验单号搜索
                    a => a.ReleaseNo != null && a.ReleaseNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 6, // 物料规格搜索
@@ -253,7 +263,7 @@
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 3, // 供应商搜索
                    (a, v) => a.SuppName != null && a.SuppName.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 4, // 到货单号搜索
                    (a, v) => a.LotNo != null && a.LotNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                    (a, v) => a.PaperBillNo != null && a.PaperBillNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 5, // 检验单号搜索
                    (a, v) => a.ReleaseNo != null && a.ReleaseNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
                .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 6, // 物料规格搜索
@@ -504,7 +514,13 @@
        return input.Substring(startIndex + 1, length);
    }
    public List<QamftpDto> GetAttachments(string ItemNo)
    /// <summary>
    /// 获取附件信息
    /// </summary>
    /// <param name="ItemNo">物料编码</param>
    /// <param name="fversion">版本号(可选,用于过滤)</param>
    /// <returns>附件列表</returns>
    public List<QamftpDto> GetAttachments(string ItemNo, string fversion = null)
    {
        //if (string.IsNullOrEmpty(ItemNo))
        //{
@@ -514,8 +530,17 @@
        var db = SqlSugarHelper.GetInstance();
        try
        {
            return db.Queryable<MesQamftp>()
            var query = db.Queryable<MesQamftp>()
                .Where(x => x.ItemNo == ItemNo)
                .Where(x => x.Ftype == "来料检");  // 添加FTYPE = '来料检'的限制
            // 如果传入了fversion,则按Fversion过滤
            if (!string.IsNullOrEmpty(fversion))
            {
                query = query.Where(x => x.Fversion == fversion);
            }
            return query
                .OrderBy(x => x.Fdate, OrderByType.Desc)
                // .ThenBy(x => x.CreateDate, OrderByType.Desc)
                .Select(x => new QamftpDto
@@ -543,7 +568,7 @@
        }
    }
    public byte[] GetFtpFile(string itemNo, string fileName, string ftpServer)
    public byte[] GetFtpFile(string itemNo, string fileName, string ftpServer, string fversion = null)
    {
        // 参数验证
        if (string.IsNullOrEmpty(itemNo) || string.IsNullOrEmpty(fileName) || string.IsNullOrEmpty(ftpServer))
@@ -557,8 +582,19 @@
        // 标准化FTP服务器地址
        string normalizedServer = NormalizeFtpServer(ftpServer);
        
        // 构建FTP文件路径
        string ftpPath = $"{normalizedServer}/IQC/{itemNo}/{fileName}";
        // 清理文件名:去除所有空白字符(包括中英文空格、制表符、回车换行等)
        fileName = System.Text.RegularExpressions.Regex.Replace(fileName, @"[\s\u3000\r\n]+", "");
        // 构建FTP文件路径 - 来料检使用IQC目录,使用fversion作为子目录
        string ftpPath;
        if (!string.IsNullOrEmpty(fversion))
        {
            ftpPath = $"{normalizedServer}/IQC/{itemNo}/{fversion}/{fileName}";
        }
        else
        {
            ftpPath = $"{normalizedServer}/IQC/{itemNo}/{fileName}";
        }
        
        try
        {
@@ -641,8 +677,8 @@
            normalizedServer += ":21"; // 默认FTP端口
        }
        
        // 开发环境使用本地服务器
        normalizedServer = "ftp://192.168.1.22:21";
        // 注释掉开发环境强制覆盖,使用传入的实际FTP服务器地址
        // normalizedServer = "ftp://192.168.1.22:21";
        
        return normalizedServer;
    }