快乐的昕的电脑
2025-11-28 bd7f147b15efd57c5f054e537e715486c53c25dc
标准版
已修改27个文件
已添加1个文件
1159 ■■■■ 文件已修改
WebApi/GS.QC/Models/MesQaMj.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/FqcManager.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/IpqcXunManager.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesDefectCodeManager.cs 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesQaItemsDetect01Manager.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesQaMjManager.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesQmCheckitemManager.cs 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/MesItemTypeManager.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/PrintAutoManager.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Entity/BaseInfo/MesItemType.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.HostIIS/appsettings.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesDeToLineController.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzErrorJsController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzJssalaryController.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzScheduleController.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzTimeTypeController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaCk/MesItemQtDJManager.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaCk/MesSctkSqDjManager.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaRk/MesItemQtrkDjManager.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Report/CkController.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Report/QLController.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Services/FmController.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Toolbox/ApiCore/Common/Mvc/CustomControllerFeatureProvider.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Toolbox/ExcelHelper.cs 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Warehouse/Services/MesInvItemInsManager.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/Service/WomcaaManager.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/WorkService/WorkProController.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GsMesSolution.sln 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Models/MesQaMj.cs
@@ -96,4 +96,19 @@
    /// ä¾›åº”商编号
    /// </summary>
    [SugarColumn(IsIgnore = true)] public string? suppNo { get; set; }
    /// <summary>
    /// å®¡æ ¸äºº
    /// </summary>
    [SugarColumn(IsIgnore = true)] public string? CheckUserName { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(IsIgnore = true)] public string? CreateByName { get; set; }
    /// <summary>
    /// æœ€åŽæ›´æ–°äºº
    /// </summary>
    [SugarColumn(IsIgnore = true)] public string? LastupdateByName { get; set; }
}
WebApi/GS.QC/Service/FqcManager.cs
@@ -148,7 +148,10 @@
            m.list = new List<dynamic>();
            m.list2 = new List<dynamic>();
            System.Text.StringBuilder sb = new StringBuilder();
            sb.Append("select * from  MES_QA_ITEMS_DETECT_DETAIL12 where parent_guid='" + guid + "' order by fstand asc");
            sb.Append("select * ,cj.USER_NAME as createByName " +
                " from  MES_QA_ITEMS_DETECT_DETAIL12 a " +
                " left join SYS_USER cj on cj.ACCOUNT=a.create_by " +
                " where parent_guid='" + guid + "' order by fstand asc ");
            sb.Append("   select d13.*,d5.fcheck_item as  fcheckItemd5,d5.ybsl from  MES_QA_ITEMS_DETECT_DETAIL13 d13 left join[dbo].[MES_QA_ITEMS_DETECT_DETAIL5] d5 on d13.parent_guid = d5.guid");
            sb.Append("  where d13.parent_guid = '" + guid + "'");
            sb.Append(" order by d13.fcheck_item asc");
WebApi/GS.QC/Service/IpqcXunManager.cs
@@ -144,7 +144,10 @@
            m.list = new List<dynamic>();
            m.list2 = new List<dynamic>();
            StringBuilder sb = new StringBuilder();
            sb.Append("select * from  MES_QA_ITEMS_DETECT_DETAIL12 where parent_guid='" + guid + "' order by fstand asc");
            sb.Append("select *  ,cj.USER_NAME as createByName " +
                " from  MES_QA_ITEMS_DETECT_DETAIL12 a " +
                " left join SYS_USER cj on cj.ACCOUNT=a.create_by " +
                " where parent_guid='" + guid + "' order by fstand asc ");
            sb.Append("   select d13.*,d5.fcheck_item as  fcheckItemd5,d5.ybsl from  MES_QA_ITEMS_DETECT_DETAIL13 d13 left join[dbo].[MES_QA_ITEMS_DETECT_DETAIL5] d5 on d13.parent_guid = d5.guid");
            sb.Append("  where d13.parent_guid = '" + guid + "'");
            sb.Append(" order by d13.fcheck_item asc");
WebApi/GS.QC/Service/MesDefectCodeManager.cs
@@ -1,15 +1,17 @@
using System.Text;
using GS.QC.Models;
using Gs.Entity.Sys;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox.ApiCore.Group;
using GS.QC.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Newtonsoft.Json.Linq;
using SqlSugar;
using System.Data;
using System.Dynamic;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using System.Text;
namespace GS.QC.Service;
@@ -41,24 +43,53 @@
        try
        {
            var _sbWhere = new StringBuilder(" 1=1" + query.keyWhere);
            var _sbBy =
                new StringBuilder(query.sortName + " " + query.sortOrder);
            var _sbBy = new StringBuilder(query.sortName + " " + query.sortOrder);
            var totalCount = 0;
            var itemsList = Db.Queryable<MesDefectCode>("a")
            var itemsList = Db.Queryable<MesDefectCode, SysUser>(
                    (a, u) => new object[]
                    {
                        JoinType.Left, a.LastupdateBy == u.Account
                    })
                .Where(_sbWhere.ToString())
                .OrderBy(_sbBy.ToString())
                .ToPageList(query.currentPage, query.everyPageSize,
                    ref totalCount);
.Select((a, u) => new MesDefectCode
{
    Guid = a.Guid,
    DefectCode = a.DefectCode,
    DefectName = a.DefectName,
    Memo = a.Memo,
    DefectSort = a.DefectSort,
    DefectRate = a.DefectRate,
    CreateBy = a.CreateBy,
    CreateDate = a.CreateDate,
            pageList = new PageList<MesDefectCode>(itemsList, totalCount,
                query.everyPageSize);
            return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList,
                ReturnCode.Success, "读取成功");
    LastupdateBy = u.UserName, // è¿™é‡Œç”¨å§“名替换账号
    LastupdateDate = a.LastupdateDate,
    WorkshopCenterCode = a.WorkshopCenterCode,
    WorkshopCenterName = a.WorkshopCenterName,
    ProcNo = a.ProcNo,
    DOrder = a.DOrder,
    SType = a.SType,
    Type1 = a.Type1,
    Type2 = a.Type2,
    Type3 = a.Type3,
    Type4 = a.Type4,
    Type5 = a.Type5,
    Type6 = a.Type6,
    Type7 = a.Type7,
    Type8 = a.Type8,
    Pid = a.Pid
})
                .Where(_sbWhere.ToString())
                .OrderBy(_sbBy.ToString())
                .ToPageList(query.currentPage, query.everyPageSize, ref totalCount);
            pageList = new PageList<MesDefectCode>(itemsList, totalCount, query.everyPageSize);
            return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList, ReturnCode.Success, "读取成功");
        }
        catch (Exception ex)
        {
            return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList,
                ReturnCode.Default, ex.Message);
            return ReturnDto<PageList<MesDefectCode>>.QuickReturn(pageList, ReturnCode.Default, ex.Message);
        }
    }
WebApi/GS.QC/Service/MesQaItemsDetect01Manager.cs
@@ -146,7 +146,10 @@
        m.list = new List<dynamic>();
        m.list2 = new List<dynamic>();
        System.Text.StringBuilder sb = new StringBuilder();
        sb.Append("select * from  MES_QA_ITEMS_DETECT_DETAIL12 where parent_guid='" + guid + "' order by fstand asc");
        sb.Append("select * ,cj.USER_NAME as createByName " +
            "from  MES_QA_ITEMS_DETECT_DETAIL12 a " +
            "left join SYS_USER cj on cj.ACCOUNT=a.create_by " +
            "where parent_guid='" + guid + "' order by fstand asc");
        sb.Append("   select d13.*,d5.fcheck_item as  fcheckItemd5,d5.ybsl from  MES_QA_ITEMS_DETECT_DETAIL13 d13 left join[dbo].[MES_QA_ITEMS_DETECT_DETAIL5] d5 on d13.parent_guid = d5.guid");
        sb.Append("  where d13.parent_guid = '" + guid + "'");
        sb.Append(" order by d13.fcheck_item asc");
WebApi/GS.QC/Service/MesQaMjManager.cs
@@ -46,21 +46,28 @@
            var _sbBy =
                new StringBuilder(query.sortName + " " + query.sortOrder);
            var totalCount = 0;
            var itemsList = Db.Queryable<MesQaMj, MesItems, SysOrganization, MesSupplier>(
                    (a, b, org, d) => new JoinQueryInfos(
            var itemsList = Db.Queryable<MesQaMj, MesItems, SysOrganization, MesSupplier, SysUser, SysUser, SysUser>(
                    (a, b, org, d, u1, u2, u3) => new JoinQueryInfos(
                        JoinType.Inner, a.ItemId == b.Id,
                        JoinType.Inner, b.FSubsidiary == org.Fid,
                        JoinType.Left, a.SuppId == d.Id.ToString()
                        JoinType.Left, a.SuppId == d.Id.ToString(),
                        JoinType.Left, a.CheckUser == u1.Account,
                        JoinType.Left, a.CreateBy == u2.Account,
                        JoinType.Left, a.LastupdateBy == u3.Account
                    ))
                 .Where(_sbWhere.ToString())
                 .OrderBy(_sbBy.ToString())
                .Select((a, b, org, d) => new MesQaMj
                .Select((a, b, org, d, u1, u2, u3) => new MesQaMj
                {
                    FSubsidiary = "(" + org.FNumber + ") " + org.Name,
                    Guid = a.Guid.SelectAll(),
                    gysName = d.SuppName,
                    itemName = b.ItemName,
                    suppNo = d.SuppNo
                    suppNo = d.SuppNo,
                    // æ–°å¢žï¼šå®¡æ ¸äººã€åˆ›å»ºäººã€æœ€åŽæ›´æ–°äººå§“名
                    CheckUserName = u1.UserName,
                    CreateByName = u2.UserName,
                    LastupdateByName = u3.UserName
                })
                .ToPageList(query.currentPage, query.everyPageSize,
                    ref totalCount);
@@ -103,6 +110,25 @@
        {
            LogHelper.Debug(ToString(), "GetModel error:" + ex.Message);
        }
        // æ–°å¢žï¼šè”查SysUser获取CheckUser和LastupdateBy的姓名
        if (!string.IsNullOrEmpty(m.CheckUser))
        {
            var checkUserName = Db.Queryable<SysUser>()
                .Where(u => u.Account == m.CheckUser)
                .Select(u => u.UserName)
                .First();
            m.CheckUser = checkUserName ?? m.CheckUser;
        }
        if (!string.IsNullOrEmpty(m.LastupdateBy))
        {
            var lastupdateByName = Db.Queryable<SysUser>()
                .Where(u => u.Account == m.LastupdateBy)
                .Select(u => u.UserName)
                .First();
            m.LastupdateBy = lastupdateByName ?? m.LastupdateBy;
        }
        if (m != null)
            return ReturnDto<MesQaMj>.QuickReturn(m,
                ReturnCode.Success, "读取成功!");
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
}
WebApi/Gs.BaseInfo/Services/MesItemTypeManager.cs
@@ -1,11 +1,13 @@
using System.Text;
using Gs.BaseInfo.Models;
using Gs.BaseInfo.Models;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox.ApiCore.Group;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Data;
using System.Data.SqlClient;
using System.Text;
namespace Gs.BaseInfo.Services;
@@ -70,4 +72,79 @@
        return ReturnDto<MesItemType>.QuickReturn(m, ReturnCode.Default,
            "读取失败!");
    }
    /// <summary>
    ///   ç»´æŠ¤æ£€éªŒé¡¹ç›®æ—¶å¼¹å‡ºé€‰æ‹©
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListSelect([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        string keyType = model.keyType;
        string keyWord = model.keyWord;
        var dset = new DataSet();
        try
        {
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[select_item_type]", conn))
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@inCurrentPage", currentPage),
                        new("@inEveryPageSize", everyPageSize),
                        new("@inSortName", sortName),
                        new("@inSortOrder", ""),
                        new("@inQueryWhere", keyWhere),
                        new("@inP1",keyType),//当为:检验项目,iqc,ipqc,fqc时
                        new("@inP2", keyWord)
                    };
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    using (var dt = new SqlDataAdapter(cmd))
                    {
                        dt.Fill(dset, "0");
                    }
                }
                conn.Close();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
        var _pglist = new PageList<dynamic>
        {
            total = 0,
            everyPageSize = 0,
            pages = 0,
            list = new List<dynamic>()
        };
        if (dset != null && dset.Tables.Count > 0 &&
            dset.Tables[0].Rows.Count > 0) //有数据
        {
            var intTotal =
                int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
            var pages = intTotal % everyPageSize != 0
                ? intTotal / everyPageSize + 1
                : intTotal / everyPageSize;
            _pglist.total = intTotal;
            _pglist.everyPageSize = everyPageSize;
            _pglist.pages = pages;
            var _dy = dset.Tables[0].TableToDynamicList();
            _pglist.list = _dy;
        }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
            ReturnCode.Success, "读取成功");
    }
}
WebApi/Gs.BaseInfo/Services/PrintAutoManager.cs
@@ -95,6 +95,8 @@
        public ReturnDto<string> EditModel([FromBody] dynamic model)
        {
            Guid? guid = model.guid; //主键
            string printStatus = model.printStatus;
            string printLastMsg = model.printLastMsg;
            var _outMsg = "";
            var _outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
@@ -108,6 +110,8 @@
                        SqlParameter[] parameters =
                        {
                           new("@inGuid", UtilityHelper.CheckGuid(guid) ? guid: DBNull.Value),
                           new("@printStatus", printStatus),
                           new("@printLastMsg", printLastMsg),
                        };
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
@@ -130,4 +134,4 @@
            return ReturnDto<string>.QuickReturn(guid.ToString(), ReturnCode.Success, _outMsg);
        }
    }
}
}
WebApi/Gs.Entity/BaseInfo/MesItemType.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
using SqlSugar;
namespace Gs.BaseInfo.Models;
/// <summary>
/// </summary>
[SugarTable("MES_ITEM_TYPE")]
public class MesItemType
{
 /// <summary>
 /// </summary>
 [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
    public Guid Guid { get; set; }
 /// <summary>
 ///     ID
 /// </summary>
 [SugarColumn(ColumnName = "id")]
    public int Id { get; set; }
 /// <summary>
 ///     ç±»åž‹ç¼–码
 /// </summary>
 [SugarColumn(ColumnName = "tcode")]
    public string Tcode { get; set; }
 /// <summary>
 ///     ç±»åž‹åç§°
 /// </summary>
 [SugarColumn(ColumnName = "tname")]
    public string Tname { get; set; }
 /// <summary>
 ///     å¤‡æ³¨
 /// </summary>
 [SugarColumn(ColumnName = "remark")]
    public string Remark { get; set; }
 /// <summary>
 ///     åˆ›å»ºäºº
 /// </summary>
 [SugarColumn(ColumnName = "create_by")]
    public string CreateBy { get; set; }
 /// <summary>
 ///     åˆ›å»ºæ—¶é—´
 /// </summary>
 [SugarColumn(ColumnName = "create_date")]
    public DateTime? CreateDate { get; set; }
 /// <summary>
 ///     æœ€åŽæ›´æ–°äºº
 /// </summary>
 [SugarColumn(ColumnName = "lastupdate_by")]
    public string LastupdateBy { get; set; }
 /// <summary>
 ///     æœ€åŽæ›´æ–°æ—¶é—´
 /// </summary>
 [SugarColumn(ColumnName = "lastupdate_date")]
    public DateTime? LastupdateDate { get; set; }
 /// <summary>
 /// </summary>
 [SugarColumn(ColumnName = "company")]
    public string Company { get; set; }
 /// <summary>
 /// </summary>
 [SugarColumn(ColumnName = "factory")]
    public string Factory { get; set; }
 /// <summary>
 ///     IQC分类
 /// </summary>
 [SugarColumn(ColumnName = "iqc_type")]
    public string IqcType { get; set; }
 /// <summary>
 ///     IQC分类名称
 /// </summary>
 [SugarColumn(ColumnName = "iqc_type_name")]
    public string IqcTypeName { get; set; }
 /// <summary>
 ///     ä¸Šçº§åˆ†ç»„
 /// </summary>
 [SugarColumn(ColumnName = "pgroup")]
    public string Pgroup { get; set; }
 /// <summary>
 ///     æè¿°
 /// </summary>
 [SugarColumn(ColumnName = "description")]
    public string Description { get; set; }
}
WebApi/Gs.HostIIS/appsettings.json
@@ -6,8 +6,8 @@
    }
  },
  "AllowedHosts": "*",
  /*"ConnectionStrings": "Data Source=192.168.112.6,12468;Initial Catalog=TEST_MES;User ID=sa;Password =FuDa@2025",*/
  "ConnectionStrings": "Data Source=192.168.112.6,12468;Initial Catalog=GS_MES;User ID=sa;Password =FuDa@2025",
  "ConnectionStrings": "Data Source=172.100.1.114,12468;Initial Catalog=TEST_MES;User ID=sa;Password =FuDa@2025",
  //"ConnectionStrings": "Data Source=172.100.1.114,12468;Initial Catalog=GS_MES;User ID=sa;Password =FuDa@2025",
  "TestErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest",
  "TestErpUrl2": "http://192.168.1.149:8066/WebService1.asmx/MesToErpUpdateFlag",
  "ProductionErpUrl": "http://192.168.1.149:8066/WebService1.asmx/mesToErpinfoFormal",
WebApi/Gs.JJGZ/MesDeToLineController.cs
@@ -53,7 +53,7 @@
            string orderBy = string.IsNullOrEmpty(sortName) ? "CREATE_DATE DESC" : $"{sortName} ASC";
            
            // æŸ¥è¯¢æ€»æ•°
            string countSql = $"SELECT COUNT(1) FROM Mes_DepartmentToLine a WHERE 1=1 {whereClause}";
            string countSql = $"SELECT COUNT(1) FROM Mes_DepartmentToLine a  LEFT JOIN SYS_ORGANIZATION B ON A.OrgId = B.FID LEFT JOIN SYS_USER cj ON A.CREATE_BY = cj.ACCOUNT WHERE 1=1 {whereClause}";
            var countResult = DbHelperSQL.GetSingle(countSql);
            int intTotal = countResult != null ? Convert.ToInt32(countResult) : 0;
            
@@ -63,10 +63,14 @@
                int offset = (currentPage - 1) * everyPageSize;
                string dataSql = $@"
                    SELECT * FROM (
                        SELECT ROW_NUMBER() OVER (ORDER BY {orderBy}) AS RowNum, A.*, b.Name as OrgName
                        SELECT
                            ROW_NUMBER() OVER (ORDER BY {orderBy}) AS RowNum,
                            A.*,
                            B.Name AS OrgName,
                            cj.USER_NAME AS CreateByName
                        FROM Mes_DepartmentToLine A
                        LEFT JOIN SYS_ORGANIZATION B ON A.OrgId = B.FID
                        LEFT JOIN SYS_USER cj ON A.CREATE_BY = cj.ACCOUNT
                        WHERE 1=1 {whereClause}
                    ) AS T
                    WHERE T.RowNum BETWEEN {offset + 1} AND {offset + everyPageSize}";
@@ -108,7 +112,7 @@
        string mainTable = "Mes_DepartmentToLine";
        try
        {
            string sqlMain = $"SELECT * FROM {mainTable} WHERE GUID='{guid}'";
            string sqlMain = $"SELECT a.* ,cj.USER_NAME as createByName ,sh.USER_NAME as checkUserName  FROM {mainTable} a  left join SYS_USER cj on cj.ACCOUNT=a.create_by left join SYS_USER sh on sh.ACCOUNT=a.CHECK_USER WHERE a.GUID='{guid}'";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
WebApi/Gs.JJGZ/MesJjgzErrorJsController.cs
@@ -104,7 +104,7 @@
        string mainTable = "MES_JJGZ_ERRORJS";
        try
        {
            string sqlMain = $"SELECT * FROM {mainTable} WHERE guid='{guid}'";
            string sqlMain = $"SELECT a.* ,cj.USER_NAME as createByName ,sh.USER_NAME as checkUserName FROM {mainTable} a  left join SYS_USER cj on cj.ACCOUNT=a.create_by left join SYS_USER sh on sh.ACCOUNT=a.CHECK_USER WHERE a.guid='{guid}'";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
WebApi/Gs.JJGZ/MesJjgzJssalaryController.cs
@@ -99,11 +99,18 @@
        dynamic m = new ExpandoObject();
        m.list = new List<dynamic>();
        m.list2 = new List<dynamic>();
        // å‡è®¾ä¸»è¡¨ä¸ºMES_JJGZ_JS_SALARY,明细表为MES_JJGZ_JS_SALARY_DETAIL
        string mainTable = "MES_JJGZ_JSSALARY";
        try
        {
            string sqlMain = $"SELECT * FROM {mainTable} WHERE guid='{guid}'";
            string sqlMain = $@"
SELECT
    a.*,
    cj.USER_NAME AS createByName,
    sh.USER_NAME AS checkUserName
FROM {mainTable} a
LEFT JOIN SYS_USER cj ON cj.ACCOUNT = a.create_by
LEFT JOIN SYS_USER sh ON sh.ACCOUNT = a.CHECK_USER
WHERE a.guid = '{guid}'";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
WebApi/Gs.JJGZ/MesJjgzScheduleController.cs
@@ -52,7 +52,7 @@
            string orderBy = string.IsNullOrEmpty(sortName) ? "CREATE_DATE DESC" : $"{sortName} ASC";
            
            // æŸ¥è¯¢æ€»æ•°
            string countSql = $"SELECT COUNT(1) FROM MES_JJGZ_SCHEDULES WHERE 1=1 {keyWhere}";
            string countSql = $"SELECT COUNT(1) FROM MES_JJGZ_SCHEDULES a LEFT JOIN SYS_USER cj ON cj.ACCOUNT=a.create_by WHERE 1=1 {keyWhere}";
            var countResult = DbHelperSQL.GetSingle(countSql);
            int intTotal = countResult != null ? Convert.ToInt32(countResult) : 0;
            
@@ -62,8 +62,12 @@
                int offset = (currentPage - 1) * everyPageSize;
                string dataSql = $@"
                    SELECT * FROM (
                        SELECT ROW_NUMBER() OVER (ORDER BY {orderBy}) AS RowNum, *
                        FROM MES_JJGZ_SCHEDULES
                        SELECT
                            ROW_NUMBER() OVER (ORDER BY {orderBy}) AS RowNum,
                            a.*,
                            cj.USER_NAME as createByName
                        FROM MES_JJGZ_SCHEDULES a
                        LEFT JOIN SYS_USER cj ON cj.ACCOUNT = a.create_by
                        WHERE 1=1 {keyWhere}
                    ) AS T
                    WHERE T.RowNum BETWEEN {offset + 1} AND {offset + everyPageSize}";
@@ -105,7 +109,7 @@
        string mainTable = "MES_JJGZ_SCHEDULES";
        try
        {
            string sqlMain = $"SELECT * FROM {mainTable} WHERE GUID='{guid}'";
            string sqlMain = $"SELECT a.* ,cj.USER_NAME as createByName  FROM {mainTable} a  left join SYS_USER cj on cj.ACCOUNT=a.create_by WHERE a.GUID='{guid}'";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
WebApi/Gs.JJGZ/MesJjgzTimeTypeController.cs
@@ -38,7 +38,7 @@
        m.list = new List<dynamic>();
        try
        {
            string sqlMain = $"SELECT * FROM MES_JJGZ_TIMETYPE";
            string sqlMain = $"SELECT a.* ,cj.USER_NAME as createByName FROM MES_JJGZ_TIMETYPE a left join SYS_USER cj on cj.ACCOUNT=a.create_by ";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 &&
                dsMain.Tables[0].Rows.Count > 0)
@@ -71,7 +71,8 @@
        string mainTable = "MES_JJGZ_TIMETYPE";
        try
        {
            string sqlMain = $"SELECT * FROM {mainTable} WHERE guid='{guid}'";
            string sqlMain = $" SELECT a.* ,sh.USER_NAME as checkUserName ,cj.USER_NAME as createByName " +
                $" FROM {mainTable} a left join SYS_USER sh on sh.ACCOUNT=a.CHECK_USER left join SYS_USER cj on cj.ACCOUNT=a.create_by WHERE a.guid='{guid}' ";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
WebApi/Gs.QiTaCk/MesItemQtDJManager.cs
@@ -189,5 +189,69 @@
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
        }
        /// <summary>
        /// å…¶ä»–出库报表
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPageReport([FromBody] dynamic model)
        {
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = model.sortName;
            string keyWhere = model.keyWhere;
            SqlParameter[] parameters =
            {
            new("@inCurrentPage", currentPage),
            new("@inEveryPageSize", everyPageSize),
            new("@inSortName", sortName),
            new("@inSortOrder", ""),
            new("@inQueryWhere", keyWhere),
            new("@inFid", ""),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")
        };
            var dset = new DataSet();
            var _pglist = new PageList<dynamic>
            {
                total = 0,
                everyPageSize = 0,
                pages = 0,
                list = new List<dynamic>()
            };
            try
            {
                dset = DbHelperSQL.RunProcedure("prc_QTDJ_report", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0) //有数据
                {
                    var intTotal =
                        int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
                    var pages = intTotal % everyPageSize != 0
                        ? intTotal / everyPageSize + 1
                        : intTotal / everyPageSize;
                    _pglist.total = intTotal;
                    _pglist.everyPageSize = everyPageSize;
                    _pglist.pages = pages;
                    var _dy = dset.Tables[0].TableToDynamicList();
                    _pglist.list = _dy;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
                return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
              ReturnCode.Exception, ex.Message);
            }
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
                ReturnCode.Success, "读取成功");
        }
    }
}
WebApi/Gs.QiTaCk/MesSctkSqDjManager.cs
@@ -195,5 +195,8 @@
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                "操作成功!");
        }
    }
}
WebApi/Gs.QiTaRk/MesItemQtrkDjManager.cs
@@ -190,4 +190,68 @@
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    /// å…¶ä»–入库报表
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPageReport([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        SqlParameter[] parameters =
        {
            new("@inCurrentPage", currentPage),
            new("@inEveryPageSize", everyPageSize),
            new("@inSortName", sortName),
            new("@inSortOrder", ""),
            new("@inQueryWhere", keyWhere),
            new("@inFid", ""),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")
        };
        var dset = new DataSet();
        var _pglist = new PageList<dynamic>
        {
            total = 0,
            everyPageSize = 0,
            pages = 0,
            list = new List<dynamic>()
        };
        try
        {
            dset = DbHelperSQL.RunProcedure("prc_QTRKDJ_report", parameters, "0");
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0) //有数据
            {
                var intTotal =
                    int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
                var pages = intTotal % everyPageSize != 0
                    ? intTotal / everyPageSize + 1
                    : intTotal / everyPageSize;
                _pglist.total = intTotal;
                _pglist.everyPageSize = everyPageSize;
                _pglist.pages = pages;
                var _dy = dset.Tables[0].TableToDynamicList();
                _pglist.list = _dy;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
          ReturnCode.Exception, ex.Message);
        }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
            ReturnCode.Success, "读取成功");
    }
}
WebApi/Gs.Report/CkController.cs
@@ -362,5 +362,60 @@
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
                ReturnCode.Success, "读取成功");
        }
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPageCQTM([FromBody] dynamic model)
        {
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = model.sortName;
            string keyWhere = model.keyWhere;
            SqlParameter[] parameters =
            {
            new("@inCurrentPage", currentPage),
            new("@inEveryPageSize", everyPageSize),
            new("@inSortName", sortName),
            new("@inSortOrder", ""),
            new("@inQueryWhere", keyWhere),
            new("@inFid", ""),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")
        };
            var dset = new DataSet();
            var _pglist = new PageList<dynamic>
            {
                total = 0,
                everyPageSize = 0,
                pages = 0,
                list = new List<dynamic>()
            };
            try
            {
                dset = DbHelperSQL.RunProcedure("report_CQTM", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0) //有数据
                {
                    var intTotal =
                        int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
                    var pages = intTotal % everyPageSize != 0
                        ? intTotal / everyPageSize + 1
                        : intTotal / everyPageSize;
                    _pglist.total = intTotal;
                    _pglist.everyPageSize = everyPageSize;
                    _pglist.pages = pages;
                    var _dy = dset.Tables[0].TableToDynamicList();
                    _pglist.list = _dy;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
                ReturnCode.Success, "读取成功");
        }
    }
}
WebApi/Gs.Report/QLController.cs
@@ -163,6 +163,57 @@
                ReturnCode.Success, "读取成功");
        }
        /// <summary>
        ///     ç”ŸæˆæŠ¥å‘Š
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> GetErpBOM([FromBody] dynamic model)
        {
            int? rtnInt = (int)ReturnCode.Default;
            var _outMsg = "";
            var _outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[report_erpBOM]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int)
                    };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        cmd.ExecuteNonQuery();
                        _outMsg = parameters[0].Value.ToString();
                        _outSum = int.Parse(parameters[1].Value.ToString());
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "prc_QT_del error:" + ex.Message);
                        _outMsg = ex.Message;
                        _outSum = -1;
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            if (_outSum <= 0)
                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
                    _outMsg);
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
        }
        #region å·¥å•齐套报表
        /// <summary>
WebApi/Gs.Sys/Services/FmController.cs
@@ -204,7 +204,7 @@
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message+ ",formPath:"+ formPath+ ",_userGuid:"+ _userGuid);
                LogHelper.Debug(ToString(), ex.Message + ",formPath:" + formPath + ",_userGuid:" + _userGuid);
            }
            return ReturnDto<string>.QuickReturn(strMsg, ReturnCode.Success, "读取成功!");
@@ -256,6 +256,9 @@
                string keyGuid = model.keyGuid;
                string keyNo = model.keyNo;
                string idtype = model.idtype;//2仅仅是更新工单状态的时候有
                if (keyGuid.Length != 36)
                    keyGuid = "00000000-0000-0000-0000-000000000000";
                if (string.IsNullOrEmpty(idtype))
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo);
                else
@@ -288,6 +291,7 @@
            string keyMeth = model.keyMeth;
            string keyNo = model.keyNo;
            string idtype = model.idtype;//这个仅仅是更新工单状态的时候有
            if (keyMeth.ToUpper() == "delete".ToUpper())
                return "";
            try
WebApi/Gs.Toolbox/ApiCore/Common/Mvc/CustomControllerFeatureProvider.cs
@@ -66,15 +66,25 @@
                assembly.FullName.Contains("Swashbuckle"))
                return;
            //递归获取controller
            var assTemp = Assembly.Load(assembly);
            assTemp.GetTypes().ToList().ForEach(type =>
            try
            {
                //如果实现了IRomteService则认为是一个控制器
                if (!IsController(type)) return;
                feature.Controllers.Add(type.GetTypeInfo());
            });
            var a = assTemp.GetReferencedAssemblies();
            AddController(feature, a);
                var assTemp = Assembly.Load(assembly);
                assTemp.GetTypes().ToList().ForEach(type =>
                {
                    //如果实现了IRomteService则认为是一个控制器
                    if (!IsController(type)) return;
                    feature.Controllers.Add(type.GetTypeInfo());
                });
                var a = assTemp.GetReferencedAssemblies();
                AddController(feature, a);
            }
            catch (Exception)
            {
            }
        });
    }
WebApi/Gs.Toolbox/ExcelHelper.cs
@@ -178,13 +178,13 @@
    {
        var roct = aryHeader.Count;
        IWorkbook workbook = new HSSFWorkbook();
        var sheet = workbook.CreateSheet();
        //取得列宽
        var arrColWidth = new int[dtSource.Columns.Count];
        foreach (DataColumn item in dtSource.Columns)
            arrColWidth[item.Ordinal] = Encoding.GetEncoding(936)
                .GetBytes(item.ColumnName).Length;
        if (fixW <= 0)
        {
            for (var i = 0; i < dtSource.Rows.Count; i++)
                for (var j = 0; j < dtSource.Columns.Count; j++)
                {
@@ -192,59 +192,80 @@
                        .GetBytes(dtSource.Rows[i][j].ToString()).Length;
                    if (intTemp > arrColWidth[j]) arrColWidth[j] = intTemp;
                }
        var cusRow = sheet.CreateRow(0);
        var _rr = 0;
        foreach (string _hh in aryHeader)
        {
            cusRow = sheet.CreateRow(_rr);
            cusRow.CreateCell(0).SetCellValue(_hh);
            //cellRangAddress参数说明:起始行,结束行,起始列,结束列
            sheet.AddMergedRegion(new CellRangeAddress(_rr, _rr, 0,
                dtSource.Columns.Count - 1));
            // sheet.AddMergedRegion(new Region(0, 0, _rr, dtSource.Columns.Count - 1));
            _rr++;
        }
        //填充表头
        var headerRow = sheet.CreateRow(roct);
        var headStyle = workbook.CreateCellStyle();
        headStyle.Alignment = HorizontalAlignment.Center;
        headStyle.FillPattern = FillPattern.SolidForeground;
        headStyle.FillForegroundColor = HSSFColor.LightBlue.Index;
        var font = workbook.CreateFont();
        font.Color = HSSFColor.White.Index;
        font.FontHeightInPoints = 12;
        font.Boldweight = 700;
        headStyle.SetFont(font);
        foreach (DataColumn column in dtSource.Columns)
        const int maxRowsPerXlsSheet = 65535; // HSSF çš„单表行数上限(索引从0)
        int headerRowsCount = roct + 1; // aryHeader è¡Œæ•° + åˆ—头行
        int rowsPerSheet = maxRowsPerXlsSheet - headerRowsCount;
        if (rowsPerSheet <= 0) rowsPerSheet = 1;
        int totalRows = dtSource.Rows.Count;
        int sheetIndex = 0;
        ISheet sheet = null;
        ICellStyle headStyle = null;
        // åˆ†ç‰‡å†™å…¥ï¼Œæ¯ç‰‡å†™å…¥ header + æ•°æ®
        for (int startRow = 0; startRow < totalRows; startRow += rowsPerSheet)
        {
            headerRow.CreateCell(column.Ordinal)
                .SetCellValue(column.ColumnName);
            headerRow.GetCell(column.Ordinal).CellStyle = headStyle;
            sheet.SetColumnWidth(column.Ordinal,
                (arrColWidth[column.Ordinal] + 6) * 256);
            sheet = workbook.CreateSheet("Sheet" + (sheetIndex + 1));
            // åˆ›å»ºå¹¶åº”用列宽(每个 sheet éƒ½éœ€è¦ï¼‰
            for (int c = 0; c < dtSource.Columns.Count; c++)
            {
                sheet.SetColumnWidth(c, (arrColWidth[c] + 6) * 256);
            }
            // å†™å…¥ aryHeader(多行合并显示)
            var cusRow = sheet.CreateRow(0);
            var _rr = 0;
            foreach (string _hh in aryHeader)
            {
                cusRow = sheet.CreateRow(_rr);
                cusRow.CreateCell(0).SetCellValue(_hh);
                sheet.AddMergedRegion(new CellRangeAddress(_rr, _rr, 0,
                    dtSource.Columns.Count - 1));
                _rr++;
            }
            // å¡«å……表头
            var headerRow = sheet.CreateRow(roct);
            headStyle = workbook.CreateCellStyle();
            headStyle.Alignment = HorizontalAlignment.Center;
            headStyle.FillPattern = FillPattern.SolidForeground;
            headStyle.FillForegroundColor = HSSFColor.LightBlue.Index;
            var font = workbook.CreateFont();
            font.Color = HSSFColor.White.Index;
            font.FontHeightInPoints = 12;
            font.Boldweight = 700;
            headStyle.SetFont(font);
            for (int colIdx = 0; colIdx < dtSource.Columns.Count; colIdx++)
            {
                headerRow.CreateCell(colIdx).SetCellValue(dtSource.Columns[colIdx].ColumnName);
                headerRow.GetCell(colIdx).CellStyle = headStyle;
            }
            // å†™å…¥æ•°æ®æ®µ
            int endRow = Math.Min(startRow + rowsPerSheet, totalRows);
            for (int i = startRow; i < endRow; i++)
            {
                var dataRow = sheet.CreateRow((i - startRow) + roct + 1);
                for (var j = 0; j < dtSource.Columns.Count; j++)
                {
                    dataRow.CreateCell(j)
                        .SetCellValue(dtSource.Rows[i][j].ToString());
                }
            }
            sheetIndex++;
        }
        //sheet.SetAutoFilter(new CellRangeAddress(0, 0, 0, dtSource.Columns.Count - 1)); //首行筛选
        // if (fixW <= 0)
        //sheet.CreateFreezePane(dtSource.Columns.Count,
        //    1 + aryHeader.Count); //首行冻结
        //填充内容
        var dataRow = sheet.CreateRow(roct + 1);
        for (var i = 0; i < dtSource.Rows.Count; i++)
        // å¡«å…… footer(只写在最后一个 sheet ä¸Šï¼‰
        if (aryFotter != null && aryFotter.Count > 0 && sheet != null)
        {
            dataRow = sheet.CreateRow(i + roct + 1);
            for (var j = 0; j < dtSource.Columns.Count; j++)
                dataRow.CreateCell(j)
                    .SetCellValue(dtSource.Rows[i][j].ToString());
        }
        //填充footer
        if (aryFotter != null && aryFotter.Count > 0)
        {
            var _rot = roct + dtSource.Rows.Count + 2;
            var ftRow = sheet.CreateRow(_rot);
            var lastSheet = sheet;
            var _rot = roct + (totalRows - ((sheetIndex - 1) * rowsPerSheet)) + 1;
            if (_rot <= roct) _rot = roct + 1;
            var ftRow = lastSheet.CreateRow(_rot);
            var _ftidx = 0;
            var _ftw = dtSource.Columns.Count / 2;
            foreach (string _hh in aryFotter)
@@ -260,16 +281,14 @@
                    ftStyle.BorderBottom = BorderStyle.Thin;
                else
                    ftStyle.BorderBottom = BorderStyle.None;
                ftRow = sheet.CreateRow(_rot);
                ftRow = lastSheet.CreateRow(_rot);
                ftRow.CreateCell(0).SetCellValue(_hh);
                ftRow.GetCell(0).CellStyle = ftStyle;
                //cellRangAddress参数说明:起始行,结束行,起始列,结束列
                sheet.AddMergedRegion(
                    new CellRangeAddress(_rot, _rot, 0, _ftw - 1));
                ftRow.CreateCell(_ftw)
                    .SetCellValue(aryFotter2[_ftidx].ToString());
                lastSheet.AddMergedRegion(new CellRangeAddress(_rot, _rot, 0, _ftw - 1));
                ftRow.CreateCell(_ftw).SetCellValue(aryFotter2[_ftidx].ToString());
                ftRow.GetCell(_ftw).CellStyle = ftStyle;
                sheet.AddMergedRegion(new CellRangeAddress(_rot, _rot, _ftw,
                lastSheet.AddMergedRegion(new CellRangeAddress(_rot, _rot, _ftw,
                    dtSource.Columns.Count - 1));
                for (var c = 0; c < dtSource.Columns.Count; c++)
                {
@@ -282,7 +301,7 @@
            }
        }
        //保存
        // ä¿å­˜
        using (var ms = new MemoryStream())
        {
            using (var fs = new FileStream(strFileName, FileMode.Create,
WebApi/Gs.Warehouse/Services/MesInvItemInsManager.cs
@@ -246,5 +246,66 @@
            ReturnCode.Success, "读取成功");
    }
    /// <summary>
    /// é‡‡è´­å…¥åº“报表
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPageReport([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        SqlParameter[] parameters =
        {
            new("@inCurrentPage", currentPage),
            new("@inEveryPageSize", everyPageSize),
            new("@inSortName", sortName),
            new("@inSortOrder", ""),
            new("@inQueryWhere", keyWhere),
            new("@inFid", ""),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")
        };
        var dset = new DataSet();
        var _pglist = new PageList<dynamic>
        {
            total = 0,
            everyPageSize = 0,
            pages = 0,
            list = new List<dynamic>()
        };
        try
        {
            dset = DbHelperSQL.RunProcedure("prc_cgrk_report", parameters, "0");
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0) //有数据
            {
                var intTotal =
                    int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
                var pages = intTotal % everyPageSize != 0
                    ? intTotal / everyPageSize + 1
                    : intTotal / everyPageSize;
                _pglist.total = intTotal;
                _pglist.everyPageSize = everyPageSize;
                _pglist.pages = pages;
                var _dy = dset.Tables[0].TableToDynamicList();
                _pglist.list = _dy;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
          ReturnCode.Exception, ex.Message);
        }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
            ReturnCode.Success, "读取成功");
    }
}
WebApi/Gs.Wom/Service/WomcaaManager.cs
@@ -24,8 +24,6 @@
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
    /// </summary>
@@ -122,7 +120,7 @@
                m = dr.RowToDynamic();
                var _tb = dset.Tables[1].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
@@ -136,7 +134,6 @@
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
            "读取失败!");
    }
    /// <summary>
    ///
@@ -194,4 +191,61 @@
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
            "操作成功!");
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModelSubmitLock([FromBody] dynamic mode)
    {
        string _guid = mode.guid;
        string _inFieldValue = mode.inFieldValue;
        dynamic m = new ExpandoObject();
        m.outSum = -1;
        m.outMsg = "";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("prc_wom_caa_clock_submit", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@outMsg", SqlDbType.NVarChar, 2500),
                        new("@outSum", SqlDbType.Int),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inOrderGuid", _guid),
                        new("@inFieldValue", _inFieldValue),
                        new("@in1", ""),
                        new("@in2", "")
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    cmd.ExecuteNonQuery();
                    m.outMsg = parameters[0].Value.ToString();
                    m.outSum = int.Parse(parameters[1].Value.ToString());
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "prc_wom_caa_clock_submit error:" + ex.Message);
                    return ReturnDto<dynamic>.QuickReturn(m,
                        ReturnCode.Default,
                        ex.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
            "操作成功!");
    }
}
WebApi/Gs.Wom/WorkService/WorkProController.cs
@@ -49,15 +49,22 @@
            sbSql.Append("( ");
            sbSql.Append("select top 100000 ROW_NUMBER() over(order by " +
                         sortName + " " + model.sortOrder +
                         ") as rowIndex,cast(0 as bit) as chkInt,a.*,(a.processNo+':'+a.processName) as processNoAndName,(case  a.isStatus when 1 then '正常' when -1 then  '禁用'  else  cast(a.isStatus as nvarchar(4))  end) as isStatusTxt from WORK_PROCESS a  where 1=1" +
                         keyWhere);
                         ") as rowIndex,cast(0 as bit) as chkInt,a.*," +
                         "(a.processNo+':'+a.processName) as processNoAndName," +
                         "(case a.isStatus when 1 then '正常' when -1 then  '禁用'  else  cast(a.isStatus as nvarchar(4))  end) as isStatusTxt," +
                         "cj.USER_NAME as createByName," +
                         "isnull(gx.USER_NAME,a.lastUpdateBy) as lastupdateByName " +
                         "from WORK_PROCESS a " +
                         "left join SYS_USER cj on cj.ACCOUNT=a.createBy " +
                         "left join SYS_USER gx on gx.ACCOUNT=a.lastUpdateBy " +
                         "where 1=1" + keyWhere);
            sbSql.Append(") as T ");
            sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" +
                         everyPageSize + " and  T.rowindex<=" + currentPage + "*" +
                         everyPageSize);
            sbSql.Append(" order by rowindex asc ");
            sbSql.Append(
                " select count(1) as intTotal  from WORK_PROCESS a  where 1=1 " +
                " select count(1) as intTotal  from WORK_PROCESS a  left join SYS_USER cj on cj.ACCOUNT=a.createBy left join SYS_USER gx on gx.ACCOUNT=a.lastUpdateBy where 1=1 " +
                keyWhere);
            var dset = new DataSet();
            try
WebApi/GsMesSolution.sln
@@ -31,198 +31,68 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gs.Pda", "Gs.Pda\Gs.Pda.csproj", "{33387B1A-A9D8-41D2-B9C0-60F17D350C40}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gs.JJGZ", "Gs.JJGZ\Gs.JJGZ.csproj", "{09B053B1-2E1E-452B-8236-41477D61D3D9}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Debug|x64 = Debug|x64
        Debug|x86 = Debug|x86
        Release|Any CPU = Release|Any CPU
        Release|x64 = Release|x64
        Release|x86 = Release|x86
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Debug|x64.ActiveCfg = Debug|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Debug|x64.Build.0 = Debug|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Debug|x86.ActiveCfg = Debug|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Debug|x86.Build.0 = Debug|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Release|Any CPU.Build.0 = Release|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Release|x64.ActiveCfg = Release|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Release|x64.Build.0 = Release|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Release|x86.ActiveCfg = Release|Any CPU
        {AAC197B4-CE8C-4D21-A2A9-73D383859668}.Release|x86.Build.0 = Release|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Debug|x64.ActiveCfg = Debug|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Debug|x64.Build.0 = Debug|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Debug|x86.ActiveCfg = Debug|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Debug|x86.Build.0 = Debug|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Release|Any CPU.Build.0 = Release|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Release|x64.ActiveCfg = Release|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Release|x64.Build.0 = Release|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Release|x86.ActiveCfg = Release|Any CPU
        {D13D1BCC-6110-4943-BC98-FC6F3E28CE43}.Release|x86.Build.0 = Release|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Debug|x64.ActiveCfg = Debug|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Debug|x64.Build.0 = Debug|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Debug|x86.ActiveCfg = Debug|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Debug|x86.Build.0 = Debug|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Release|Any CPU.Build.0 = Release|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Release|x64.ActiveCfg = Release|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Release|x64.Build.0 = Release|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Release|x86.ActiveCfg = Release|Any CPU
        {3CA7A99D-C42B-440A-ADA7-B3D76CD02E7C}.Release|x86.Build.0 = Release|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Debug|x64.ActiveCfg = Debug|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Debug|x64.Build.0 = Debug|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Debug|x86.ActiveCfg = Debug|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Debug|x86.Build.0 = Debug|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Release|Any CPU.Build.0 = Release|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Release|x64.ActiveCfg = Release|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Release|x64.Build.0 = Release|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Release|x86.ActiveCfg = Release|Any CPU
        {A3BA5A9F-70D3-44DF-8332-F03D6565A0FC}.Release|x86.Build.0 = Release|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Debug|x64.ActiveCfg = Debug|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Debug|x64.Build.0 = Debug|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Debug|x86.ActiveCfg = Debug|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Debug|x86.Build.0 = Debug|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Release|Any CPU.Build.0 = Release|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Release|x64.ActiveCfg = Release|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Release|x64.Build.0 = Release|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Release|x86.ActiveCfg = Release|Any CPU
        {CF9A9DD9-8D22-4628-93BE-2070C81F2697}.Release|x86.Build.0 = Release|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Debug|x64.ActiveCfg = Debug|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Debug|x64.Build.0 = Debug|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Debug|x86.ActiveCfg = Debug|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Debug|x86.Build.0 = Debug|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Release|Any CPU.Build.0 = Release|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Release|x64.ActiveCfg = Release|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Release|x64.Build.0 = Release|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Release|x86.ActiveCfg = Release|Any CPU
        {F67AF605-BF34-4826-90DE-BCFFFC5DB155}.Release|x86.Build.0 = Release|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Debug|x64.ActiveCfg = Debug|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Debug|x64.Build.0 = Debug|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Debug|x86.ActiveCfg = Debug|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Debug|x86.Build.0 = Debug|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Release|Any CPU.Build.0 = Release|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Release|x64.ActiveCfg = Release|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Release|x64.Build.0 = Release|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Release|x86.ActiveCfg = Release|Any CPU
        {FC3259F8-ED36-4118-BF3F-0B59FF6BA2A6}.Release|x86.Build.0 = Release|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Debug|x64.ActiveCfg = Debug|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Debug|x64.Build.0 = Debug|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Debug|x86.ActiveCfg = Debug|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Debug|x86.Build.0 = Debug|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Release|Any CPU.Build.0 = Release|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Release|x64.ActiveCfg = Release|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Release|x64.Build.0 = Release|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Release|x86.ActiveCfg = Release|Any CPU
        {E8851E6F-E65D-4560-851C-406961260265}.Release|x86.Build.0 = Release|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Debug|x64.ActiveCfg = Debug|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Debug|x64.Build.0 = Debug|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Debug|x86.ActiveCfg = Debug|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Debug|x86.Build.0 = Debug|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Release|Any CPU.Build.0 = Release|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Release|x64.ActiveCfg = Release|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Release|x64.Build.0 = Release|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Release|x86.ActiveCfg = Release|Any CPU
        {63823BC6-6242-4EBC-8B15-B72B89E8CEDA}.Release|x86.Build.0 = Release|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Debug|x64.ActiveCfg = Debug|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Debug|x64.Build.0 = Debug|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Debug|x86.ActiveCfg = Debug|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Debug|x86.Build.0 = Debug|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Release|Any CPU.Build.0 = Release|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Release|x64.ActiveCfg = Release|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Release|x64.Build.0 = Release|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Release|x86.ActiveCfg = Release|Any CPU
        {D1743FF9-431C-4D1A-A4B5-3C81D66EE282}.Release|x86.Build.0 = Release|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Debug|x64.ActiveCfg = Debug|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Debug|x64.Build.0 = Debug|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Debug|x86.ActiveCfg = Debug|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Debug|x86.Build.0 = Debug|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Release|Any CPU.Build.0 = Release|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Release|x64.ActiveCfg = Release|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Release|x64.Build.0 = Release|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Release|x86.ActiveCfg = Release|Any CPU
        {27AFDBE0-40C0-49CF-A8AF-7DF01FBFE33A}.Release|x86.Build.0 = Release|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Debug|x64.ActiveCfg = Debug|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Debug|x64.Build.0 = Debug|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Debug|x86.ActiveCfg = Debug|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Debug|x86.Build.0 = Debug|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Release|Any CPU.Build.0 = Release|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Release|x64.ActiveCfg = Release|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Release|x64.Build.0 = Release|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Release|x86.ActiveCfg = Release|Any CPU
        {A899A72F-5E82-4176-81F6-D34AA8146F3A}.Release|x86.Build.0 = Release|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Debug|x64.ActiveCfg = Debug|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Debug|x64.Build.0 = Debug|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Debug|x86.ActiveCfg = Debug|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Debug|x86.Build.0 = Debug|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Release|Any CPU.Build.0 = Release|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Release|x64.ActiveCfg = Release|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Release|x64.Build.0 = Release|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Release|x86.ActiveCfg = Release|Any CPU
        {EA4CCE91-2C56-4E21-B72B-5794DA372890}.Release|x86.Build.0 = Release|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Debug|x64.ActiveCfg = Debug|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Debug|x64.Build.0 = Debug|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Debug|x86.ActiveCfg = Debug|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Debug|x86.Build.0 = Debug|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Release|Any CPU.Build.0 = Release|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Release|x64.ActiveCfg = Release|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Release|x64.Build.0 = Release|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Release|x86.ActiveCfg = Release|Any CPU
        {33387B1A-A9D8-41D2-B9C0-60F17D350C40}.Release|x86.Build.0 = Release|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Debug|x64.ActiveCfg = Debug|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Debug|x64.Build.0 = Debug|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Debug|x86.ActiveCfg = Debug|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Debug|x86.Build.0 = Debug|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Release|Any CPU.Build.0 = Release|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Release|x64.ActiveCfg = Release|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Release|x64.Build.0 = Release|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Release|x86.ActiveCfg = Release|Any CPU
        {09B053B1-2E1E-452B-8236-41477D61D3D9}.Release|x86.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE