hao
5 天以前 c5a3cfd2cd3e140892fc93cc52902b5b204a50d5
Merge branch 'master' of http://43.142.96.171:8080/r/~yhj/HM_JK
已修改3个文件
已添加1个文件
142 ■■■■■ 文件已修改
StandardInterface/MES.Service/Dto/service/XJPageResult.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/LtsLlj.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/V_LljUser.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/QC/LljService.cs 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/service/XJPageResult.cs
@@ -15,4 +15,10 @@
    public string? fsubmit { get; set; }
    /// <summary>
    /// æœç´¢æ¡ä»¶ç´¢å¼•,用于指定搜索哪个字段
    /// 0: é¡¹ç›®(不筛选), 1: ç‰©æ–™ç¼–号, 2: ç‰©æ–™åç§°, 3: ä¾›åº”商, 4: åˆ°è´§å•号, 5: æ£€éªŒå•号, 6: ç‰©æ–™è§„æ ¼
    /// </summary>
    public int? selectedIndex { get; set; }
}
StandardInterface/MES.Service/Modes/LtsLlj.cs
@@ -233,6 +233,12 @@
    [SugarColumn(IsIgnore = true)]
    public int? InspectionItemCount { get; set; }
    /// <summary>
    ///     ç»´æŠ¤äººå‘˜è´¦å·ï¼ˆæ¥è‡ªV_LLJ_USER视图,非数据库字段)
    /// </summary>
    [SugarColumn(IsIgnore = true)]
    public string? Fcode { get; set; }
}
StandardInterface/MES.Service/Modes/V_LljUser.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
/// V_LLJ_USER è§†å›¾æ¨¡åž‹
/// ç”¨äºŽæŸ¥è¯¢ç‰©æ–™æ˜¯å¦è¢«ç»´æŠ¤ä»¥åŠç»´æŠ¤äººå‘˜ä¿¡æ¯
/// </summary>
[SugarTable("V_LLJ_USER")]
public class V_LljUser
{
    /// <summary>
    /// ç»´æŠ¤äººå‘˜è´¦å·
    /// </summary>
    [SugarColumn(ColumnName = "FCODE")]
    public string? Fcode { get; set; }
    /// <summary>
    /// ç‰©æ–™ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_NO")]
    public string? ItemNo { get; set; }
}
StandardInterface/MES.Service/service/QC/LljService.cs
@@ -24,62 +24,79 @@
        var totalCount = 0;
        var pageList = db.Queryable<LtsLlj, IqcBefore, SysUser,
                IqcBeforeFrom, SysUser, SysUser>((a, b,
                    e, f, g, i) =>
                new JoinQueryInfos(JoinType.Left, a.ItemId == b.ItemId,
                    JoinType.Left, a.CreateBy == e.Fcode,
                    JoinType.Left, f.Id == b.Pid,
                    JoinType.Left, f.Sid == Convert.ToDecimal(g.Fid),
                    JoinType.Left, f.CheckUser == i.Fcode
                ))
        var pageList = db.Queryable<LtsLlj, V_LljUser>((a, v) =>
                new JoinQueryInfos(JoinType.Left, a.ItemNo == v.ItemNo))
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                "未完成".Equals(queryObj.result),
                (a, b,
                    e, f, g, i) => a.FcheckResu == null)
                (a, v) => a.FcheckResu == null)
            .WhereIF(
                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                !"未完成".Equals(queryObj.result),
                (a, b,
                    e, f, g, i) => a.FcheckResu != null)
            .WhereIF(id > 0, (a, b,
                    e, f, g, i) => a.Id == id)
            .WhereIF(queryObj.createUser != "PL017" && queryObj.createUser != "HMLYY" && queryObj.UserIndex == "0", (a, b,
                    e, f, g, i) => (g.Fcode == queryObj.createUser || i.Fcode == queryObj.createUser ||
                                   (g.Fcode == null && i.Fcode == null)))//判断此单的检验员,或者检验为空就显示此单据
                (a, v) => a.FcheckResu != null)
            .WhereIF(id > 0, (a, v) => a.Id == id)
            // æƒé™æŽ§åˆ¶ï¼šPL017、HMLYY、HMCS å¯ä»¥çœ‹åˆ°æ‰€æœ‰å•据,其他用户需要根据物料维护情况判断
            .WhereIF(queryObj.createUser != "PL017" && queryObj.createUser != "HMLYY" && queryObj.createUser != "HMCS" && queryObj.UserIndex == "0",
                (a, v) =>
                    // å¦‚果物料被维护,只有维护人员可以看到
                    (v.Fcode != null && v.Fcode == queryObj.createUser) ||
                    // å¦‚果物料未被维护,所有人都可以看到
                    (v.Fcode == null))
            //加筛选条件,根据供应商,物料编码,物料名称搜索
            //.WhereIF(queryObj.SearchValue!=null && queryObj.SearchValue!="", (a) => a.SuppName == queryObj.SearchValue|| a.ItemName == queryObj.SearchValue || a.ItemNo == queryObj.SearchValue )
            .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue),
                (a, b,
                    e, f, g, i) => a.SuppName.ToLower()
                         .Contains(queryObj.SearchValue.ToLower())
                     || a.ItemName.ToLower()
                         .Contains(queryObj.SearchValue.ToLower())
                     || a.ItemNo.ToLower()
                         .Contains(queryObj.SearchValue.ToLower())
                     || a.LotNo.ToLower()
                        .Contains(queryObj.SearchValue.ToLower())
                     || a.ReleaseNo.ToLower()
                        .Contains(queryObj.SearchValue.ToLower())
                     || a.ItemModel.ToLower()
                        .Contains(queryObj.SearchValue.ToLower()))
            //  .OrderByDescending((a, b,
            .OrderBy("CASE WHEN a.EMERGENCY = 1 THEN 0 ELSE 1 END, CASE WHEN a.STATUS = '已提交' THEN 0 ELSE 1 END, a.IQC_DATE desc, a.ID asc")
            //加筛选条件,根据选择的搜索字段进行精确搜索
            .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 1, // ç‰©æ–™ç¼–号搜索
                (a, v) => a.ItemNo != null && a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
            .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 2, // ç‰©æ–™åç§°æœç´¢
                (a, v) => a.ItemName != null && a.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()))
            .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()))
            .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, // ç‰©æ–™è§„格搜索
                (a, v) => a.ItemModel != null && a.ItemModel.ToLower().Contains(queryObj.SearchValue.ToLower()))
            .Select((a, v) => new LtsLlj
            {
                Id = a.Id,
                ItemNo = a.ItemNo,
                ItemName = a.ItemName,
                ItemModel = a.ItemModel,
                SuppName = a.SuppName,
                LotNo = a.LotNo,
                ReleaseNo = a.ReleaseNo,
                FcheckResu = a.FcheckResu,
                CreateDate = a.CreateDate,
                FcovertQty = a.FcovertQty,
                DEPARTMENTNAME = a.DEPARTMENTNAME,
                FngDesc = a.FngDesc,
                UrgentFlag = a.UrgentFlag,
                Ftype = a.Ftype,
                LotNo1 = a.LotNo1,
                EMERGENCY = a.EMERGENCY,
                Status = a.Status,
                IqcDate = a.IqcDate,
                // æ·»åŠ ç»´æŠ¤äººå‘˜ä¿¡æ¯
                Fcode = v.Fcode
            })
            .OrderBy("CASE WHEN EMERGENCY = 1 THEN 0 ELSE 1 END, CASE WHEN STATUS = '已提交' THEN 0 ELSE 1 END, IQC_DATE desc, ID asc")
            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
        // ä¸ºæ¯ä¸ªæ£€éªŒå•添加检验项目数量信息
        foreach (var item in pageList)
        // æ‰¹é‡èŽ·å–æ£€éªŒé¡¹ç›®æ•°é‡ï¼Œé¿å…N+1查询问题
        if (pageList.Any())
        {
            // èŽ·å–è¯¥æ£€éªŒå•çš„æ£€éªŒé¡¹ç›®æ•°é‡
            var itemCount = db.Queryable<MesQaItemsDetectDetail5>()
                .Where(x => x.ReleaseNo == item.ReleaseNo)
                .Count();
            var releaseNos = pageList.Select(x => x.ReleaseNo).Distinct().ToList();
            
            // è®¾ç½®æ£€éªŒé¡¹ç›®æ•°é‡
            item.InspectionItemCount = itemCount;
            // ä¸ºæ¯ä¸ªæ£€éªŒå•设置检验项目数量和NewFngDesc字段
            foreach (var item in pageList)
            {
                var count = db.Queryable<MesQaItemsDetectDetail5>()
                    .Where(x => x.ReleaseNo == item.ReleaseNo)
                    .Count();
                item.InspectionItemCount = count;
                item.NewFngDesc = item.FngDesc;
            }
        }
        
        var emergencyValues = pageList.Select(item => item.EMERGENCY).ToList();