新框架PC后端代码(祈禧6月初版本)
lg
7 天以前 9818c99cf8b660d5cc29c4f404b642c2f361df3c
WebApi/GS.QC/Service/MesQmCheckitemManager.cs
@@ -13,6 +13,8 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using Gs.BaseInfo.Models;
namespace GS.QC.Service;
@@ -43,22 +45,27 @@
        var _sbWhere = new StringBuilder(" 1=1 " + query.keyWhere);
        var _sbBy = new StringBuilder(query.sortName + " " + query.sortOrder);
        var totalCount = 0;
        var itemsList = Db.Queryable<MesQmCheckitem, MesItems, SysOrganization>(
                (a, b, org) => new object[]
        var itemsList = Db.Queryable<MesQmCheckitem, MesItems, SysOrganization, SysUser, SysUser>(
                (a, b, org, u1, u2) => new object[]
                {
                    JoinType.Left, a.ItemId == b.Id,
                    JoinType.Left, b.FSubsidiary == org.Fid
                }).Select((a, b, org) => new MesQmCheckitem
                {
                    FSubsidiary = "(" + org.FNumber + ")" + org.Name,
                    mc = b.ItemName,
                    gg = b.ItemModel,
                    ItemNo = b.ItemNo,
                }, true)
                    JoinType.Left, b.FSubsidiary == org.Fid,
                    JoinType.Left, a.FoneCheckor == u1.Account,
                    JoinType.Left, a.CreateBy == u2.Account
                })
            .Select((a, b, org, u1, u2) => new MesQmCheckitem
            {
                FSubsidiary = "(" + org.FNumber + ")" + org.Name,
                mc = b.ItemName,
                gg = b.ItemModel,
                ItemNo = b.ItemNo,
                // 新增:审批人姓名、制单人姓名
                FoneCheckor = u1.UserName,
                CreateBy = u2.UserName
            }, true)
            .Where(_sbWhere.ToString())
            .OrderBy(_sbBy.ToString())
            .ToPageList(query.currentPage, query.everyPageSize,
                ref totalCount);
            .ToPageList(query.currentPage, query.everyPageSize, ref totalCount);
        var pageList = new PageList<MesQmCheckitem>(itemsList, totalCount,
            query.everyPageSize);
@@ -75,7 +82,9 @@
    public ReturnDto<MesQmCheckitem> GetModel(
        [FromBody] MesQmCheckitem model)
    {
        // 获取主表
        var m = base.GetById(model.Guid);
        System.Text.StringBuilder sbSql = new StringBuilder();
        sbSql.Append("select top 1 FSubsidiary,org.NAME as fName,org.FNumber, [item_name],[item_model],item_no from MES_ITEMS i left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID where i.id=" + m.ItemId);
        try
@@ -92,6 +101,17 @@
        {
            LogHelper.Debug(ToString(), "GetModel error:" + ex.Message);
        }
        // 新增:审批人姓名查询
        if (!string.IsNullOrEmpty(m.FoneCheckor))
        {
            var user = Db.Queryable<SysUser>()
                .Where(u => u.Account == m.FoneCheckor)
                .Select(u => u.UserName)
                .First();
            m.FoneCheckor = user ?? m.FoneCheckor; // 查不到则保留原值
        }
        m.list = Db.Queryable<MesQmCheckitemDt, MesQmAql1>((a, b) =>
                new object[]
                {
@@ -331,4 +351,99 @@
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    #region 物料类别检验项目
    /// <summary>
    ///     查询列表,支持分页
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<MesQmCheckitem>> GetListPageLeiBie(PageQuery query)
    {
        var _sbWhere = new StringBuilder(" 1=1 " + query.keyWhere);
        var _sbBy = new StringBuilder(query.sortName + " " + query.sortOrder);
        var totalCount = 0;
        var itemsList = Db.Queryable<MesQmCheckitem, MesItemType, SysUser, SysUser>(
                (a, b, u1, u2) => new object[]
                {
                  JoinType.Left, a.ItemId == b.Id,
                  JoinType.Left, a.FoneCheckor == u1.Account,
                  JoinType.Left, a.CreateBy == u2.Account
                })
            .Select((a, b, u1, u2) => new MesQmCheckitem
            {
                mc = b.Tname,
                ItemNo = b.Tcode,
                // 新增:审批人姓名、制单人姓名
                FoneCheckor = u1.UserName,
                CreateBy = u2.UserName
            }, true)
            .Where(_sbWhere.ToString())
            .OrderBy(_sbBy.ToString())
            .ToPageList(query.currentPage, query.everyPageSize, ref totalCount);
        var pageList = new PageList<MesQmCheckitem>(itemsList, totalCount,
            query.everyPageSize);
        return ReturnDto<PageList<MesQmCheckitem>>.QuickReturn(pageList,
            ReturnCode.Success, "读取成功");
    }
    /// <summary>
    ///     根据主表id读取主表和子表
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<MesQmCheckitem> GetModelLeiBie(
        [FromBody] MesQmCheckitem model)
    {
        // 获取主表
        var m = base.GetById(model.Guid);
        System.Text.StringBuilder sbSql = new StringBuilder();
        sbSql.Append("select top 1 tname as [item_name],tcode as item_no from MES_ITEM_TYPE i where i.id=" + m.ItemId);
        try
        {
            DataSet dset = new DataSet();
            dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString());
            System.Data.DataRow r = dset.Tables[0].Rows[0];
            m.ItemNo = r["item_no"].ToString();
            m.mc = r["item_name"].ToString();
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "GetModel error:" + ex.Message);
        }
        // 新增:审批人姓名查询
        if (!string.IsNullOrEmpty(m.FoneCheckor))
        {
            var user = Db.Queryable<SysUser>()
                .Where(u => u.Account == m.FoneCheckor)
                .Select(u => u.UserName)
                .First();
            m.FoneCheckor = user ?? m.FoneCheckor; // 查不到则保留原值
        }
        m.list = Db.Queryable<MesQmCheckitemDt, MesQmAql1>((a, b) =>
                new object[]
                {
                    JoinType.Left, a.SampleSizeNo == b.SampleSizeNo
                })
            .OrderBy((a, b) => a.Forder)
            .Select((a, b) => new MesQmCheckitemDt
            {
                sampleSizeName = b.SampleSizeName
            }, true)
            .Where(a => a.Pid == model.Guid)
            .ToList();
        if (m != null)
            return ReturnDto<MesQmCheckitem>.QuickReturn(m,
                ReturnCode.Success, "读取成功!");
        return ReturnDto<MesQmCheckitem>.QuickReturn(m, ReturnCode.Default,
            "读取失败!");
    }
    #endregion
}