新框架PC后端代码(祈禧6月初版本)
lg
2025-11-20 b98df034707a61fd2857dbccd5a232605076ca59
标准版初始化
已重命名1个文件
已修改69个文件
已添加24个文件
10099 ■■■■■ 文件已修改
WebApi/GS.QC/Models/MesQaMj.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Models/MesQmAql1.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Models/MesQmAql4.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/FqcExceptionalManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/FqcItemsManager.cs 476 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/FqcManager.cs 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/IpqcShouManager.cs 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/IpqcXunManager.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesDefectCodeManager.cs 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesQaItemsDetect01Manager.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesQaMjManager.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesQmAql1Manager.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesQmAql4Manager .cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/MesQmCheckitemManager.cs 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/RkqcManager.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/RkqcSqManager.cs 414 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/GS.QC/Service/RkqcfaManager.cs 331 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/MesCustomerManager.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/MesItemTypeManager.cs 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/MesItemsManager.cs 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/MesSupplierManager.cs 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/MesWorkshopLineManager.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/PrintAutoManager.cs 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.BaseInfo/Services/PrintInfoManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Entity/BaseInfo/MesDepots.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Entity/BaseInfo/MesItemType.cs 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Entity/BaseInfo/MesItems.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.HostIIS/CustomContractResolver.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.HostIIS/Program.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.HostIIS/RequestAuthorizeAttribute.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.HostIIS/appsettings.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/Gs.JJGZ.csproj 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesAttanConController.cs 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesDeToLineController.cs 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzErrorJsController.cs 496 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzJjsalaryController.cs 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzJssalaryController.cs 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzReportController.cs 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzScheduleController.cs 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.JJGZ/MesJjgzTimeTypeController.cs 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaCk/MesCgthSqManager.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaCk/MesCgytDjManager.cs 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaCk/MesItemQtDJManager.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaCk/MesItemQtManager.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaCk/MesSctkSqDjManager.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaRk/MesItemQtrkDjManager.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaRk/MesItemQtrkManager.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.QiTaRk/MesItemTblManager.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Report/BTDetails.cs 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Report/CkController.cs 284 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Report/QLController.cs 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Report/ReportController.cs 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Report/WOTraceCodes.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Report/XlsInOutController.cs 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sales/SalesDeliverManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sales/SalesManager.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sales/SalesReturnManager.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Models/SysLogOperation.cs 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Services/FmController.cs 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Services/MesConfigController.cs 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Services/MesFileController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Services/MesSysPageviewManager.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Services/OrganizationController.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Services/SysLogController.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Sys/Services/UserController.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Toolbox/ApiCore/Common/Mvc/CustomControllerFeatureProvider.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Toolbox/ApiCore/Group/ApiGroupNames.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Toolbox/ExcelHelper.cs 910 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Toolbox/Gs.Toolbox.csproj 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Toolbox/InterfaceUtil.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Toolbox/UtilityHelper.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Warehouse/Services/MesDepotSectionsManager.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Warehouse/Services/MesDepotsManager.cs 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Warehouse/Services/MesInvItemArnManager.cs 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Warehouse/Services/MesInvItemInsManager.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Warehouse/Services/MesRohInManager.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Warehouse/Services/VArrivalBarcodeManager.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/Service/FanGongManager.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/Service/WomcaaManager.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/Service/WomdaaManager.cs 388 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/Service/WompbaManager.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/WorkService/KanBanController.cs 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/WorkService/MesBackFlashController.cs 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/WorkService/WorkCollectController.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/WorkService/WorkProController.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/WorkService/WorkTechniqueController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Wom/WorkService/WorkWeightController.cs 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Ww/ProductionOrderManager.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Ww/WWBlDJManager.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Ww/WWBlManager.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Ww/WWGDManager.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Ww/WWLLDJManager.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Ww/WWTBlDJManager.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.Ww/WWTblManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | 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/Models/MesQmAql1.cs
@@ -144,4 +144,7 @@
    [SugarColumn(IsIgnore = true)]
    public List<MesQmAql3> MesQmAql3s { get; set; }
    [SugarColumn(IsIgnore = true)]
    public List<MesQmAql4> MesQmAql4s { get; set; }
}
WebApi/GS.QC/Models/MesQmAql4.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
using SqlSugar;
namespace GS.QC.Models;
/// <summary>
///     AQL抽样基准抽样方案
/// </summary>
[SugarTable("MES_QM_AQL4")]
public class MesQmAql4
{
   /// <summary>
   ///     é»˜è®¤å€¼: (newid())
   /// </summary>
   [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
    public Guid Guid { get; set; }
   /// <summary>
   ///     AQL抽样基准ID
   /// </summary>
   [SugarColumn(ColumnName = "AQL1_ID")]
    public Guid? Aql1Id { get; set; }
    /// <summary>
    ///     AQL类型(CR)
    /// </summary>
    [SugarColumn(ColumnName = "AQL_TYPE_CR")]
    public string? AqlTypeCr { get; set; }
    /// <summary>
    ///     AQL类型(MA)
    /// </summary>
    [SugarColumn(ColumnName = "AQL_TYPE_MA")]
    public string? AqlTypeMa { get; set; }
    /// <summary>
    ///     AQL类型(MI)
    /// </summary>
    [SugarColumn(ColumnName = "AQL_TYPE_MI")]
    public string? AqlTypeMi { get; set; }
    /// <summary>
    ///     æ‹’æ”¶æ°´å¹³
    /// </summary>
    [SugarColumn(ColumnName = "fac_level")]
    public string? FacLevel { get; set; }
}
WebApi/GS.QC/Service/FqcExceptionalManager.cs
@@ -79,7 +79,6 @@
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
                ReturnCode.Success, "读取成功");
        }
WebApi/GS.QC/Service/FqcItemsManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,476 @@
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 Newtonsoft.Json.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using static Gs.Toolbox.UtilityHelper;
namespace GS.QC.Service
{
    [ApiGroup(ApiGroupNames.QC)]
    public class FqcItemsManager : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public FqcItemsManager(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([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_fqc_items_lst", 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, "读取成功");
        }
        /// <summary>
        ///     è¯»å–单个实体
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            m.list2 = new List<dynamic>();
            try
            {
                // æŸ¥è¯¢ä¸»è¡¨æ•°æ®
                string sqlMain = $"SELECT A.*,B.Name as OrgName,C.staff_name AS JY_NAME FROM MES_FQC_ITEMS A LEFT JOIN SYS_ORGANIZATION b  ON A.OrgId = b.FID LEFT JOIN MES_STAFF C ON C.staff_no = A.JY_USER  WHERE a.GUID='{guid}'";
                var dsMain = DbHelperSQL.Query(sqlMain);
                if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
                {
                    var dr = dsMain.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                }
                // æŸ¥è¯¢å­è¡¨1数据
                string sqlDetail1 = $"SELECT * FROM MES_FQC_ITEM_DETAIL1 WHERE PID='{guid}' ORDER BY Seq";
                var dsDetail1 = DbHelperSQL.Query(sqlDetail1);
                if (dsDetail1 != null && dsDetail1.Tables.Count > 0)
                {
                    var _tb = dsDetail1.Tables[0].TableToDynamicList();
                    m.list = _tb;
                }
                // æŸ¥è¯¢å­è¡¨2数据
                string sqlDetail2 = $"SELECT * FROM MES_FQC_ITEM_DETAIL2 WHERE PID='{guid}' ORDER BY Seq";
                var dsDetail2 = DbHelperSQL.Query(sqlDetail2);
                if (dsDetail2 != null && dsDetail2.Tables.Count > 0)
                {
                    var _tb2 = dsDetail2.Tables[0].TableToDynamicList();
                    m.list2 = _tb2;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        /// <summary>
        ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
        {
            Guid? guid = model.guid; //主键
            string fqcNo = model.fqcNo; // æ£€éªŒå•号
            string workShop = model.workShop; // ç”Ÿäº§è½¦é—´
            string itemName = model.itemName; // äº§å“åç§°
            string itemModel = model.itemModel; // è§„格型号
            string brand = model.brand; // å•†æ ‡
            // å¤„理生产日期,允许为空
            DateTime? productionDate = null;
            if (model.productionDate != null && !string.IsNullOrEmpty(model.productionDate.ToString()))
            {
                if (DateTime.TryParse(model.productionDate.ToString(), out DateTime parsedDate))
                {
                    productionDate = parsedDate;
                }
            }
            string acRe_A = model.acRe_A; // AC/Re Aç±»
            string acRe_B = model.acRe_B; // AC/Re Bç±»
            string acRe_C = model.acRe_C; // AC/Re Cç±»
            string sampleMethod = model.sampleMethod; // æŠ½æ ·
            string sampleSize1 = model.sampleSize1; // åŒ€é€ŸæŠ½æ ·é€Ÿ
            string sampleSize2 = model.sampleSize2; // éšæœºæŠ½æ ·æ•°
            string sampleSize3 = model.sampleSize3; // æ ·æœ¬æ•°
            string temperature = model.temperature; // å®¤æ¸©
            string voltage = model.voltage; // ç”µåŽ‹
            string classes = model.classes; // ç­æ¬¡
            string lineNo = model.lineNo; // çº¿å·
            string batch = model.batch; // æ‰¹é‡
            string checkResult = model.checkResult; // æ£€éªŒç»“æžœ
            string processResults = model.processResults; // å¤„理结果
            // æ·»åŠ æ£€éªŒäººã€å®¡æ ¸äººã€å®¡æ‰¹äººåŠå¯¹åº”çš„æ—¥æœŸ
            string jyUser = model.jyUser; // æ£€éªŒäºº
            string checkUser = model.checkUser; // å®¡æ ¸äºº
            string spUser = model.spUser; // å®¡æ‰¹äºº
            // å¤„理检验日期,允许为空
            DateTime? jyDate = null;
            if (model.jyDate != null && !string.IsNullOrEmpty(model.jyDate.ToString()))
            {
                if (DateTime.TryParse(model.jyDate.ToString(), out DateTime parsedJyDate))
                {
                    jyDate = parsedJyDate;
                }
            }
            // å¤„理审核日期,允许为空
            DateTime? checkDate = null;
            if (model.checkDate != null && !string.IsNullOrEmpty(model.checkDate.ToString()))
            {
                if (DateTime.TryParse(model.checkDate.ToString(), out DateTime parsedCheckDate))
                {
                    checkDate = parsedCheckDate;
                }
            }
            // å¤„理审批日期,允许为空
            DateTime? spDate = null;
            if (model.spDate != null && !string.IsNullOrEmpty(model.spDate.ToString()))
            {
                if (DateTime.TryParse(model.spDate.ToString(), out DateTime parsedSpDate))
                {
                    spDate = parsedSpDate;
                }
            }
            // æž„建子表1数据字符串
            var _sb1 = new StringBuilder();
            var _split = "|";
            foreach (var m in model.list1)
            {
                string _guid = m.Guid.ToString();
                var _line = m.RPB001 + _split
                                + m.RPB003 + _split
                                + m.RPB004 + _split
                                + m.RPB005 + _split
                                + m.RPB006 + _split
                                + m.RPB007 + _split
                                + m.RPB008 + _split
                                + m.RPB009 + _split
                                + m.RPB010 + _split
                                + m.RPB011 + _split
                                + m.RPB012 + _split
                                + m.RPB013 + _split
                                + m.RPB014 + _split
                                + m.RPB015 + _split
                                + m.RPB016 + _split
                                + m.RPB017 + _split
                                + m.RPB018 + _split
                                + m.RPB019 + _split
                                + m.RPB020 + _split
                                + m.Remark + _split
                                + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString()) + _split
                                + m.Seq;
                if (_sb1.Length > 0)
                    _sb1.Append("~");
                _sb1.Append(_line);
            }
            // æž„建子表2数据字符串
            var _sb2 = new StringBuilder();
            foreach (var m in model.list2)
            {
                string _guid = m.Guid.ToString();
                var _line = m.Seq + _split
                                + m.Description + _split
                                + m.AClass + _split
                                + m.BClass + _split
                                + m.CClass + _split
                                + m.Point + _split
                                + m.Remark + _split
                                + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
                if (_sb2.Length > 0)
                    _sb2.Append("~");
                _sb2.Append(_line);
            }
            dynamic mObj = new ExpandoObject();
            mObj.outMsg = "";
            mObj.outSum = -1;
            mObj.outGuid = "";
            mObj.outNo = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_fqc_items_edt]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                            new("@outMsg", SqlDbType.NVarChar, 300),
                            new("@outSum", SqlDbType.Int),
                            new("@outGuid", SqlDbType.UniqueIdentifier),
                            new("@outNo", SqlDbType.NVarChar, 300),
                            new("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value),
                            new("@inFQCNo", fqcNo),
                            new("@inWorkShop", workShop),
                            new("@inItemName", itemName),
                            new("@inItemModel", itemModel),
                            new("@inBrand", brand),
                            new("@inProductionDate", productionDate.HasValue ? (object)productionDate.Value : DBNull.Value),
                            new("@inAcRe_A", acRe_A),
                            new("@inAcRe_B", acRe_B),
                            new("@inAcRe_C", acRe_C),
                            new("@inSampleMethod", sampleMethod),
                            new("@inSampleSize1", sampleSize1),
                            new("@inSampleSize2", sampleSize2),
                            new("@inSampleSize3", sampleSize3),
                            new("@inTemperature", temperature),
                            new("@inVoltage", voltage),
                            new("@inClasses", classes),
                            new("@inLineNo", lineNo),
                            new("@inBatch", batch),
                            new("@inCheckResult", checkResult),
                            new("@inProcessResults", processResults),
                            // æ·»åŠ æ£€éªŒäººã€å®¡æ ¸äººã€å®¡æ‰¹äººåŠå¯¹åº”çš„æ—¥æœŸå‚æ•°
                            new("@inJyUser", jyUser),
                            new("@inCheckUser", checkUser),
                            new("@inSpUser", spUser),
                            new("@inJyDate", jyDate.HasValue ? (object)jyDate.Value : DBNull.Value),
                            new("@inCheckDate", checkDate.HasValue ? (object)checkDate.Value : DBNull.Value),
                            new("@inSpDate", spDate.HasValue ? (object)spDate.Value : DBNull.Value),
                            new("@inEdtUserGuid", _userGuid),
                            new("@inDetail1List", _sb1.ToString()),
                            new("@inDetail2List", _sb2.ToString())
                        };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
                        parameters[2].Direction = ParameterDirection.Output;
                        parameters[3].Direction = ParameterDirection.Output;
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        cmd.ExecuteNonQuery();
                        mObj.outMsg = parameters[0].Value.ToString();
                        mObj.outSum = int.Parse(parameters[1].Value.ToString());
                        mObj.outGuid = parameters[2].Value.ToString();
                        mObj.outNo = parameters[3].Value.ToString();
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "prc_fqc_items_edt error:" + ex.Message);
                        mObj.outMsg = ex.Message;
                        mObj.outSum = -1;
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            if (mObj.outSum <= 0)
                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
        }
        /// <summary>
        ///     åˆ é™¤ä¸»è¡¨åŠæ˜Žç»†
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
        {
            int? rtnInt = (int)ReturnCode.Default;
            Guid? guid = model.guid;
            var _outMsg = "";
            var _outSum = -1;
            try
            {
                if (CheckGuid(guid))
                {
                    string sql = $@"
                        DELETE FROM MES_FQC_ITEM_DETAIL1 WHERE PID='{guid}';
                        DELETE FROM MES_FQC_ITEM_DETAIL2 WHERE PID='{guid}';
                        DELETE FROM MES_FQC_ITEMS WHERE GUID='{guid}';";
                    _outSum = DbHelperSQL.ExecuteSql(sql);
                    _outMsg = _outSum > 0 ? "删除成功!" : "未删除任何数据";
                }
                else
                {
                    _outMsg = "主键不能为空!";
                    _outSum = -1;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
                _outMsg = ex.Message;
                _outSum = -1;
            }
            if (_outSum <= 0)
                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
        }
        /// <summary>
        /// æˆå“æ£€éªŒæŠ¥è¡¨
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetCPMX([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),
        };
            var dset = new DataSet();
            var _pglist = new PageList<dynamic>
            {
                total = 0,
                everyPageSize = 0,
                pages = 0,
                list = new List<dynamic>()
            };
            try
            {
                dset = DbHelperSQL.RunProcedure("report_cprkjd", 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, "读取成功");
        }
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetCPMXDetail([FromBody] dynamic model)
        {
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            string daa001 = model.daa001;
            SqlParameter[] parameters =
            {
                new("@daa001", daa001)
            };
            try
            {
                var dsMain = DbHelperSQL.RunProcedure("report_cprkjdDetail", parameters, "0");
                if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
                {
                    m.list = dsMain.Tables[0].TableToDynamicList();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
    }
}
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");
@@ -506,59 +509,7 @@
                ReturnCode.Success, "读取成功");
        }
        /// <summary>
        /// è´¨é‡ï¼Œå®¡æ ¸ï¼Œåå®¡æ ¸ï¼Œé©³å›ž
        /// </summary>
        /// <param name="mode"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModelSubmitZhiLiang([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("fqc_zhiLiang", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                                new("@outMsg", SqlDbType.NVarChar, 300),
                                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(this.ToString(), "fqc_zhiLiang error:" + ex.Message);
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
        }
        /// <summary>
        ///     è¯»å–
@@ -661,7 +612,62 @@
            return GetModel14(dy);
        }
        /// <summary>
        ///     ç”ŸæˆæŠ¥å‘Š
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> GetBaoGao([FromBody] dynamic model)
        {
            int? rtnInt = (int)ReturnCode.Default;
            Guid? guid = model.guid;
            var _outMsg = "";
            var _outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_fqc_items_add]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid",
                            UtilityHelper.CheckGuid(guid)
                                ? guid
                                : DBNull.Value),
                        new("@inEdtUserGuid", _userGuid),
                    };
                        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>
@@ -673,6 +679,7 @@
        public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
        {
            string _guid = mode.guid;
            string _inFieldValue = mode.inFieldValue;
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
@@ -690,7 +697,7 @@
                                new("@outSum", SqlDbType.Int),
                                new("@inEdtUserGuid", _userGuid),
                                new("@inOrderGuid", _guid),
                                new("@inFieldValue", 1),
                                new("@inFieldValue", _inFieldValue),
                                new("@in1", ""),
                                new("@in2", "")
                            };
WebApi/GS.QC/Service/IpqcShouManager.cs
@@ -1,13 +1,15 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using Gs.Toolbox;
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 Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using static Gs.Toolbox.UtilityHelper;
namespace GS.QC.Service
@@ -24,7 +26,6 @@
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
@@ -88,7 +89,7 @@
        }
        /// <summary>
        ///     è¯»å–
        ///     è¯»å–实体
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
@@ -168,5 +169,275 @@
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                "读取失败!");
        }
        /// <summary>
        ///     è¯»å–web实体
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModelWeb([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            SqlParameter[] parameters =
            {
            new("@inMainGuid", guid),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")
        };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[ipqc_shou_get_web]", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    var dr = dset.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                    m.list = new List<dynamic>();
                    DataTable dtDistinct = (new DataView(dset.Tables[1])).ToTable(true, new string[] { "groupName" });
                    foreach (DataRow DataRow in dtDistinct.Rows)
                    {
                        dynamic _obj = new System.Dynamic.ExpandoObject();
                        _obj.groupName = DataRow["groupName"].ToString();
                        _obj.child = new List<dynamic>();
                        DataRow[] _dtRows = dset.Tables[1].Select("groupName='" + _obj.groupName.ToString() + "'");
                        if (_dtRows.Length == 0)
                            continue;
                        foreach (DataRow _row in _dtRows)
                        {
                            dynamic _dy = _row.RowToDynamic();
                            if (_obj.groupName.ToString() == "制热性能")
                            {
                                //水温选择
                                if (!string.IsNullOrEmpty(_row["ipqc_zrxn_sel1"].ToString()))
                                    _dy.selectedWater = JsonConvert.DeserializeObject(_row["ipqc_zrxn_sel1"].ToString());
                                else
                                    _dy.selectedWater = Array.Empty<string>();
                                //流量选择
                                if (!string.IsNullOrEmpty(_row["ipqc_zrxn_sel2"].ToString()))
                                    _dy.selectedFlow = JsonConvert.DeserializeObject(_row["ipqc_zrxn_sel2"].ToString());
                                else
                                    _dy.selectedFlow = Array.Empty<string>();
                                //表格数据
                                if (!string.IsNullOrEmpty(_row["ipqc_zrxn_table"].ToString()))
                                    _dy.selecteTable = JsonConvert.DeserializeObject(_row["ipqc_zrxn_table"].ToString());
                                else
                                    _dy.selecteTable = new { };
                            }
                            _obj.child.Add(_dy);
                        }
                        m.list.Add(_obj);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> SetModelWeb([FromBody] dynamic model)
        {
            string guid = model.guid;
            string strSql = model.strSql;
            string ziduan = model.ziduan;
            int? rtnInt = (int)ReturnCode.Default;
            try
            {
                System.Text.StringBuilder sbSql = new StringBuilder();
                //本批唯一码首件唯一码首样条形码
                if (ziduan == "bpwym" || ziduan == "sjwym" || ziduan == "sjtxm")
                    sbSql.Append(" update dbo.MES_QA_ITEMS_DETECT_01 set " + strSql + " , fcheck_By='" + _userCode + "',fcheck_Date=getdate() where guid='" + guid + "'");
                else
                {
                    sbSql.Append(" update dbo.MES_QA_ITEMS_DETECT_DETAIL5 set " + strSql + " where guid='" + guid + "'");
                    sbSql.Append(" update dbo.MES_QA_ITEMS_DETECT_01 set fcheck_By='" + _userCode + "',fcheck_Date=getdate() where guid=( select top 1 d5.parent_guid from MES_QA_ITEMS_DETECT_DETAIL5 d5 where d5.guid='" + guid + "' )");
                }
                rtnInt = DbHelperSQL.ExecuteSql(sbSql.ToString());
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "SetModelWeb  error:" + ex.Message);
                rtnInt = (int)ReturnCode.Exception;
            }
            if (rtnInt > 0)
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功!");
            else
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!");
        }
        /// <summary>
        /// æäº¤æ£€éªŒ
        /// </summary>
        /// <param name="mode"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
        {
            string _guid = mode.guid;
            string _inFieldValue = mode.submitType;
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("ipqc_shou_submit", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                                new("@outMsg", SqlDbType.NVarChar, 300),
                                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)
                    {
                        m.outMsg = ex.Message;
                        LogHelper.Debug(this.ToString(), "ipqc_shou_submit error:" + ex.Message);
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> UpdateTableConfig([FromBody] dynamic model)
        {
            string guid = model.guid;
            string mxguid = model.mxguid;
            JArray arrayWater = model.selectedWater;
            JArray arrayFlow = model.selectedFlow;
            JObject arrayTable = model.selectedTable;
            string selectedWater = arrayWater.ToString();
            string selectedFlow = arrayFlow.ToString();
            System.Text.StringBuilder tableData = new StringBuilder();
            tableData.Append("{");
            foreach (JValue jsonitem in arrayWater)
            {
                string jv = jsonitem.ToString().Trim();
                var _temp = arrayTable[jv]["temp"];
                if (tableData.Length > 2)
                    tableData.Append(",");
                tableData.Append("'" + jv + "':");
                tableData.Append("{");
                tableData.Append("'temp':'" + _temp + "'");
                foreach (JValue volume in arrayFlow)
                {
                    var _temp2 = arrayTable[jv][volume.ToString().Trim()];
                    tableData.Append(",'" + volume.ToString().Trim() + "':'" + _temp2 + "'");
                }
                tableData.Append("}");
            }
            tableData.Append("}");
            int? rtnInt = (int)ReturnCode.Default;
            try
            {
                System.Text.StringBuilder sbSql = new StringBuilder();
                sbSql.Append("UPDATE MES_QA_ITEMS_DETECT_DETAIL5 SET ipqc_zrxn_sel1 = @selectedWater,ipqc_zrxn_sel2 = @selectedFlow, ipqc_zrxn_table = @tableData  WHERE guid = @mxguid");
                rtnInt = Gs.Toolbox.DbHelperSQL.ExecuteSql(sbSql.ToString(), new SqlParameter[] {
                    new SqlParameter("@selectedWater", selectedWater),
                    new SqlParameter("@selectedFlow", selectedFlow),
                    new SqlParameter("@tableData", tableData.ToString()),
                    new SqlParameter("@mxguid", mxguid),
                });
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "SetModelWeb  error:" + ex.Message);
                rtnInt = (int)ReturnCode.Exception;
            }
            if (rtnInt > 0)
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功!");
            else
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!");
        }
        /// <summary>
        ///     è¯»å–
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModelWebMx([FromBody] dynamic model)
        {
            string mxGuid = model.mxGuid.ToString();
            dynamic m = new ExpandoObject();
            var dset = new DataSet();
            try
            {
                System.Text.StringBuilder sbSql = new StringBuilder();
                sbSql.Append("select * from [dbo].[MES_QA_ITEMS_DETECT_DETAIL5] where guid='" + mxGuid + "'");
                dset = DbHelperSQL.Query(sbSql.ToString());
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    var _row = dset.Tables[0].Rows[0];
                    //水温选择
                    if (!string.IsNullOrEmpty(_row["ipqc_zrxn_sel1"].ToString()))
                        m.selectedWater = JsonConvert.DeserializeObject(_row["ipqc_zrxn_sel1"].ToString());
                    else
                        m.selectedWater = Array.Empty<string>();
                    //流量选择
                    if (!string.IsNullOrEmpty(_row["ipqc_zrxn_sel2"].ToString()))
                        m.selectedFlow = JsonConvert.DeserializeObject(_row["ipqc_zrxn_sel2"].ToString());
                    else
                        m.selectedFlow = Array.Empty<string>();
                    //表格数据
                    if (!string.IsNullOrEmpty(_row["ipqc_zrxn_table"].ToString()))
                        m.selecteTable = JsonConvert.DeserializeObject(_row["ipqc_zrxn_table"].ToString());
                    else
                        m.selecteTable = new { };
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
    }
}
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);
        }
    }
@@ -240,10 +271,17 @@
        sbSql.Append(" left join [dbo].[SYS_ORGANIZATION] org on org.FID=f.FSubsidiary");
        sbSql.Append(" where 1=1 and bind.userGuid='" + guid + "' and bind.fType='员工分区'");
        sbSql.Append(" select bind.guid,bind.fType ,f.item_id,f.item_no,f.item_name,org.NAME as orgName,q.defect_name");
        sbSql.Append(" from [dbo].[SYS_USER_BIND] bind left join MES_ITEMS f on bind.aboutGuid=f.guid");
        sbSql.Append(" from [dbo].[SYS_USER_BIND] bind left join MES_ITEMS f on bind.aboutGuid=f.item_id");
        sbSql.Append(" left join [dbo].[MES_DEFECT_CODE] q on bind.userGuid=q.guid");
        sbSql.Append(" left join [dbo].[SYS_ORGANIZATION] org on org.FID=f.FSubsidiary");
        sbSql.Append(" where 1=1 and bind.userGuid='" + guid + "' and bind.fType='物料分区'");
        sbSql.Append("  select bind.guid,bind.fType  ,u.depot_section_code,u.depot_section_name");
        sbSql.Append("  ,org.NAME as orgName ,q.defect_name from [dbo].[SYS_USER_BIND] bind ");
        sbSql.Append("  left join MES_DEPOT_SECTIONS u on bind.aboutGuid=u.depot_section_code ");
        sbSql.Append("  left join MES_DEPOTS f on u.depot_guid=f.depot_id");
        sbSql.Append(" left join [dbo].[MES_DEFECT_CODE] q on bind.userGuid=q.guid ");
        sbSql.Append(" left join [dbo].[SYS_ORGANIZATION] org on org.FID=f.FSubsidiary ");
        sbSql.Append(" where 1=1 and bind.userGuid='" + guid + "' and bind.fType='库位'");
        try
        {
            dset = DbHelperSQL.Query(sbSql.ToString());
@@ -256,6 +294,8 @@
                m.list = _tb;
                var _tb2 = dset.Tables[2].TableToDynamicList();
                m.list2 = _tb2;
                var _tb3 = dset.Tables[3].TableToDynamicList();
                m.list3 = _tb3;
            }
        }
        catch (Exception ex)
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");
@@ -299,7 +302,10 @@
    public ReturnDto<string> EditModel([FromBody] dynamic model)
    {
        Guid? guid = model.guid; //到货单主键
        string fngDesc = model.fngDesc; //备注
        string fngDesc = model.fngDesc; //异常描述
        string iqcRemark = model.iqcRemark;
        string ckId=model.ckId;
        string iqcXblb = model.iqcXblb;
        var _outMsg = "";
        var _outSum = -1;
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
@@ -317,6 +323,9 @@
                        new("@inEdtUserGuid", _userGuid),
                        new("@inOrderGuid", UtilityHelper.CheckGuid(guid) ? guid: DBNull.Value),
                        new("@fngDesc", fngDesc),
                        new("@ckId", ckId),
                        new("@iqcRemark", iqcRemark),
                        new("@iqcXblb", iqcXblb),
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
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/MesQmAql1Manager.cs
@@ -1,12 +1,13 @@
using System.Text;
using GS.QC.Models;
using Gs.Toolbox;
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 Newtonsoft.Json.Linq;
using System.Linq;
using System.Text;
namespace GS.QC.Service;
@@ -18,6 +19,7 @@
    private readonly MesQmAql2Manager _mesQmAql2Manager;
    private readonly MesQmAql3Manager _mesQmAql3Manager;
    private readonly MesQmAql4Manager _mesQmAql4Manager;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesQmAql1Manager(IHttpContextAccessor httpContextAccessor)
@@ -26,6 +28,7 @@
        _mesQmAql2Manager = new MesQmAql2Manager();
        _mesQmAql3Manager = new MesQmAql3Manager();
        _mesQmAql4Manager = new MesQmAql4Manager();
        (_userCode, _userGuid, _orgFids) =
            UtilityHelper.GetUserGuidAndOrgGuid(_http);
@@ -56,6 +59,14 @@
        return ReturnDto<PageList<MesQmAql1>>.QuickReturn(pageList,
            ReturnCode.Success, "读取成功");
    }
    // å®šä¹‰ AQL æ ‡å‡†é¡ºåº
    private static readonly Dictionary<decimal, int> _aqlOrder = new Dictionary<decimal, int>
{
    { 0.0100m, 1 }, { 0.0150m, 2 }, { 0.0250m, 3 }, { 0.0400m, 4 }, { 0.0650m, 5 },
    { 0.1000m, 6 }, { 0.1500m, 7 }, { 0.2500m, 8 }, { 0.4000m, 9 }, { 0.6500m, 10 },
    { 1.0000m, 11 }, { 1.5000m, 12 }, { 2.5000m, 13 }, { 4.0000m, 14 }, { 6.5000m, 15 },
    { 10.0000m, 16 }
};
    /// <summary>
    ///     æ ¹æ®ä¸»è¡¨id读取主表和子表
@@ -77,6 +88,12 @@
            .Where(a => a.Aql1Id == m.Guid)
            .OrderBy(a => a.SampleSizeWord)
            .ToList();
        m.MesQmAql4s = Db.Queryable<MesQmAql4>()
            .Where(a => a.Aql1Id == m.Guid)
            .ToList()
            .OrderBy(a => a.FacLevel)
            .ToList();
        if (m != null)
            return ReturnDto<MesQmAql1>.QuickReturn(m,
                ReturnCode.Success, "读取成功!");
@@ -186,6 +203,34 @@
                    .ExecuteCommand();
            }
            if (model.MesQmAql4s is { Count: > 0 })
            {
                var _upLst = new List<MesQmAql4>();
                var _addLst = new List<MesQmAql4>();
                foreach (var m in model.MesQmAql4s)
                    if (UtilityHelper.CheckGuid(m.Guid))
                    {
                        m.Aql1Id = model.Guid;
                        _upLst.Add(m);
                    }
                    else
                    {
                        m.Guid = Guid.NewGuid();
                        m.Aql1Id = model.Guid;
                        _addLst.Add(m);
                    }
                if (_upLst is { Count: > 0 })
                {
                    var guids = _upLst.Select(t => t.Guid).ToArray();
                    Db.Deleteable<MesQmAql4>().In(guids).ExecuteCommand();
                    _addLst.AddRange(_upLst);
                }
                Db.Insertable(_addLst).PageSize(1).IgnoreColumnsNull()
                    .ExecuteCommand();
            }
            Db.Ado.CommitTran();
        }
        catch (Exception ex)
WebApi/GS.QC/Service/MesQmAql4Manager .cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
using GS.QC.Models;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
namespace GS.QC.Service;
public class MesQmAql4Manager : Repository<MesQmAql4>,
    IRomteService
{
}
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.QC/Service/RkqcManager.cs
@@ -8,10 +8,15 @@
using Microsoft.AspNetCore.Mvc;
using System.Dynamic;
using static Gs.Toolbox.UtilityHelper;
using System.Text;
namespace GS.QC.Service
{
    /// <summary>
    /// å…¶å®ƒå…¥åº“检验
    /// </summary>
    [ApiGroup(ApiGroupNames.QC)]
    public class RkqcManager : IRomteService
@@ -138,6 +143,8 @@
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        #endregion
    }
}
WebApi/GS.QC/Service/RkqcSqManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,414 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
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 static Gs.Toolbox.UtilityHelper;
namespace GS.QC.Service
{
    /// <summary>
    /// è¶…期检验申请
    /// </summary>
    [ApiGroup(ApiGroupNames.QC)]
    public class RkqcSqManager : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public RkqcSqManager(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([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("cqjy_lst", 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, "读取成功");
        }
        /// <summary>
        ///     è¯»å–
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            m.list2 = new List<dynamic>();
            SqlParameter[] parameters =
            {
                new("@inMainGuid", guid),
                new("@inP1", ""),
                new("@inP2", ""),
                new("@inP3", ""),
                new("@inP4", "")
            };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[cqjy_mx]",
                    parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    var dr = dset.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                    var _tb = dset.Tables[1].TableToDynamicList();
                    m.list = _tb;
                    var _tb2 = dset.Tables[2].TableToDynamicList();
                    m.list2 = _tb2;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                "读取失败!");
        }
        /// <summary>
        ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
        {
            Guid? guid = model.Guid; //主键
            string remark = model.Remark; //备注
            string billType = model.BillType; //申请类型
            string kcOrgId = model.KcOrgId;//
            StringBuilder _sb = new StringBuilder();
            string _split = "|";
            foreach (var m in model.list)
            {
                string _guid = m.Guid.ToString();
                var _line = m.ItemBarCode + _split
                    + (UtilityHelper.CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
                if (_sb.Length > 0)
                    _sb.Append("~");
                _sb.Append(_line);
            }
            dynamic mObj = new ExpandoObject();
            mObj.outMsg = "";
            mObj.outSum = -1;
            mObj.outGuid = "";
            mObj.outNo = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[cqjy_edt]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@outGuid", SqlDbType.UniqueIdentifier),
                        new("@outNo", SqlDbType.NVarChar, 300),
                        new("@inOrderGuid",UtilityHelper.CheckGuid(guid) ? guid: DBNull.Value),
                        new("@remark", remark),
                        new("@billType", billType),
                        new("@kcOrgId", kcOrgId),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString())
                    };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
                        parameters[2].Direction = ParameterDirection.Output;
                        parameters[3].Direction = ParameterDirection.Output;
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        cmd.ExecuteNonQuery();
                        mObj.outMsg = parameters[0].Value.ToString();
                        mObj.outSum = int.Parse(parameters[1].Value.ToString());
                        mObj.outGuid = parameters[2].Value.ToString();
                        mObj.outNo = parameters[3].Value.ToString();
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "cqjy_edt error:" + ex.Message);
                        mObj.outMsg = ex.Message;
                        mObj.outSum = -1;
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            if (mObj.outSum <= 0)
                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
        }
        /// <summary>
        ///     åˆ é™¤ä¸»è¡¨æˆ–明细
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> DeleteModelOrMx([FromBody] dynamic model)
        {
            int? rtnInt = (int)ReturnCode.Default;
            Guid? guid = model.guid;
            string mxGuid = model.mxGuid;
            var _outMsg = "";
            var _outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[cqjy_del]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid",
                            UtilityHelper.CheckGuid(guid)
                                ? guid
                                : DBNull.Value),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inMxGuid", mxGuid)
                    };
                        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(),
                            "cqjy_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);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> SelectForm([FromBody] dynamic model)
        {
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = model.sortName;
            string keyWhere = model.keyWhere;
            string kcOrgId = model.kcOrgId;
            var dset = new DataSet();
            try
            {
                using (var conn = new SqlConnection(DbHelperSQL.strConn))
                {
                    using (var cmd = new SqlCommand("[cqjy_select]", 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", ""),
                        new("@inP2", kcOrgId)
                    };
                        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, "读取成功");
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="mode"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
        {
            string _guid = mode.guid;
            string _inFieldValue = mode.inFieldValue;
            string _proName = "cqjy_submit";
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand(_proName, conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                       new("@outMsg", SqlDbType.NVarChar, 300),
                        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(), "cqjy_submit error:" + ex.Message);
                        m.outMsg = ex.Message;
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
        }
    }
}
WebApi/GS.QC/Service/RkqcfaManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,331 @@
using System.Data;
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 static Gs.Toolbox.UtilityHelper;
using Microsoft.AspNetCore.Authorization;
using System.Text;
using System.Dynamic;
using System.Data.SqlClient;
namespace GS.QC.Service
{
    /// <summary>
    /// è´¨ä¿æœŸæ–¹æ¡ˆ
    /// </summary>
    [ApiGroup(ApiGroupNames.QC)]
    public class RkqcfaManager : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public RkqcfaManager(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                UtilityHelper.GetUserGuidAndOrgGuid(_http);
        }
        #region
        /// <summary>
        /// è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([FromBody] PageQuery model)
        {
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = string.IsNullOrEmpty(model.sortName) ? "a.fabm" : model.sortName;
            string keyWhere = model.keyWhere;
            System.Text.StringBuilder sbSql = new StringBuilder();
            sbSql.Append("select * from ");
            sbSql.Append("( ");
            sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.* ,(case  a.zt when 1 then '正常' when 0 then  '禁用'  end) as isStatusTxt,('('+org.FNumber+')'+org.NAME) as orgName from MES_CQJY_FA A LEFT JOIN SYS_ORGANIZATION ORG ON ORG.FID=A.fSubsidiary 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 MES_CQJY_FA a LEFT JOIN SYS_ORGANIZATION ORG ON ORG.FID=A.fSubsidiary where 1=1 " + keyWhere);
            DataSet dset = new DataSet();
            try
            {
                dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString());
            }
            catch (Exception ex)
            {
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "GetListPage error:" + ex.Message);
                return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
            }
            PageList<dynamic> _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)//有数据
            {
                int intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
                int pages = (intTotal % everyPageSize != 0) ? (intTotal / everyPageSize + 1) : (intTotal / everyPageSize);
                _pglist.total = intTotal;
                _pglist.everyPageSize = everyPageSize;
                _pglist.pages = pages;
                List<dynamic> _dy = dset.Tables[0].TableToDynamicList();
                _pglist.list = _dy;
            }
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, ReturnCode.Success, "读取成功");
        }
        /// <summary>
        /// åˆ é™¤å®žä½“
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
        {
            string guid = model.guid;
            string mxGuid = model.mxGuid;
            int rtnInt = (int)ReturnCode.Default;
            int cont = 0;
            try
            {
                cont = isChkOrUnChk(guid, 1);
                if (cont > 0)
                    return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,该信息已被审核!");
                StringBuilder sbCount = new StringBuilder();
                sbCount.Append("select COUNT(1) from [dbo].[MES_CQJY_FA_DETAIL] where pGuid='" + guid + "'");
                cont = 0;
                try
                {
                    cont = int.Parse(DbHelperSQL.GetSingle(sbCount.ToString()).ToString());
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(), "DeleteModel error:" + sbCount.ToString());
                    return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,请重试!");
                }
                if (cont > 0)
                {
                    return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "请先删除下面的物料列表!");
                }
                StringBuilder strSql = new StringBuilder();
                strSql.Append(" delete from MES_CQJY_FA ");
                strSql.Append(" where guid='" + guid + "'");
                int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
                rtnInt = rows;
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "DeleteModel error:" + ex.Message);
                rtnInt = (int)ReturnCode.Exception;
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败," + ex.Message);
            }
            if (rtnInt > 0)
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功,共删除" + rtnInt.ToString() + "条数据!");
            else
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,请重试!");
        }
        /// <summary>
        /// å¢žåŠ å®žä½“
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
        {
            string guid = model.guid;
            string famc = model.famc;
            string bzqx = model.bzqx;
            string fjxz = model.fjxz;
            string yjrq = model.yjrq;
            string bz = model.bz;
            int zt = 1;
            string fSubsidiary = model.fSubsidiary;
            int? rtnInt = (int)ReturnCode.Default;
            dynamic mObj = new ExpandoObject();
            mObj.outMsg = "";
            mObj.outSum = -1;
            mObj.outGuid = "";
            mObj.outNo = "";
            if (UtilityHelper.CheckGuid(guid))
            {
                int cont = isChkOrUnChk(guid, 1);
                if (cont > 0)
                {
                    mObj.outMsg = "删除失败,该信息已被审核!";
                    mObj.outSum = -1;
                    return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
                }
            }
            string fabm = "";//方案编码
            StringBuilder strSql = new StringBuilder();
            if (!UtilityHelper.CheckGuid(guid))
            {
                guid = Guid.NewGuid().ToString();
                fabm = GetBillNo("JYFA(检验方案)");
                strSql.Append(" insert into MES_CQJY_FA");
                strSql.Append(" ([guid] ,[fabm] ,[famc] ,[bzqx] ,[fjxz],[yjrq] ,[bz] ,[zt],fSubsidiary,checkStatus)");
                strSql.Append(" values(");
                strSql.Append(" '" + guid + "','" + fabm + "','" + famc + "'," + bzqx + "," + fjxz + "," + yjrq + ",'" + bz + "'," + zt + "," + fSubsidiary + ",0)");
            }
            else
            {
                strSql.Append(" update MES_CQJY_FA set [famc]='" + famc + "' ,[bzqx]=" + bzqx + " ,[fjxz]=" + fjxz + ",[yjrq]=" + yjrq + " ,[bz]='" + bz + "'");
                strSql.Append(" where guid='" + guid + "'");
            }
            try
            {
                rtnInt = DbHelperSQL.ExecuteSql(strSql.ToString());
                mObj.outMsg = "操作成功!";
                mObj.outSum = rtnInt;
                mObj.outGuid = guid;
                mObj.outNo = fabm;
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "EditModel error:" + ex.Message);
                rtnInt = (int)ReturnCode.Exception;
                mObj.outMsg = ex.Message;
                mObj.outSum = -1;
            }
            if (mObj.outSum <= 0)
                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
        }
        /// <summary>
        /// è¯»å–实体
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        [AllowAnonymous]
        public ReturnDto<System.Dynamic.ExpandoObject> GetModel([FromBody] dynamic model)
        {
            dynamic m = new System.Dynamic.ExpandoObject();
            System.Text.StringBuilder sbSql = new StringBuilder();
            sbSql.Append(" select top 1 * from MES_CQJY_FA where 1=1 and guid='" + model.guid.ToString() + "' ");
            try
            {
                DataSet dset = new DataSet();
                dset = DbHelperSQL.Query(sbSql.ToString());
                if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)
                {
                    System.Data.DataRow dr = dset.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
                }
                else
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "GetModel error:" + ex.Message);
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
            }
        }
        /// <summary>
        /// åˆ¤æ–­æ˜¯å¦å®¡æ ¸
        /// </summary>
        /// <param name="guidList"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        private int isChkOrUnChk(string guidList, int status)
        {
            int cont = 0;
            cont = int.Parse(DbHelperSQL.GetSingle("select count(1) from MES_CQJY_FA where guid='" + guidList + "' and isnull(checkstatus,0)=" + status + "").ToString());
            return cont;
        }
        #endregion
        /// <summary>
        /// ç§»å‡ºæˆ–移入
        /// </summary>
        /// <param name="mode"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModelOutIn([FromBody] dynamic mode)
        {
            string _guid = mode.guid;
            string _inFieldValue = mode.inFieldValue;
            string _inItemsGuids = mode.inItemsGuids;
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("cqjy_itemsOutIn", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                                new("@outMsg", SqlDbType.NVarChar, 300),
                                new("@outSum", SqlDbType.Int),
                                new("@inEdtUserGuid", _userGuid),
                                new("@inOrderGuid", _guid),
                                new("@inFieldValue",_inFieldValue),
                                new("@inItemsGuids",_inItemsGuids),
                            };
                        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)
                    {
                        m.outMsg = ex.Message;
                        LogHelper.Debug(this.ToString(), "cqjy_itemsOutIn error:" + ex.Message);
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
        }
        /// <summary>
        /// è¯»å–编码
        /// </summary>
        /// <param name="billType"></param>
        /// <returns></returns>
        private static string GetBillNo(string billType, string itemNo = "")
        {
            var sbSql = new StringBuilder();
            sbSql.Append(" DECLARE @hNo nvarchar(50) ");
            sbSql.Append("  EXEC [getOrderNo] '" + billType + "',@hNo output,'" +
                         itemNo + "'");
            sbSql.Append("  select @hNo as t1");
            var str = "";
            try
            {
                str = DbHelperSQL.GetSingle(sbSql.ToString()).ToString();
            }
            catch (Exception ex)
            {
                str = Guid.NewGuid().ToString();
            }
            return str;
        }
    }
}
WebApi/Gs.BaseInfo/Services/MesCustomerManager.cs
@@ -11,6 +11,9 @@
namespace Gs.BaseInfo.Services;
/// <summary>
/// å®¢æˆ·ç®¡ç†
/// </summary>
[ApiGroup(ApiGroupNames.BaseInfo)]
public class MesCustomerManager : Repository<MesCustomer>, IRomteService
{
@@ -31,7 +34,6 @@
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<MesCustomer>> GetListPage(PageQuery query)
    {
        var pageList = new PageList<MesCustomer>();
        try
        {
WebApi/Gs.BaseInfo/Services/MesItemTypeManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,150 @@
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;
[ApiGroup(ApiGroupNames.BaseInfo)]
public class MesItemTypeManager : Repository<MesItemType>, IRomteService
{
    private readonly IHttpContextAccessor _http;
     private readonly string _userCode,_userGuid,_orgFids;
    public MesItemTypeManager(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            UtilityHelper.GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     æŸ¥è¯¢åˆ—表,支持分页
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<MesItemType>> GetListPage(PageQuery query)
    {
        var pageList = new PageList<MesItemType>();
        try
        {
            var _sbWhere = new StringBuilder(" 1=1" + query.keyWhere);
            var _sbBy =
                new StringBuilder(query.sortName + " " + query.sortOrder);
            var totalCount = 0;
            var itemsList = Db.Queryable<MesItemType>("a")
                .Where(_sbWhere.ToString())
                .OrderBy(_sbBy.ToString())
                .ToPageList(query.currentPage, query.everyPageSize,
                    ref totalCount);
            pageList = new PageList<MesItemType>(itemsList, totalCount,
                query.everyPageSize);
            return ReturnDto<PageList<MesItemType>>.QuickReturn(pageList,
                ReturnCode.Success, "读取成功");
        }
        catch (Exception ex)
        {
            return ReturnDto<PageList<MesItemType>>.QuickReturn(pageList,
                ReturnCode.Default, ex.Message);
        }
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
    /// <param name="guid"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<MesItemType> GetModel([FromBody] MesItemType model)
    {
        var m = base.GetById(model.Guid);
        if (m != null)
            return ReturnDto<MesItemType>.QuickReturn(m, ReturnCode.Success,
                "读取成功!");
        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/MesItemsManager.cs
@@ -1,7 +1,4 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using Gs.BaseInfo.Models;
using Gs.Entity.BaseInfo;
using Gs.Entity.Sys;
using Gs.Toolbox;
@@ -11,6 +8,10 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using SqlDataAdapter = System.Data.SqlClient.SqlDataAdapter;
namespace Gs.BaseInfo.Services;
@@ -41,12 +42,12 @@
        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<MesItems, SysOrganization, MesUnit, MesUnit, MesUnit,
                    MesUnit, MesUnit, MesUnit, MesDepots>(
                    (a, org, c, d, e, f, g, h, m) => new object[]
                    MesUnit, MesUnit, MesUnit, MesDepots, MesItemType>(
                    (a, org, c, d, e, f, g, h, m, n) => new object[]
                    {
                        JoinType.Left, a.FSubsidiary == org.Fid,
                        JoinType.Left, a.ItemUnit == c.Id.ToString(),
@@ -55,10 +56,12 @@
                        JoinType.Left, a.Storeunit == f.Id.ToString(),
                        JoinType.Left, a.SubconUnit == g.Id.ToString(),
                        JoinType.Left, a.ProduceUnit == h.Id.ToString(),
                        JoinType.Left, a.DepotCode == m.DepotId.ToString()
                        JoinType.Left, a.DepotCode == m.DepotId.ToString(),
                        JoinType.Left, a.Fmaterialgroup == n.Id.ToString()
                    })
                .Select((a, org, c, d, e, f, g, h, m) => new MesItems
                .Select((a, org, c, d, e, f, g, h, m, n) => new MesItems
                {
                    chkInt = false,
                    FSubsidiary = "(" + org.FNumber + ")" + org.Name,
                    ItemUnit = c.Fname,
                    Fpurchaseunitid = d.Fname,
@@ -67,6 +70,7 @@
                    SubconUnit = g.Fname,
                    ProduceUnit = h.Fname,
                    DepotCode = m.DepotName,
                    Fmaterialgroup = n.Tname,
                    Fforbidstatus = a.Fforbidstatus + ":" + (a.Fforbidstatus == "A" ? "正常" : "禁用"),
                    DataType = a.DataType + ":"
                        + SqlFunc.IF(a.DataType == "Z").Return("暂存")
@@ -93,7 +97,7 @@
        }
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
@@ -130,6 +134,42 @@
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetModelByOrg([FromBody] dynamic model)
    {
        string itemNo = model.itemNo;
        string orgId = model.orgId;
        dynamic m = new ExpandoObject();
        SqlParameter[] parameters =
        {
            new("@inItemNo", itemNo),
            new("@inOrgId", orgId),
        };
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.RunProcedure("[prc_item_detailByOrg]", parameters, "0");
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0)
            {
                var dr = dset.Tables[0].Rows[0];
                m = dr.RowToDynamic();
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败,找不到该物料!");
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败," + ex.Message.ToString());
        }
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
@@ -144,6 +184,7 @@
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        string keyType = model.keyType;
        string keyWord = model.keyWord;  //这个pguid,作为方案的主键
        var dset = new DataSet();
        try
        {
@@ -161,7 +202,7 @@
                        new("@inSortOrder", ""),
                        new("@inQueryWhere", keyWhere),
                        new("@inP1",keyType),//当为:检验项目,iqc,ipqc,fqc时,免检时 ç‰¹åˆ«åŠ ä¸Šè¿‡æ»¤æ¡ä»¶
                        new("@inP2", "")
                        new("@inP2", keyWord) //这个pguid,作为方案的主键
                    };
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
@@ -223,7 +264,7 @@
        System.Text.StringBuilder sbJoin = new StringBuilder();
        sbJoin.Append(" FROM MES_ITEMS [a]");
        sbJoin.Append(" Left JOIN [SYS_ORGANIZATION] [Org] ON ( [a].[FSubsidiary] = [Org].[FID] )");
        sbJoin.Append(" left join SYS_USER_BIND b on (b.userGuid='"+ keyType + "' and b.aboutGuid=a.guid)");
        sbJoin.Append(" left join SYS_USER_BIND b on (b.userGuid='" + keyType + "' and b.aboutGuid=a.item_id and b.fType='物料分区')");
        sbJoin.Append(" where 1=1 ");
        sbJoin.Append(keyWhere);
        var sbSql = new StringBuilder();
@@ -276,4 +317,86 @@
            ReturnCode.Success, "读取成功");
    }
    /// <summary>
    /// æ‰¹é‡è®¾ç½®æå‰åˆ°è´§æ—¥æœŸ
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> SetDays([FromBody] dynamic model)
    {
        string guidList = model.guidList;
        string bz10 = model.bz10;
        string percent = model.percent;
        string bz09 = model.bz09;
        if (string.IsNullOrEmpty(bz09))
            bz09 = null;
        int rtnInt = (int)ReturnCode.Default;
        // æž„建要更新的字段(只包含非空值)
        var setParts = new List<string>();
        var parameters = new List<SqlParameter>();
        if (!string.IsNullOrWhiteSpace(bz10))
        {
            setParts.Add("bz10 = @bz10");
            parameters.Add(new SqlParameter("@bz10", SqlDbType.NVarChar) { Value = bz10.Trim() });
        }
        if (!string.IsNullOrWhiteSpace(percent))
        {
            setParts.Add("loss_percent = @percent");
            parameters.Add(new SqlParameter("@percent", SqlDbType.NVarChar) { Value = percent.Trim() });
        }
        if (!string.IsNullOrWhiteSpace(bz09))
        {
            setParts.Add("bz09 = @bz09");
            parameters.Add(new SqlParameter("@bz09", SqlDbType.NVarChar) { Value = bz09.Trim() });
        }
        if (setParts.Count == 0)
        {
            // æ²¡æœ‰å¯æ›´æ–°çš„字段
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "没有需要更新的字段");
        }
        // æž„建 SQL,使用参数化避免注入
        var sql = new StringBuilder();
        sql.Append("UPDATE MES_ITEMS SET ");
        sql.Append(string.Join(", ", setParts));
        sql.Append(" WHERE guid IN (SELECT line FROM dbo.fn_split(@guidList,','))");
        try
        {
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            using (var cmd = new SqlCommand(sql.ToString(), conn))
            {
                // æ·»åŠ  guidList å‚æ•°
                cmd.Parameters.Add(new SqlParameter("@guidList", SqlDbType.NVarChar) { Value = guidList ?? string.Empty });
                // æ·»åŠ å¯èƒ½çš„æ›´æ–°å­—æ®µå‚æ•°
                foreach (var p in parameters)
                    cmd.Parameters.Add(p);
                conn.Open();
                var rows = cmd.ExecuteNonQuery();
                rtnInt = rows;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(this.ToString(), "SetDays error:" + ex.Message);
            rtnInt = (int)ReturnCode.Exception;
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败," + ex.Message);
        }
        if (rtnInt > 0)
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功!");
        else
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!");
    }
}
WebApi/Gs.BaseInfo/Services/MesSupplierManager.cs
@@ -51,7 +51,7 @@
                ).Select((a, org) => new MesSupplier
                {
                    FSubsidiary = "(" + org.FNumber + ")" + org.Name,
                    Fforbidstatus = a.Fforbidstatus+":"+(a.Fforbidstatus == "A" ? "正常" : "禁用"),
                    Fforbidstatus = a.Fforbidstatus + ":" + (a.Fforbidstatus == "A" ? "正常" : "禁用"),
                    DataType = a.DataType + ":"
                        + SqlFunc.IF(a.DataType == "Z").Return("暂存")
                        .ElseIF(a.DataType == "A").Return("创建")
@@ -165,4 +165,96 @@
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
            ReturnCode.Success, "读取成功");
    }
    /// <summary>
    /// åŠ å…¥srm名单
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> SrmJoin([FromBody] dynamic model)
    {
        string suppId = model.suppId;
        string joinType = model.joinType;
        int rtnInt = (int)ReturnCode.Default;
        try
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" delete from MES_SUPPLIER_SRM ");
            strSql.Append(" where suppId='" + suppId + "'");
            int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
            if (joinType == "1")
            {
                strSql = new StringBuilder();
                strSql.Append(" insert into MES_SUPPLIER_SRM(suppId,isSrm,create_by,create_date)");
                strSql.Append(" values('" + suppId + "',1,'" + _userCode + "',getdate())");
                rows = DbHelperSQL.ExecuteSql(strSql.ToString());
            }
            rtnInt = rows;
        }
        catch (Exception ex)
        {
            LogHelper.Debug(this.ToString(), "DeleteModel error:" + ex.Message);
            rtnInt = (int)ReturnCode.Exception;
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败," + ex.Message);
        }
        if (rtnInt > 0)
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功!");
        else
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!");
    }
    /// <summary>
    /// è¯»å–srm列表
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetSrmListPage([FromBody] PageQuery model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = string.IsNullOrEmpty(model.sortName) ? "a.supp_name" : model.sortName;
        string keyWhere = model.keyWhere;
        System.Text.StringBuilder sbSql = new StringBuilder();
        sbSql.Append("select * from ");
        sbSql.Append("( ");
        sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.*,b.create_date as joinDate,'(' + org.FNumber + ')' + org.Name as orgName  from [dbo].[MES_SUPPLIER_SRM] b left join [dbo].[MES_SUPPLIER] a on b.suppId=a.[id] left join  SYS_ORGANIZATION org  on org.FID=a.FSubsidiary 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 [dbo].[MES_SUPPLIER_SRM] b left join [dbo].[MES_SUPPLIER] a on b.suppId=a.[id] left join  SYS_ORGANIZATION org  on org.FID=a.FSubsidiary where 1=1 " + keyWhere);
        DataSet dset = new DataSet();
        try
        {
            dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString());
        }
        catch (Exception ex)
        {
            Gs.Toolbox.LogHelper.Debug(this.ToString(), "GetListPage error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
        PageList<dynamic> _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)//有数据
        {
            int intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
            int pages = (intTotal % everyPageSize != 0) ? (intTotal / everyPageSize + 1) : (intTotal / everyPageSize);
            _pglist.total = intTotal;
            _pglist.everyPageSize = everyPageSize;
            _pglist.pages = pages;
            List<dynamic> _dy = dset.Tables[0].TableToDynamicList();
            _pglist.list = _dy;
        }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, ReturnCode.Success, "读取成功");
    }
}
WebApi/Gs.BaseInfo/Services/MesWorkshopLineManager.cs
@@ -71,6 +71,78 @@
        }
    }
    /// <summary>
    ///     æŸ¥è¯¢åˆ—表,支持分页,用于各种绑定
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage2(PageQuery model)
    {
        var currentPage = model.currentPage;
        var everyPageSize = model.everyPageSize;
        var sortName = string.IsNullOrEmpty(model.sortName) ? "org.FNumber" : model.sortName;
        var keyWhere = model.keyWhere;
        string keyType = model.keyType;
        var sbSql = new StringBuilder();
        sbSql.Append("select * from ");
        sbSql.Append("( ");
        sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.* ");
        sbSql.Append(",d.departmentname,('(' + org.FNumber + ')' + org.NAME) as kcOrg");
        if (string.IsNullOrEmpty(keyType))
        {
            sbSql.Append(",cast(0 as bit) as chkInt");
        }
        else
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType + "' and b.aboutGuid=a.guid  and b.fType='过站时绑定线体')  as bit) as chkInt ");
        sbSql.Append("  from MES_WORKSHOP_LINE a ");
        sbSql.Append(" left join SYS_DEPARTMENT d on a.dpt_id=d.departmentid left join SYS_ORGANIZATION org on d.FSubsidiary=org.FID");
        sbSql.Append("  where 1=1");
        sbSql.Append(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 MES_WORKSHOP_LINE a ");
        sbSql.Append(" left join SYS_DEPARTMENT d on a.dpt_id=d.departmentid left join SYS_ORGANIZATION org on d.FSubsidiary=org.FID");
        sbSql.Append("  where 1=1");
        sbSql.Append(keyWhere);
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.Query(sbSql.ToString());
        }
        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, "读取成功");
    }
    /// <summary>
    /// æ£€æŸ¥æ˜¯å¦è¢«ä½¿ç”¨ï¼Œä½¿ç”¨åŽä¸èƒ½è¿›è¡Œä¿®æ”¹å’Œåˆ é™¤
    /// </summary>
@@ -81,8 +153,6 @@
    {
        System.Text.StringBuilder sbSql = new StringBuilder();
        sbSql.Append(" select top 1 daa015 as xt from WOMDAA daa left join MES_WORKSHOP_LINE line on daa.daa015=line.id where line.guid='" + strGuid + "'");
        sbSql.Append(" union all");
        sbSql.Append(" select top 1 lineId as xt from MES_WORK_PROD daa left join MES_WORKSHOP_LINE line on daa.lineId=line.id where line.guid='" + strGuid + "'");
        try
        {
            DataSet dset = new DataSet();
@@ -105,11 +175,11 @@
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<string?> EditModel([FromBody] MesWorkshopLine model)
    {
        bool _blChk = checkLine(model.Guid.ToString());
        if (_blChk)
        {
            return ReturnDto<string>.QuickReturn("", ReturnCode.Exception, "操作失败,该线体已产生了数据,无法进行修改,删除等操作!");
        }
        //bool _blChk = checkLine(model.Guid.ToString());
        //if (_blChk)
        //{
        //    return ReturnDto<string>.QuickReturn("", ReturnCode.Exception, "操作失败,该线体已产生了数据,无法进行修改,删除等操作!");
        //}
        var _bl = false;
        try
        {
WebApi/Gs.BaseInfo/Services/PrintAutoManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@
using System.Data;
using System.Data.SqlClient;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.BaseInfo.Services
{
    [ApiGroup(ApiGroupNames.BaseInfo)]
    public class PrintAutoManager : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public PrintAutoManager(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([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>(),
                extendList = new List<dynamic>(),
            };
            try
            {
                dset = DbHelperSQL.RunProcedure("prc_print_lst", 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;
                    var _dy2 = dset.Tables[2].TableToDynamicList();
                    _pglist.extendList = _dy2;
                }
            }
            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, "读取成功");
        }
        /// <summary>
        ///   æ›´æ–°è‡ªåŠ¨æ‰“å°
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<string> EditModel([FromBody] dynamic model)
        {
            Guid? guid = model.guid; //主键
            var _outMsg = "";
            var _outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_print_rtn]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                           new("@inGuid", UtilityHelper.CheckGuid(guid) ? guid: DBNull.Value),
                        };
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        _outSum = cmd.ExecuteNonQuery();
                        _outMsg = "处理成功!";
                    }
                    catch (Exception ex)
                    {
                        _outMsg = ex.Message;
                        LogHelper.Debug(ToString(), "prc_print_rtn error:" + ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            if (_outSum <= 0)
                return ReturnDto<string>.QuickReturn(guid.ToString(), ReturnCode.Exception, _outMsg);
            return ReturnDto<string>.QuickReturn(guid.ToString(), ReturnCode.Success, _outMsg);
        }
    }
}
WebApi/Gs.BaseInfo/Services/PrintInfoManager.cs
@@ -79,7 +79,7 @@
            sbSql.Append(",cast(0 as bit) as chkInt");
        }
        else
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType + "' and b.aboutGuid=a.guid)  as bit) as chkInt ");
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType + "' and b.aboutGuid=a.guid  and b.fType='打印机')  as bit) as chkInt ");
        sbSql.Append("  from print_info a ");
        sbSql.Append(keyWhere);
        sbSql.Append(") as T ");
WebApi/Gs.Entity/BaseInfo/MesDepots.cs
@@ -245,4 +245,6 @@
    /// </summary>
    [SugarColumn(IsIgnore = true)]
    public string? OrgId { get; set; }
}
WebApi/Gs.Entity/BaseInfo/MesItemType.cs
WebApi/Gs.Entity/BaseInfo/MesItems.cs
@@ -344,4 +344,11 @@
    [SugarColumn(IsIgnore = true)] public string? CreateDate1 { get; set; }
    [SugarColumn(IsIgnore = true)] public string? Tc { get; set; }
    /// <summary>
    /// é€‰æ‹©æ¡†
    /// </summary>
    [SugarColumn(IsIgnore = true)] public bool? chkInt { get; set; }
}
WebApi/Gs.HostIIS/CustomContractResolver.cs
@@ -5,6 +5,12 @@
public class CustomContractResolver : DefaultContractResolver
{
    /// <summary>
    /// æŠŠå®žä½“字段转为驼峰命名
    /// </summary>
    /// <param name="strItem"></param>
    /// <returns></returns>
    protected override string ResolvePropertyName(string strItem)
    {
        var hasLowercase = Regex.IsMatch(strItem, @"[a-z]");
@@ -14,7 +20,6 @@
            chars[0] = char.ToLower(chars[0]);
            return new string(chars);
        }
        var strItems = strItem.ToLower().Split('_');
        var strItemTarget = strItems[0];
        for (var j = 1; j < strItems.Length; j++)
@@ -25,7 +30,6 @@
            temp2 = temp1 + temp.Remove(0, 1);
            strItemTarget += temp2;
        }
        return strItemTarget;
    }
}
WebApi/Gs.HostIIS/Program.cs
@@ -73,8 +73,7 @@
    //添加安全定义
    c.AddSecurityDefinition("Token", new OpenApiSecurityScheme
    {
        Description =
            "请输入token,格式为:token 3fa85f64-5717-4562-b3fc-2c963f66afa6(注意中间必须有空格)",
        Description ="请输入token,格式为:token 3fa85f64-5717-4562-b3fc-2c963f66afa6(注意中间必须有空格)",
        Name = "token",
        In = ParameterLocation.Header,
        Type = SecuritySchemeType.ApiKey,
WebApi/Gs.HostIIS/RequestAuthorizeAttribute.cs
@@ -7,6 +7,11 @@
public class ApiAuthorizeAttribute : Attribute, IAuthorizationFilter
{
    /// <summary>
    /// ç”¨æˆ·ä»¤ç‰ŒéªŒè¯
    /// </summary>
    /// <param name="context"></param>
    public void OnAuthorization(AuthorizationFilterContext context)
    {
        var token = context.HttpContext.Request.Headers["token"]
WebApi/Gs.HostIIS/appsettings.json
@@ -6,13 +6,15 @@
    }
  },
  "AllowedHosts": "*",
  /*"ConnectionStrings": "Data Source=192.168.1.146;Initial Catalog=TEST_MES;User ID=testUser;Password =qixi1qaz@WSXtest",*/
  "ConnectionStrings": "Data Source=192.168.1.146;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes",
  "ConnectionStrings": "Data Source=192.168.1.146,12468;Initial Catalog=TEST_MES;User ID=testUser;Password =qixi1qaz@WSXtest",
  /*"ConnectionStrings": "Data Source=192.168.1.146,12468;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes",*/
  "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",
  "ServicesPath": "Services",
  "LogPath": "logs",
  "UploadPath": "upload",
  "DownPath": "down"
  "DownPath": "down",
  "XlsFont": "45",
  "XlsFontXj": "205"
}
WebApi/Gs.JJGZ/Gs.JJGZ.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <BaseOutputPath>..\Gs.HostIIS\bin</BaseOutputPath>
        <GenerateDocumentationFile>True</GenerateDocumentationFile>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
        <OutputPath>..\Gs.HostIIS\bin\Debug\</OutputPath>
        <DocumentationFile>..\Gs.HostIIS\bin\Debug\GS.JJGZ.xml</DocumentationFile>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
        <OutputPath>..\Gs.HostIIS\bin\Release\</OutputPath>
    </PropertyGroup>
    <ItemGroup>
    <ProjectReference Include="..\Gs.Toolbox\Gs.Toolbox.csproj" />
    <ProjectReference Include="..\Gs.Entity\Gs.Entity.csproj" />
  </ItemGroup>
</Project>
WebApi/Gs.JJGZ/MesAttanConController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,300 @@
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 Newtonsoft.Json.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesAttanConController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesAttanConController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetListPage([FromBody] dynamic model)
    {
        string lineNo = model.lineNo.ToString();
        string date = model.date.ToString();
        string orgId = model.orgId.ToString();
        var dset = new DataSet();
        dynamic m = new ExpandoObject();
        m.list = new List<dynamic>();
        m.list1 = new List<dynamic>();
        m.list2 = new List<dynamic>();
        m.list3 = new List<dynamic>();
        try
        {
            var parameters = new[] {
                    new SqlParameter("@inLineNo", lineNo),
                    new SqlParameter("@inDate", date),
                    new SqlParameter("@inOrgId", orgId)
                };
            var dsMain = DbHelperSQL.Query("EXEC prc_AttanCon_lst @inLineNo, @inDate, @inOrgId", parameters);
            if (dsMain != null && dsMain.Tables.Count > 0)
            {
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
                var _tb1 = dsMain.Tables[1].TableToDynamicList();
                m.list1 = _tb1;
                var _tb2 = dsMain.Tables[2].TableToDynamicList();
                m.list2 = _tb2;
                var _tb3 = dsMain.Tables[3].TableToDynamicList();
                m.list3 = _tb3;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
            "读取成功!");
    }
    /// <summary>
    /// ä¿®æ”¹
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
    {
        string lineNo = model.lineNo; //主键
        string date = model.date; //主键
        string orgId = model.orgId; //主键
        var _sb = new StringBuilder();
        var _split = "|";
        foreach (var m in model.list)
        {
            var _line = m.GUID + _split
                                    + m.Hour + _split
                                    + m.Reason;
            if (_sb.Length > 0)
                _sb.Append("~");
            _sb.Append(_line);
        }
        dynamic mObj = new ExpandoObject();
        mObj.outMsg = "";
        mObj.outSum = -1;
        mObj.outGuid = "";
        mObj.outNo = "";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_AttanCon_edt]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@outNo", SqlDbType.NVarChar, 300),
                        new("@inLineNo", lineNo),
                        new("@inDate", date),
                        new("@inOrgId", orgId),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString())
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                    parameters[2].Direction = ParameterDirection.Output;
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    cmd.ExecuteNonQuery();
                    mObj.outMsg = parameters[0].Value.ToString();
                    mObj.outSum = int.Parse(parameters[1].Value.ToString());
                    mObj.outNo = parameters[2].Value.ToString();
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "prc_ERRORJS_edt error:" + ex.Message);
                    mObj.outMsg = ex.Message;
                    mObj.outSum = -1;
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///     è®¡ç®—工资
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> CountModel([FromBody] dynamic model)
    {
        string lineNo = model.lineNo.ToString();
        string date = model.date.ToString();
        string orgId = model.orgId.ToString();
        dynamic mObj = new ExpandoObject();
        mObj.outSum = -1;
        mObj.outMsg = "";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_AttanCon_count]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    var parameters = new[] {
                        new SqlParameter("@inLineNo", lineNo),
                        new SqlParameter("@inDate", date),
                        new SqlParameter("@inOrgId", orgId),
                        new SqlParameter("@inEdtUserGuid", _userGuid)
                    };
                    mObj.outSum = 1;
                    mObj.outMsg = "计算工资";
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "prc_AttanCon_count error:" + ex.Message);
                    mObj.outMsg = ex.Message;
                    mObj.outSum = -1;
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///     æäº¤å®¡æ ¸åå®¡æ ¸
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
    {
        string lineNo = mode.lineNo;
        string attenDate = mode.attenDate;
        string _guid = mode.guid;
        string _inFieldValue = mode.inFieldValue;
        dynamic m = new ExpandoObject();
        m.outSum = -1;
        m.outMsg = "";
        try
        {
            // å‡è®¾æäº¤å°±æ˜¯æ›´æ–°æŸä¸ªå­—段
            string sql = $"UPDATE MES_JJGZ_KQHZ SET check_status='{_inFieldValue}',check_date = getdate(), check_user='{_userGuid}' WHERE Line_No='{lineNo}' and attenDate = '{attenDate}'";
            int rows = DbHelperSQL.ExecuteSql(sql);
            m.outSum = rows;
            m.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModelSubmit error:" + ex.Message);
            m.outMsg = ex.Message;
            m.outSum = -1;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    ///     èŽ·å–è®¡æ—¶ç±»åž‹
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetTimeType([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        string mainTable = "MES_JJGZ_TIMETYPE";
        try
        {
            string sqlMain = $"SELECT HourlyType è®¡æ—¶ç±»åž‹,HourlySalary è®¡æ—¶å•ä»· FROM MES_JJGZ_JSSALARY WHERE CHECK_STATUS = 1";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     èŽ·å–äº§çº¿
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetWORKSHOPLINE([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        try
        {
            string sqlMain = $"select line_no äº§çº¿,name äº§çº¿åç§° from MES_WORKSHOP_LINE WHERE line_no IN (SELECT Line_No FROM Mes_DepartmentToLine )";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
}
WebApi/Gs.JJGZ/MesDeToLineController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,310 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesDeToLineController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesDeToLineController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        var _pglist = new PageList<dynamic>
        {
            total = 0,
            everyPageSize = 0,
            pages = 0,
            list = new List<dynamic>()
        };
        try
        {
            // æž„建分页查询SQL
            string whereClause = string.IsNullOrEmpty(keyWhere) ? "" : keyWhere;
            string orderBy = string.IsNullOrEmpty(sortName) ? "CREATE_DATE DESC" : $"{sortName} ASC";
            // æŸ¥è¯¢æ€»æ•°
            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;
            if (intTotal > 0)
            {
                // åˆ†é¡µæŸ¥è¯¢æ•°æ®
                int offset = (currentPage - 1) * everyPageSize;
                string dataSql = $@"
                    SELECT * FROM (
                        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}";
                var dsMain = DbHelperSQL.Query(dataSql);
                if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
                {
                    var pages = intTotal % everyPageSize != 0
                        ? intTotal / everyPageSize + 1
                        : intTotal / everyPageSize;
                    _pglist.total = intTotal;
                    _pglist.everyPageSize = everyPageSize;
                    _pglist.pages = pages;
                    var _dy = dsMain.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, "读取成功");
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
    {
        string guid = model.guid.ToString();
        dynamic m = new ExpandoObject();
        string mainTable = "Mes_DepartmentToLine";
        try
        {
            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)
            {
                var dr = dsMain.Tables[0].Rows[0];
                m = dr.RowToDynamic();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     æäº¤å®¡æ ¸åå®¡æ ¸
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
    {
        string _guid = mode.guid;
        string _inFieldValue = mode.inFieldValue;
        dynamic m = new ExpandoObject();
        m.outSum = -1;
        m.outMsg = "";
        try
        {
            string sql = $"UPDATE Mes_DepartmentToLine SET CHECK_STATUS='{_inFieldValue}',CHECK_DATE = getdate(), CHECK_USER='{_userGuid}' WHERE GUID='{_guid}'";
            int rows = DbHelperSQL.ExecuteSql(sql);
            m.outSum = rows;
            m.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModelSubmit error:" + ex.Message);
            m.outMsg = ex.Message;
            m.outSum = -1;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
    {
        Guid? guid = model.guid; //主键
        string departmentId = model.departmentId;
        string departmentName = model.departmentName;
        string lineNo = model.lineNo;
        string lineName = model.lineName;
        string orgId = model.orgId;
        dynamic mObj = new ExpandoObject();
        mObj.outMsg = "";
        mObj.outSum = -1;
        mObj.outGuid = "";
        mObj.outNo = "";
        try
        {
            string sql;
            if (CheckGuid(guid))
            {
                sql = $"UPDATE Mes_DepartmentToLine SET DepartmentId='{departmentId}', DepartmentName='{departmentName}', Line_No='{lineNo}', Line_Name='{lineName}',OrgId = '{orgId}' WHERE GUID='{guid}'";
            }
            else
            {
                guid = Guid.NewGuid();
                sql = $" declare @userBy nvarchar(20); select top 1 @userBy=[ACCOUNT] from [dbo].[SYS_USER] where guid='{_userGuid}' " +
                    $"INSERT INTO Mes_DepartmentToLine (GUID, CREATE_BY, CREATE_DATE, DepartmentId, DepartmentName, Line_No, Line_Name,OrgId, CHECK_STATUS) VALUES ('{guid}',@userBy,GETDATE(), '{departmentId}', '{departmentName}', '{lineNo}', '{lineName}','{orgId}', 0)";
            }
            int rows = DbHelperSQL.ExecuteSql(sql);
            mObj.outSum = rows;
            mObj.outGuid = guid.ToString();
            mObj.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModel error:" + ex.Message);
            mObj.outMsg = ex.Message;
            mObj.outSum = -1;
        }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///     åˆ é™¤ä¸»è¡¨æˆ–明细
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
    {
        int? rtnInt = (int)ReturnCode.Default;
        Guid? guid = model.guid;
        var _outMsg = "";
        var _outSum = -1;
        try
        {
            if (CheckGuid(guid))
            {
                string sql = $"DELETE FROM Mes_DepartmentToLine WHERE GUID='{guid}'";
                _outSum = DbHelperSQL.ExecuteSql(sql);
                _outMsg = _outSum > 0 ? "删除成功!" : "未删除任何数据";
            }
            else
            {
                _outMsg = "主键不能为空!";
                _outSum = -1;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
            _outMsg = ex.Message;
            _outSum = -1;
        }
        if (_outSum <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
    /// <summary>
    ///     èŽ·å–éƒ¨é—¨ä¸‹æ‹‰åˆ—è¡¨æ•°æ®
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetDepartmentList([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        try
        {
            string sql = "SELECT id AS éƒ¨é—¨Id, name AS éƒ¨é—¨åç§° FROM OA_Department";
            var ds = DbHelperSQL.Query(sql);
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var list = ds.Tables[0].TableToDynamicList();
                m.list = list;
            }
            else
            {
                m.list = new List<dynamic>();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            m.list = new List<dynamic>();
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
    }
    /// <summary>
    ///     èŽ·å–äº§çº¿ä¸‹æ‹‰åˆ—è¡¨æ•°æ®
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetLineList([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        try
        {
            string sql = "SELECT line_no AS äº§çº¿ç¼–号, name AS äº§çº¿åç§° FROM MES_WORKSHOP_LINE";
            var ds = DbHelperSQL.Query(sql);
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var list = ds.Tables[0].TableToDynamicList();
                m.list = list;
            }
            else
            {
                m.list = new List<dynamic>();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            m.list = new List<dynamic>();
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
    }
}
WebApi/Gs.JJGZ/MesJjgzErrorJsController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,496 @@
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 Newtonsoft.Json.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesJjgzErrorJsController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesJjgzErrorJsController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage([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_ERRORJS_lst", 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, "读取成功");
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
    {
        string guid = model.guid.ToString();
        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_ERRORJS";
        try
        {
            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)
            {
                var dr = dsMain.Tables[0].Rows[0];
                m = dr.RowToDynamic();
            }
            string sqlMain1 = $"SELECT * FROM MES_JJGZ_ERRORJS_DETAIL WHERE pid='{guid}'";
            var _tb = DbHelperSQL.Query(sqlMain1);
            m.list = _tb.Tables[0].TableToDynamicList();
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     æäº¤å®¡æ ¸åå®¡æ ¸
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
    {
        string _guid = mode.guid;
        string _inFieldValue = mode.inFieldValue;
        dynamic m = new ExpandoObject();
        m.outSum = -1;
        m.outMsg = "";
        try
        {
            // å‡è®¾æäº¤å°±æ˜¯æ›´æ–°æŸä¸ªå­—段
            string sql = $"UPDATE MES_JJGZ_ERRORJS SET check_status='{_inFieldValue}',check_date = getdate(), check_user='{_userGuid}' WHERE guid='{_guid}'";
            int rows = DbHelperSQL.ExecuteSql(sql);
            m.outSum = rows;
            m.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModelSubmit error:" + ex.Message);
            m.outMsg = ex.Message;
            m.outSum = -1;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
    {
        {
            Guid? guid = model.guid; //主键
            string hourlyType = model.hourlyType; //原因
            string errorType = model.errorType;//工单
            string errorTime = model.errorTime;//组织
            string hourlySalary = model.hourlySalary;//组织
            string remark = model.remark;//组织
            string DAA001 = model.DAA001;//组织
            string DAAType = model.DAAType;//组织
            string OrgId = model.OrgId;//组织
            var _sb = new StringBuilder();
            var _split = "|";
            foreach (var m in model.list)
            {
                string _guid = m.Guid.ToString();
                var _line = m.ID + _split
                                        + m.Staff_Id + _split
                                        + m.Staff_No + _split
                                        + m.Staff_Name + _split
                                        + m.Hour + _split
                                        + m.Line_No + _split
                                        + m.Line_Name + _split
                                        + m.Salary + _split
                                        + m.Remark + _split
                                        + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
                if (_sb.Length > 0)
                    _sb.Append("~");
                _sb.Append(_line);
            }
            dynamic mObj = new ExpandoObject();
            mObj.outMsg = "";
            mObj.outSum = -1;
            mObj.outGuid = "";
            mObj.outNo = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_ERRORJS_edt]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@outGuid", SqlDbType.UniqueIdentifier),
                        new("@outNo", SqlDbType.NVarChar, 300),
                        new("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value),
                        new("@inErrorTime",errorTime),
                        new("@inErrorType",errorType),
                        new("@inHourlyType",hourlyType),
                        new("@inHourlySalary",hourlySalary),
                        new("@inRemark",remark),
                        new("@inDAA001",DAA001),
                        new("@inDAAType",DAAType),
                        new("@inOrgId",OrgId),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString())
                    };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
                        parameters[2].Direction = ParameterDirection.Output;
                        parameters[3].Direction = ParameterDirection.Output;
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        cmd.ExecuteNonQuery();
                        mObj.outMsg = parameters[0].Value.ToString();
                        mObj.outSum = int.Parse(parameters[1].Value.ToString());
                        mObj.outGuid = parameters[2].Value.ToString();
                        mObj.outNo = parameters[3].Value.ToString();
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "prc_ERRORJS_edt error:" + ex.Message);
                        mObj.outMsg = ex.Message;
                        mObj.outSum = -1;
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            if (mObj.outSum <= 0)
                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
        }
    }
    /// <summary>
    ///     åˆ é™¤ä¸»è¡¨æˆ–明细
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
    {
        int? rtnInt = (int)ReturnCode.Default;
        Guid? guid = model.guid; //到货单主键
        string mxGuid = model.mxGuid;
        var _outMsg = "";
        var _outSum = -1;
        try
        {
            if (CheckGuid(guid))
            {
                string sql = $"DELETE FROM MES_JJGZ_ERRORJS WHERE guid='{guid}' DELETE FROM MES_JJGZ_ERRORJS_DETAIL WHERE pid='{guid}'";
                _outSum = DbHelperSQL.ExecuteSql(sql);
                _outMsg = _outSum > 0 ? "删除成功!" : "未删除任何数据";
            }
            else
            {
                _outMsg = "主键不能为空!";
                _outSum = -1;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
            _outMsg = ex.Message;
            _outSum = -1;
        }
        if (_outSum <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
    /// <summary>
    ///     èŽ·å–è®¡æ—¶ç±»åž‹
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetTimeType([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        string mainTable = "MES_JJGZ_TIMETYPE";
        try
        {
            string sqlMain = $"SELECT HourlyType è®¡æ—¶ç±»åž‹,HourlySalary è®¡æ—¶å•ä»· FROM MES_JJGZ_JSSALARY WHERE CHECK_STATUS = 1";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     èŽ·å–å·¥å•
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetWOMDAAInfo([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        try
        {
            string sqlMain = $"select daa001 å·¥å•号,daa002 äº§å“ç¼–码,daa003 äº§å“åç§°,daa004 äº§å“è§„æ ¼,daa025 å·¥å•类型 from WOMDAA";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     èŽ·å–å·¥å•
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetWORKSHOPLINE([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        try
        {
            string sqlMain = $"select line_no äº§çº¿,name äº§çº¿åç§° from MES_WORKSHOP_LINE";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     æ ¹æ®ç”¨æˆ·é€‰æ‹©çš„采购明细guid,读取需要作入库到货单的明细
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> SelectPbaToView(JArray guidList)
    {
        dynamic m = new ExpandoObject();
        try
        {
            var intArray = guidList.ToObject<string[]>();
            var sbLine = new StringBuilder();
            foreach (var str in intArray)
            {
                if (sbLine.Length > 0)
                    sbLine.Append(",");
                sbLine.Append(str);
            }
            string sqlMain = $"select a.id as Staff_Id,Staff_No ,Staff_Name,0 Hour ,d.Line_No Line_No , d.Line_Name Line_Name,0 Salary,''Remark,'' Id from MES_STAFF a left join OA_User b on a.staff_no = b.jobnumber left join Mes_DepartmentToLine d on d.DepartmentId = b.department where a.id in (select line from dbo.fn_split('{sbLine.ToString()}',','))";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     æ ¹æ®ç”¨æˆ·é€‰æ‹©çš„采购明细guid,读取需要作入库到货单的明细
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> SelectPba([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        string orgId = model.orgId;
        var dset = new DataSet();
        try
        {
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_item_staff_select]", conn))
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@inCurrentPage", currentPage),
                        new("@inEveryPageSize", everyPageSize),
                        new("@inSortName", sortName),
                        new("@inSortOrder", ""),
                        new("@inQueryWhere", keyWhere),
                        new("@inOrgId", orgId),
                        new("@inP1", ""),
                        new("@inP2", "")
                    };
                    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(), "prc_item_staff_select 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.JJGZ/MesJjgzJjsalaryController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,236 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesJjgzJjsalaryController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesJjgzJjsalaryController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage([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_JJSALARY_lst", 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, "读取成功");
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
    {
        string guid = model.guid.ToString();
        dynamic m = new ExpandoObject();
        m.list = new List<dynamic>();
        m.list2 = new List<dynamic>();
        string mainTable = "MES_JJGZ_JJSALARY";
        try
        {
            string sqlMain = $"SELECT A.*,b.item_no,b.item_name,b.item_model FROM {mainTable} A LEFT JOIN  MES_ITEMS b on a.ItemId = b.id WHERE a.guid='{guid}'";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
                var dr = dsMain.Tables[0].Rows[0];
                m = dr.RowToDynamic();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     æäº¤å®¡æ ¸åå®¡æ ¸
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
    {
        string _guid = mode.guid;
        string _inFieldValue = mode.inFieldValue;
        dynamic m = new ExpandoObject();
        m.outSum = -1;
        m.outMsg = "";
        try
        {
            string sql = $"UPDATE MES_JJGZ_JJSALARY SET check_status='{_inFieldValue}',check_date = getdate(), check_user='{_userGuid}' WHERE guid='{_guid}'";
            int rows = DbHelperSQL.ExecuteSql(sql);
            m.outSum = rows;
            m.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModelSubmit error:" + ex.Message);
            m.outMsg = ex.Message;
            m.outSum = -1;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
    {
        Guid? guid = model.guid; //主键
        string itemId = model.itemId;
        string remark = model.remark;
        string beginTime = model.beginTime;
        string endTime = model.endTime;
        string salary = model.salary;
        dynamic mObj = new ExpandoObject();
        mObj.outMsg = "";
        mObj.outSum = -1;
        mObj.outGuid = "";
        mObj.outNo = "";
        try
        {
            string sql;
            if (CheckGuid(guid))
            {
                sql = $"UPDATE MES_JJGZ_JJSALARY SET ItemId='{itemId}', SALARY={salary}, Remark='{remark}', BeginTime='{beginTime}', EndTime='{endTime}' WHERE guid='{guid}'";
            }
            else
            {
                guid = Guid.NewGuid();
                sql = $" declare @userBy nvarchar(20); select top 1 @userBy=[ACCOUNT] from [dbo].[SYS_USER] where guid='{_userGuid}' " +
                    $"INSERT INTO MES_JJGZ_JJSALARY (guid, CREATE_BY, CREATE_DATE, ItemId, SALARY, Remark, BeginTime, EndTime) VALUES ('{guid}',@userBy,GETDATE(), '{itemId}', {salary}, '{remark}', '{beginTime}', '{endTime}' )";
            }
            int rows = DbHelperSQL.ExecuteSql(sql);
            mObj.outSum = rows;
            mObj.outGuid = guid.ToString();
            mObj.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModel error:" + ex.Message);
            mObj.outMsg = ex.Message;
            mObj.outSum = -1;
        }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///     åˆ é™¤ä¸»è¡¨
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
    {
        int? rtnInt = (int)ReturnCode.Default;
        Guid? guid = model.guid;
        var _outMsg = "";
        var _outSum = -1;
        try
        {
            if (CheckGuid(guid))
            {
                string sql = $"DELETE FROM MES_JJGZ_JJSALARY WHERE guid='{guid}'";
                _outSum = DbHelperSQL.ExecuteSql(sql);
                _outMsg = _outSum > 0 ? "删除成功!" : "未删除任何数据";
            }
            else
            {
                _outMsg = "主键不能为空!";
                _outSum = -1;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
            _outMsg = ex.Message;
            _outSum = -1;
        }
        if (_outSum <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
}
WebApi/Gs.JJGZ/MesJjgzJssalaryController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,278 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesJjgzJssalaryController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesJjgzJssalaryController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage([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_JSSALARY_lst", 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, "读取成功");
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
    {
        string guid = model.guid.ToString();
        dynamic m = new ExpandoObject();
        m.list = new List<dynamic>();
        m.list2 = new List<dynamic>();
        string mainTable = "MES_JJGZ_JSSALARY";
        try
        {
            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)
            {
                var dr = dsMain.Tables[0].Rows[0];
                m = dr.RowToDynamic();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     æäº¤å®¡æ ¸åå®¡æ ¸
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
    {
        string _guid = mode.guid;
        string _inFieldValue = mode.inFieldValue;
        dynamic m = new ExpandoObject();
        m.outSum = -1;
        m.outMsg = "";
        try
        {
            // å‡è®¾æäº¤å°±æ˜¯æ›´æ–°æŸä¸ªå­—段
            string sql = $"UPDATE MES_JJGZ_JSSALARY SET check_status='{_inFieldValue}',check_date = getdate(), check_user='{_userGuid}' WHERE guid='{_guid}'";
            int rows = DbHelperSQL.ExecuteSql(sql);
            m.outSum = rows;
            m.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModelSubmit error:" + ex.Message);
            m.outMsg = ex.Message;
            m.outSum = -1;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
    {
        Guid? guid = model.guid; //主键
        string hourlyType = model.hourlyType;
        string hourlySalary = model.hourlySalary;
        string remark = model.remark;
        string salaryType = model.salaryType;
        string beginTime = model.beginTime;
        string endTime = model.endTime;
        dynamic mObj = new ExpandoObject();
        mObj.outMsg = "";
        mObj.outSum = -1;
        mObj.outGuid = "";
        mObj.outNo = "";
        try
        {
            string sql;
            if (CheckGuid(guid))
            {
                sql = $"UPDATE MES_JJGZ_JSSALARY SET HourlyType='{hourlyType}', HourlySalary='{hourlySalary}', Remark='{remark}', SalaryType='{salaryType}', BeginTime='{beginTime}', EndTime='{endTime}' WHERE guid='{guid}'";
            }
            else
            {
                guid = Guid.NewGuid();
                sql = $" declare @userBy nvarchar(20); select top 1 @userBy=[ACCOUNT] from [dbo].[SYS_USER] where guid='{_userGuid}' " +
                    $"INSERT INTO MES_JJGZ_JSSALARY (guid, CREATE_BY, CREATE_DATE, HourlyType, HourlySalary, Remark, SalaryType, BeginTime, EndTime) VALUES ('{guid}',@userBy,GETDATE(), '{hourlyType}', '{hourlySalary}', '{remark}', '{salaryType}', '{beginTime}', '{endTime}' )";
            }
            int rows = DbHelperSQL.ExecuteSql(sql);
            mObj.outSum = rows;
            mObj.outGuid = guid.ToString();
            mObj.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModel error:" + ex.Message);
            mObj.outMsg = ex.Message;
            mObj.outSum = -1;
        }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///     åˆ é™¤ä¸»è¡¨æˆ–明细
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
    {
        int? rtnInt = (int)ReturnCode.Default;
        Guid? guid = model.guid; //到货单主键
        string mxGuid = model.mxGuid;
        var _outMsg = "";
        var _outSum = -1;
        try
        {
            if (CheckGuid(guid))
            {
                string sql = $"DELETE FROM MES_JJGZ_JSSALARY WHERE guid='{guid}'";
                _outSum = DbHelperSQL.ExecuteSql(sql);
                _outMsg = _outSum > 0 ? "删除成功!" : "未删除任何数据";
            }
            else
            {
                _outMsg = "主键不能为空!";
                _outSum = -1;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
            _outMsg = ex.Message;
            _outSum = -1;
        }
        if (_outSum <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetTimeType([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        string mainTable = "MES_JJGZ_TIMETYPE";
        try
        {
            string sqlMain = $"SELECT * FROM {mainTable} WHERE CHECK_STATUS = 1";
            var dsMain = DbHelperSQL.Query(sqlMain);
            if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
            {
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
}
WebApi/Gs.JJGZ/MesJjgzReportController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesJjgzReportController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesJjgzReportController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    /// æœˆåº¦å‡ºå‹¤
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetYQCQList([FromBody] dynamic model)
    {
        string lineNo = model.lineNo ?? "";
        string beginDate = model.beginDate ?? DateTime.Now.AddMonths(-1).ToString();
        string endDate = model.endDate ?? DateTime.Now.ToString();
        dynamic m = new ExpandoObject();
        m.list = new List<dynamic>();
        SqlParameter[] parameters =
        {
            new("@lineNo", lineNo),
            new("@beginDate", beginDate),
            new("@endDate", endDate)
        };
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.RunProcedure("report_YDCQ", parameters, "0");
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0)
            {
                //var dr = dset.Tables[0].Rows[0];
                //m = dr.RowToDynamic();
                var _tb = dset.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    /// æœˆåº¦å·¥èµ„
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetYDGZList([FromBody] dynamic model)
    {
        string date = model.date ?? DateTime.Now.AddMonths(-1).ToString();
        string orgId = model.orgId;
        dynamic m = new ExpandoObject();
        m.list = new List<dynamic>();
        SqlParameter[] parameters =
        {
            new("@inputOrgId", orgId),
            new("@inputDate", date)
        };
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.RunProcedure("report_YDGZ", parameters, "0");
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0)
            {
                //var dr = dset.Tables[0].Rows[0];
                //m = dr.RowToDynamic();
                var _tb = dset.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    /// è¯¦ç»†
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPageJJMX([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_jjmx", 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.JJGZ/MesJjgzScheduleController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,300 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesJjgzScheduleController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesJjgzScheduleController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        var _pglist = new PageList<dynamic>
        {
            total = 0,
            everyPageSize = 0,
            pages = 0,
            list = new List<dynamic>()
        };
        try
        {
            // æž„建分页查询SQL
            string orderBy = string.IsNullOrEmpty(sortName) ? "CREATE_DATE DESC" : $"{sortName} ASC";
            // æŸ¥è¯¢æ€»æ•°
            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;
            if (intTotal > 0)
            {
                // åˆ†é¡µæŸ¥è¯¢æ•°æ®
                int offset = (currentPage - 1) * everyPageSize;
                string dataSql = $@"
                    SELECT * FROM (
                        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}";
                var dsMain = DbHelperSQL.Query(dataSql);
                if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
                {
                    var pages = intTotal % everyPageSize != 0
                        ? intTotal / everyPageSize + 1
                        : intTotal / everyPageSize;
                    _pglist.total = intTotal;
                    _pglist.everyPageSize = everyPageSize;
                    _pglist.pages = pages;
                    var _dy = dsMain.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, "读取成功");
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
    {
        string guid = model.guid.ToString();
        dynamic m = new ExpandoObject();
        string mainTable = "MES_JJGZ_SCHEDULES";
        try
        {
            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)
            {
                var dr = dsMain.Tables[0].Rows[0];
                m = dr.RowToDynamic();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     æäº¤å®¡æ ¸åå®¡æ ¸
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
    {
        string _guid = mode.guid;
        string _inFieldValue = mode.inFieldValue;
        dynamic m = new ExpandoObject();
        m.outSum = -1;
        m.outMsg = "";
        try
        {
            string sql = $"UPDATE MES_JJGZ_SCHEDULES SET CHECK_STATUS='{_inFieldValue}',CHECK_DATE = getdate(), CHECK_USER='{_userGuid}' WHERE GUID='{_guid}'";
            int rows = DbHelperSQL.ExecuteSql(sql);
            m.outSum = rows;
            m.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModelSubmit error:" + ex.Message);
            m.outMsg = ex.Message;
            m.outSum = -1;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
    {
        Guid? guid = model.guid; //主键
        string onWorkTime1 = model.onWorkTime1; // ä¸Šåˆä¸Šç­æ—¶é—´
        string offWorkTime1 = model.offWorkTime1; // ä¸Šåˆä¸‹ç­æ—¶é—´
        string onWorkTime2 = model.onWorkTime2; // ä¸‹åˆä¸Šç­æ—¶é—´
        string offWorkTime2 = model.offWorkTime2; // ä¸‹åˆä¸‹ç­æ—¶é—´
        string onWorkTime3 = model.onWorkTime3; // åŠ ç­ä¸Šç­æ—¶é—´
        string offWorkTime3 = model.offWorkTime3; // åŠ ç­ä¸‹ç­æ—¶é—´
        string beginTime = model.beginTime; // ç”Ÿæ•ˆæ—¥æœŸ
        string endTime = model.endTime; // å¤±æ•ˆæ—¥æœŸ
        string remark = model.remark; // å¤‡æ³¨
        dynamic mObj = new ExpandoObject();
        mObj.outMsg = "";
        mObj.outSum = -1;
        mObj.outGuid = "";
        mObj.outNo = "";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            try
            {
                conn.Open();
                if (CheckGuid(guid))
                {
                    // ç¼–辑模式
                    string sql = $@"UPDATE MES_JJGZ_SCHEDULES SET
                        OnWorkTime1='{onWorkTime1}',
                        OffWorkTime1='{offWorkTime1}',
                        OnWorkTime2='{onWorkTime2}',
                        OffWorkTime2='{offWorkTime2}',
                        OnWorkTime3='{onWorkTime3}',
                        OffWorkTime3='{offWorkTime3}',
                        BeginTime='{beginTime}',
                        EndTime='{endTime}',
                        Remark='{remark}'
                        WHERE GUID='{guid}'";
                    int rows = DbHelperSQL.ExecuteSql(sql);
                    mObj.outSum = rows;
                    mObj.outGuid = guid.ToString();
                    mObj.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
                }
                else
                {
                    // æ–°å¢žæ¨¡å¼ - ç”Ÿæˆç­æ¬¡ç¼–号和GUID
                    guid = Guid.NewGuid();
                    // è°ƒç”¨å­˜å‚¨è¿‡ç¨‹ç”Ÿæˆç­æ¬¡ç¼–号
                    using (var cmd = new SqlCommand("getOrderNo", conn))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.Add(new SqlParameter("@wntype", "SC(班次)"));
                        cmd.Parameters.Add(new SqlParameter("@hNo", SqlDbType.NVarChar, 50) { Direction = ParameterDirection.Output });
                        cmd.ExecuteNonQuery();
                        string scheNo = cmd.Parameters["@hNo"].Value.ToString();
                        // æ’入数据
                        string insertSql = $@"
                            DECLARE @userBy NVARCHAR(20);
                            SELECT TOP 1 @userBy=[ACCOUNT] FROM [dbo].[SYS_USER] WHERE guid='{_userGuid}';
                            INSERT INTO MES_JJGZ_SCHEDULES (
                                GUID, CREATE_BY, CREATE_DATE, ScheNo,
                                OnWorkTime1, OffWorkTime1, OnWorkTime2, OffWorkTime2,
                                OnWorkTime3, OffWorkTime3, BeginTime, EndTime, Remark, CHECK_STATUS
                            ) VALUES (
                                '{guid}', @userBy, GETDATE(), '{scheNo}',
                                '{onWorkTime1}', '{offWorkTime1}', '{onWorkTime2}', '{offWorkTime2}',
                                '{onWorkTime3}', '{offWorkTime3}', '{beginTime}', '{endTime}', '{remark}', 0
                            )";
                        int rows = DbHelperSQL.ExecuteSql(insertSql);
                        mObj.outSum = rows;
                        mObj.outGuid = guid.ToString();
                        mObj.outNo = scheNo;
                        mObj.outMsg = rows > 0 ? "操作成功!" : "未插入任何数据";
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), "EditModel error:" + ex.Message);
                mObj.outMsg = ex.Message;
                mObj.outSum = -1;
            }
            finally
            {
                conn.Close();
            }
        }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///     åˆ é™¤ä¸»è¡¨æˆ–明细
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
    {
        int? rtnInt = (int)ReturnCode.Default;
        Guid? guid = model.guid;
        var _outMsg = "";
        var _outSum = -1;
        try
        {
            if (CheckGuid(guid))
            {
                string sql = $"DELETE FROM MES_JJGZ_SCHEDULES WHERE GUID='{guid}'";
                _outSum = DbHelperSQL.ExecuteSql(sql);
                _outMsg = _outSum > 0 ? "删除成功!" : "未删除任何数据";
            }
            else
            {
                _outMsg = "主键不能为空!";
                _outSum = -1;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
            _outMsg = ex.Message;
            _outSum = -1;
        }
        if (_outSum <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
}
WebApi/Gs.JJGZ/MesJjgzTimeTypeController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,210 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesJjgzTimeTypeController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesJjgzTimeTypeController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     è¯»å–列表,支持分页
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetListPage([FromBody] dynamic model)
    {
        var dset = new DataSet();
        dynamic m = new ExpandoObject();
        m.list = new List<dynamic>();
        try
        {
            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)
            {
                //var dr = dset.Tables[0].Rows[0];
                //m = dr.RowToDynamic();
                var _tb = dsMain.Tables[0].TableToDynamicList();
                m.list = _tb;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
            "读取成功!");
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
    {
        string guid = model.guid.ToString();
        dynamic m = new ExpandoObject();
        string mainTable = "MES_JJGZ_TIMETYPE";
        try
        {
            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)
            {
                var dr = dsMain.Tables[0].Rows[0];
                m = dr.RowToDynamic();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (m != null)
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     æäº¤å®¡æ ¸åå®¡æ ¸
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
    {
        string _guid = mode.guid;
        string _inFieldValue = mode.inFieldValue;
        dynamic m = new ExpandoObject();
        m.outSum = -1;
        m.outMsg = "";
        try
        {
            string sql = $"UPDATE MES_JJGZ_TIMETYPE SET check_status='{_inFieldValue}',check_date = getdate(), check_user='{_userGuid}' WHERE guid='{_guid}'";
            int rows = DbHelperSQL.ExecuteSql(sql);
            m.outSum = rows;
            m.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModelSubmit error:" + ex.Message);
            m.outMsg = ex.Message;
            m.outSum = -1;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    /// <summary>
    ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
    {
        Guid? guid = model.guid; //主键
        string name = model.name;
        dynamic mObj = new ExpandoObject();
        mObj.outMsg = "";
        mObj.outSum = -1;
        mObj.outGuid = "";
        mObj.outNo = "";
        try
        {
            string sql;
            if (CheckGuid(guid))
            {
                sql = $"UPDATE MES_JJGZ_TIMETYPE SET Name='{name}' WHERE guid='{guid}'";
            }
            else
            {
                guid = Guid.NewGuid();
                sql = $" declare @userBy nvarchar(20); select top 1 @userBy=[ACCOUNT] from [dbo].[SYS_USER] where guid='{_userGuid}' " +
                    $"INSERT INTO MES_JJGZ_TIMETYPE (guid, CREATE_BY, CREATE_DATE, Name) VALUES ('{guid}',@userBy,GETDATE(), '{name}')";
            }
            int rows = DbHelperSQL.ExecuteSql(sql);
            mObj.outSum = rows;
            mObj.outGuid = guid.ToString();
            mObj.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
        }
        catch (Exception ex)
        {
            string msg = ex.Message;
            if (msg.Contains("UNIQUE KEY") || msg.Contains("重复键值"))
            {
                mObj.outMsg = $"类型名称“{name}”已存在,请勿重复添加!";
            }
            else
            {
                mObj.outMsg = msg;
            }
            LogHelper.Debug(ToString(), "EditModel error:" + msg);
            mObj.outSum = -1;
        }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///     åˆ é™¤ä¸»è¡¨
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
    {
        int? rtnInt = (int)ReturnCode.Default;
        Guid? guid = model.guid;
        var _outMsg = "";
        var _outSum = -1;
        try
        {
            if (CheckGuid(guid))
            {
                string sql = $"DELETE FROM MES_JJGZ_TIMETYPE WHERE guid='{guid}'";
                _outSum = DbHelperSQL.ExecuteSql(sql);
                _outMsg = _outSum > 0 ? "删除成功!" : "未删除任何数据";
            }
            else
            {
                _outMsg = "主键不能为空!";
                _outSum = -1;
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
            _outMsg = ex.Message;
            _outSum = -1;
        }
        if (_outSum <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
}
WebApi/Gs.QiTaCk/MesCgthSqManager.cs
@@ -118,7 +118,7 @@
                    m = dr.RowToDynamic();
                    var _tb = dset.Tables[1].TableToDynamicList();
                    m.list = _tb;
                }
            }
            catch (Exception ex)
@@ -174,11 +174,9 @@
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "prc_cgthsq_submit error:" + ex.Message);
                        LogHelper.Debug(ToString(), "prc_cgthsq_submit error:" + ex.Message);
                        m.outMsg = ex.Message;
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                            ex.Message);
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
                    }
                    finally
                    {
@@ -199,9 +197,15 @@
        {
            Guid? guid = model.Guid; //主键
            string bz = model.Remark; //备注
            string thOrgId = model.thOrgId;//退货组织
            string gysId = model.SuppId; //供应商
            string Fmrmode = model.Fmrmode;//方式
            string Reason = model.Reason;//原因
            string fHasLink = model.fHasLink;
            string fRequireOrgId = model.fRequireOrgId;
            string fPurchaseDeptId = model.fPurchaseDeptId;
            string fPurchaserId = model.fPurchaserId;
            string fOwnerIdHead = model.fOwnerIdHead;
            StringBuilder _sb = new StringBuilder();
            string _split = "|";
            foreach (var m in model.list)
@@ -211,6 +215,7 @@
                    + m.Quantity + _split
                    + m.Bz + _split
                    + m.DepotId + _split
                    + m.ItemId + _split
                    + (UtilityHelper.CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
                if (_sb.Length > 0)
                    _sb.Append("~");
@@ -241,6 +246,12 @@
                        new("@Fmrmode", Fmrmode),
                        new("@Reason", Reason),
                        new("@inEdtUserGuid", _userGuid),
                        new("@thOrgId", thOrgId),
                        new("@fHasLink", fHasLink),
                        new("@fRequireOrgId", fRequireOrgId),
                        new("@fPurchaseDeptId", fPurchaseDeptId),
                        new("@fPurchaserId", fPurchaserId),
                        new("@fOwnerIdHead", fOwnerIdHead),
                        new("@inLineList", _sb.ToString())
                    };
                        parameters[0].Direction = ParameterDirection.Output;
@@ -282,7 +293,7 @@
        public ReturnDto<int?> DeleteModelOrMx([FromBody] dynamic model)
        {
            int? rtnInt = (int)ReturnCode.Default;
            Guid? guid = model.guid;
            Guid? guid = model.guid;
            string mxGuid = model.mxGuid;
            var _outMsg = "";
            var _outSum = -1;
WebApi/Gs.QiTaCk/MesCgytDjManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,205 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.QiTaCk
{
    /// <summary>
    /// ä»“库验退
    /// </summary>
    [ApiGroup(ApiGroupNames.QTCK)]
    public class MesCgytDjManager : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public MesCgytDjManager(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage(
            [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_cgyt_dj_lst", 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, "读取成功");
        }
        /// <summary>
        ///     è¯»å–
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            m.list2 = new List<dynamic>();
            SqlParameter[] parameters =
            {
                new("@inMainGuid", guid),
                new("@inP1", ""),
                new("@inP2", ""),
                new("@inP3", ""),
                new("@inP4", "")
            };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[prc_cgyt_dj_mx]",
                    parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    var dr = dset.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                    var _tb = dset.Tables[1].TableToDynamicList();
                    m.list = _tb;
                    var _tb2 = dset.Tables[2].TableToDynamicList();
                    m.list2 = _tb2;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                "读取失败!");
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="mode"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
        {
            string _guid = mode.guid;
            string _inFieldValue = mode.inFieldValue;
            string _proName = "prc_cgyt_dj_submit";
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand(_proName, 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_cgthsq_dj_submit error:" + ex.Message);
                        m.outMsg = ex.Message;
                        return ReturnDto<dynamic>.QuickReturn(m,
                            ReturnCode.Default,
                            ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                "操作成功!");
        }
    }
}
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/MesItemQtManager.cs
@@ -207,8 +207,9 @@
            string inLyCus = model.inLyCus;//领用客户
            string inLyDepart = model.inLyDepart;//领用部门
            string inKcfx = model.inKcfx;//库存方向
            string inFlck=model.inFlck;//发料仓库
            string inSource = model.inSource;
            string qtlx = model.qtlx;//后来增加的类型
            string wwgys = model.wwgys;//后来增加上的委外供应商
            var _sb = new StringBuilder();
            var _split = "|";
            foreach (var m in model.list)
@@ -218,6 +219,7 @@
                     m.ItemId + _split
                    + m.Sqsl + _split
                    + m.Bz + _split
                    + m.DepotId + _split
                    + (UtilityHelper.CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
                if (_sb.Length > 0)
                    _sb.Append("~");
@@ -252,10 +254,11 @@
                        new("@inLyCus", inLyCus),
                        new("@inLyDepart", inLyDepart),
                        new("@inKcfx", inKcfx),
                        new("@inFlck", inFlck),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString()),
                        new("@inSource", inSource)
                        new("@inSource", inSource),
                        new("@qtlx", qtlx),
                       new("@wwgys", wwgys),
                    };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
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.QiTaRk/MesItemQtrkManager.cs
@@ -207,7 +207,8 @@
        string kcfx = model.kcfx;//库存方向
        string hzlx = model.hzlx;//货主类型
        string inHz = model.inHz;//货主组织
        string inSource=model.inSource;
        string inSource = model.inSource;
        string qtlx = model.qtlx;//后来增加的类型
        var _sb = new StringBuilder();
        var _split = "|";
        foreach (var m in model.list)
@@ -254,7 +255,8 @@
                        new("@inHz", inHz),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString()),
                        new("@inSource", inSource)
                        new("@inSource", inSource),
                       new("@qtlx", qtlx)
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
WebApi/Gs.QiTaRk/MesItemTblManager.cs
@@ -111,7 +111,7 @@
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[prc_item_tbl_mx]", parameters,"0");
                dset = DbHelperSQL.RunProcedure("[prc_item_tbl_mx]", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
@@ -147,6 +147,7 @@
            string yy = model.yy; //原因
            string inDaaGuid = model.inDaaGuid;//工单
            string inOrgId = model.inOrgId;//组织
            string _chkOut = model.chkOut;
            var _sb = new StringBuilder();
            var _split = "|";
            foreach (var m in model.list)
@@ -185,6 +186,7 @@
                        new("@inYy", yy),
                        new("@inDaaGuid", inDaaGuid),
                        new("@inOrgId", inOrgId),
                        new("@chkOut", _chkOut),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString())
                    };
@@ -429,7 +431,6 @@
        {
            string _guid = mode.guid;
            string _inFieldValue = mode.inFieldValue;
            string _chkOut=mode.chkOut;
            string _proName = "prc_item_tbl_submit";
            dynamic m = new ExpandoObject();
            m.outSum = -1;
@@ -449,7 +450,7 @@
                        new("@inEdtUserGuid", _userGuid),
                        new("@inOrderGuid", _guid),
                        new("@inFieldValue", _inFieldValue),
                        new("@in1", _chkOut),
                        new("@in1", ""),
                        new("@in2", "")
                    };
                        parameters[0].Direction = ParameterDirection.Output;
@@ -459,6 +460,12 @@
                        cmd.ExecuteNonQuery();
                        m.outMsg = parameters[0].Value.ToString();
                        m.outSum = int.Parse(parameters[1].Value.ToString());
                        #region è‡ªåŠ¨å¤„æˆè¡¥æ–™å•æ®
                        if (m.outSum > 0)
                        {
                            autoBld(_guid);
                        }
                        #endregion
                    }
                    catch (Exception ex)
                    {
@@ -476,5 +483,54 @@
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
        }
        /// <summary>
        /// è‡ªåŠ¨ç”Ÿæˆè¡¥æ–™å•æ®
        /// </summary>
        /// <param name="_tblGuid">退补料guid</param>
        private void autoBld(string _tblGuid)
        {
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("prc_item_tbl_submit_autoBld", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                         new("@outMsg", SqlDbType.NVarChar, 2500),
                        new("@outSum", SqlDbType.Int),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inOrderGuid", _tblGuid),
                        new("@inFieldValue", "1"),
                        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());
                        LogHelper.Debug(ToString(), "prc_item_tbl_submit_autoBld error:outSum:" + m.outSum + ",outMsg:" + m.outMsg);
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(), "prc_item_tbl_submit_autoBld error:"+ _tblGuid+":" + ex.Message);
                        m.outMsg = ex.Message;
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
        }
    }
}
WebApi/Gs.Report/BTDetails.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,126 @@
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.Dynamic;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.Report
{
    [ApiGroup(ApiGroupNames.Report)]
    public class BTDetails : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public BTDetails(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///  æ¡ç äº¤æ˜“明细
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([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("BTDetails", 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, "读取成功");
        }
        /// <summary>
        ///     è¯»å–
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            SqlParameter[] parameters =
            {
                new("@inMainGuid", guid),
            };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[BTDetails_MX]", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    var dr = dset.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
    }
}
WebApi/Gs.Report/CkController.cs
@@ -1,11 +1,12 @@
using System.Data;
using System.Data.SqlClient;
using Gs.Toolbox;
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.Dynamic;
using static Gs.Toolbox.UtilityHelper;
@@ -60,7 +61,7 @@
            };
            try
            {
                dset = DbHelperSQL.RunProcedure("sys_rpt_cktm", parameters, "0");
                dset = DbHelperSQL.RunProcedure("report_cktm", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0) //有数据
                {
@@ -86,7 +87,7 @@
        }
        /// <summary>
        ///  é‡‡è´­æ˜Žç»†
        /// è¯¦ç»†
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
@@ -143,5 +144,278 @@
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
                ReturnCode.Success, "读取成功");
        }
        /// <summary>
        ///  éªŒé€€æ˜Žç»†
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPageYtmx([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_ytmx", 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, "读取成功");
        }
        /// <summary>
        ///  é€è´§è®¡åˆ’明细
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPageShjh([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_shjh", 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, "读取成功");
        }
        /// <summary>
        ///     æ¡ç åº“存明细详细
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            SqlParameter[] parameters =
            {
                new("@inMainGuid", guid),
            };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[report_cktm_MX]", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    var dr = dset.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        /// <summary>
        ///  åŠæ—¶åº“存差异表
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPageJskc([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_jskc", 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, "读取成功");
        }
        [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
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,305 @@
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.Dynamic;
using System.Security.Cryptography.X509Certificates;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.Report
{
    [ApiGroup(ApiGroupNames.Report)]
    public class QLController : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public QLController(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        /// æ¬ æ–™è¡¨
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetQLList([FromBody] dynamic model)
        {
            string orgId = model.orgId ?? "";
            string beginDate = model.beginDate ?? DateTime.Now.AddMonths(-1).ToString();
            string endDate = model.endDate ?? DateTime.Now.ToString();
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            SqlParameter[] parameters =
            {
                new("@orgId", orgId),
                new("@beginDate", beginDate),
                new("@endDate", endDate)
            };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("report_qlmx", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    //var dr = dset.Tables[0].Rows[0];
                    //m = dr.RowToDynamic();
                    var _tb = dset.Tables[0].TableToDynamicList();
                    m.list = _tb;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        /// <summary>
        /// é€è´§è®¡åˆ’
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetShjhList([FromBody] dynamic model)
        {
            string orgId = model.orgId ?? "";
            string beginDate = model.beginDate ?? DateTime.Now.AddMonths(-1).ToString();
            string endDate = model.endDate ?? DateTime.Now.ToString();
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            SqlParameter[] parameters =
            {
                new("@orgId", orgId),
                new("@beginDate", beginDate),
                new("@endDate", endDate)
            };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("report_shjh", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    var _tb = dset.Tables[0].TableToDynamicList();
                    m.list = _tb;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        /// <summary>
        /// ç‰©æ–™æ¬ æ–™è¡¨
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetWLQLList([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),
        };
            var dset = new DataSet();
            var _pglist = new PageList<dynamic>
            {
                total = 0,
                everyPageSize = 0,
                pages = 0,
                list = new List<dynamic>()
            };
            try
            {
                dset = DbHelperSQL.RunProcedure("report_ItemQL", 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<dynamic>.QuickReturn(_pglist, ReturnCode.Default,
                        "读取失败," + ex.Message);
            }
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
                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>
        /// å·¥å•齐套报表
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetGDQT([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),
        };
            var dset = new DataSet();
            var _pglist = new PageList<dynamic>
            {
                total = 0,
                everyPageSize = 0,
                pages = 0,
                list = new List<dynamic>()
            };
            try
            {
                dset = DbHelperSQL.RunProcedure("report_GDQT", 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, "读取成功");
        }
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetGDQTDetail([FromBody] dynamic model)
        {
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            string daa001 = model.daa001;
            SqlParameter[] parameters =
            {
                new("@daa001", daa001)
            };
            try
            {
                var dsMain = DbHelperSQL.RunProcedure("report_GDQTDetail", parameters, "0");
                if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
                {
                    m.list = dsMain.Tables[0].TableToDynamicList();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        #endregion
    }
}
WebApi/Gs.Report/ReportController.cs
@@ -16,7 +16,7 @@
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    private readonly string _customTag = "客户模板";
    public ReportController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
@@ -25,7 +25,7 @@
    }
    /// <summary>
    ///     æ ¹æ®æŠ¥è¡¨å‚数读取报表名字
    ///     æ ¹æ®æŠ¥è¡¨å‚数读取报表名字(对应的存储过程)
    /// </summary>
    /// <returns></returns>
    private string _rptGetParameterName(string str)
@@ -87,7 +87,6 @@
        m.zb = new List<dynamic>();
        m.mx1 = new List<dynamic>();
        m.mx2 = new List<dynamic>();
        var sbSql = new StringBuilder();
        var _blDate = false;
        try
        {
@@ -111,7 +110,14 @@
            if (_blDate == false)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                    "读取失败,没有初始化模板!");
            //读数据
            //如果是设计模式,退出
            if (isDesign == 1)
            {
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            }
            //读需要打印的数据,用来填充模板
            if (_rptParameter.StartsWith(_customTag))
                rptParameterName = "rpt_hgm";
            var dset = new DataSet();
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
@@ -139,10 +145,6 @@
                    }
                }
                conn.Close();
            }
            if (isDesign == 1)
            {
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            }
            //0是状态,1是主表,2是明细表,3是明细表
            if (dset.Tables[0].Rows[0]["msgState"].ToString() == "-1")
@@ -222,6 +224,8 @@
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    #region MyRegion
    /// <summary>
    ///    
    /// </summary>
@@ -230,9 +234,17 @@
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<List<dynamic>> GetTemplateList([FromBody] dynamic model)
    {
        string keyType = model.keyType;
        List<dynamic> lst = new List<dynamic>();
        System.Text.StringBuilder sbSql = new StringBuilder();
        sbSql.Append("select  [GUID],[REPORT_TYPE],[REPORT_NAME] from [dbo].[SYS_REPORT_TEMPLATE] order by [REPORT_NAME] asc");
        if (keyType == "客户模板")
        {
            sbSql.Append("select  [GUID],[REPORT_TYPE],[REPORT_NAME] from [dbo].[SYS_REPORT_TEMPLATE] where REPORT_TYPE like '" + _customTag + "%' ");
            sbSql.Append(" union all select  [GUID],[REPORT_TYPE],[REPORT_NAME] from [dbo].[SYS_REPORT_TEMPLATE] where REPORT_TYPE='rpt_hgm' order by REPORT_TYPE asc");
        }
        else
            sbSql.Append("select  [GUID],[REPORT_TYPE],[REPORT_NAME] from [dbo].[SYS_REPORT_TEMPLATE] order by [REPORT_TYPE] desc");
        var dset = new DataSet();
        try
        {
@@ -248,4 +260,90 @@
        return ReturnDto<List<dynamic>>.QuickReturn(lst, ReturnCode.Success,
            "读取成功!");
    }
    /// <summary>
    /// åŠ å…¥
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> AddModel([FromBody] dynamic model)
    {
        string reportName = model.reportName;
        string reportType = _customTag + DateTime.Now.ToString("MMddHHmmff");
        int rtnInt = (int)ReturnCode.Default;
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_report_edt]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@outGuid", SqlDbType.NVarChar, 100),
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@edtUserGuid", _userGuid),
                        //new("@rptData", rptData),
                        new("@rptType", reportType),
                        new("@reportName", reportName)
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    rtnInt = cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "AddModel error:" + ex.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        if (rtnInt > 0)
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功!");
        else
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!");
    }
    /// <summary>
    /// ç§»å‡º
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
    {
        string guid = model.guid;
        int rtnInt = (int)ReturnCode.Default;
        if (guid.ToUpper() == "AF1105F3-1CFA-4E48-BE07-6EC3A184918C".ToUpper())
        {
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,默认模版,不能删除!");
        }
        try
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" delete from SYS_REPORT_TEMPLATE ");
            strSql.Append(" where guid='" + guid + "'");
            rtnInt = DbHelperSQL.ExecuteSql(strSql.ToString());
        }
        catch (Exception ex)
        {
            LogHelper.Debug(this.ToString(), "DeleteModel error:" + ex.Message);
            rtnInt = (int)ReturnCode.Exception;
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败," + ex.Message);
        }
        if (rtnInt > 0)
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功!");
        else
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!");
    }
    #endregion
}
WebApi/Gs.Report/WOTraceCodes.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
using System.Data;
using System.Data.SqlClient;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.Report
{
    [ApiGroup(ApiGroupNames.Report)]
    public class WOTraceCodes : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public WOTraceCodes(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///  æŸ¥è¯¢å·¥å•追溯码
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([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("WOTraceCodes", 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/XlsInOutController.cs
@@ -27,6 +27,70 @@
    }
    /// <summary>
    /// é€šç”¨å­˜å‚¨è¿‡ç¨‹æ‰§è¡Œæ–¹æ³•
    /// </summary>
    private DataSet RunProcedure(string procName, IDictionary<string, object> paramDict)
    {
        var dset = new DataSet();
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var comm = new SqlCommand(procName, conn))
            {
                comm.CommandType = CommandType.StoredProcedure;
                // åŠ¨æ€æ·»åŠ å‚æ•°
                foreach (var kvp in paramDict)
                {
                    comm.Parameters.AddWithValue("@" + kvp.Key, kvp.Value == null ? DBNull.Value : kvp.Value.ToString());
                }
                using (var adapter = new SqlDataAdapter(comm))
                {
                    adapter.Fill(dset, "0");
                }
            }
        }
        return dset;
    }
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> XlsOutView_NEW([FromBody] dynamic mode)
    {
        string rptParameter = mode.outParameter;
        var paramDict = new Dictionary<string, object>();
        // åŠ¨æ€è§£æžå‚æ•°
        if (mode.outParams != null)
        {
            foreach (var prop in mode.outParams)
            {
                string name = prop.Name;
                object value = prop.Value;
                paramDict.Add(name, value);
            }
        }
        var _pdfFloder = AppSettingsHelper.getValueByKey("DownPath");
        var _pdfName = Guid.NewGuid() + ".xls";
        var _pdfSaveFolder = Path.Combine(AppContext.BaseDirectory, _pdfFloder);
        if (!Directory.Exists(_pdfSaveFolder))
            Directory.CreateDirectory(_pdfSaveFolder);
        var pdfSavePath = Path.Combine(_pdfSaveFolder, _pdfName);
        dynamic m = new ExpandoObject();
        try
        {
            var dset = RunProcedure(rptParameter, paramDict);
            if (dset == null || dset.Tables.Count <= 0)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, "没有查询到任何数据");
            var ary = new ArrayList();
            ExcelHelper.ExportAryHead(dset.Tables[0], ary, pdfSavePath);
            m.fileUrl = "down/" + _pdfName;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, "读取失败," + ex.Message);
        }
    }
    /// <summary>
    /// æ•°æ®å¯¼å‡ºï¼Œéœ€è¦å­˜å‚¨è¿‡ç¨‹æ”¯æ’‘,目前没用到
    /// </summary>
    /// <param name="mode"></param>
@@ -68,7 +132,6 @@
                        dt.Fill(dset, "0");
                    }
                }
                conn.Close();
            }
@@ -107,6 +170,50 @@
    #region å„种导出
    /// <summary>
    /// å¯¼å‡ºdaa备料单身
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> XlsOutDaa([FromBody] dynamic mode)
    {
        string guid = mode.guid;
        var _pdfFloder = AppSettingsHelper.getValueByKey("DownPath");
        var _pdfName = Guid.NewGuid() + ".xls";
        var _pdfSaveFolder = Path.Combine(AppContext.BaseDirectory, _pdfFloder);
        if (!Directory.Exists(_pdfSaveFolder))
            Directory.CreateDirectory(_pdfSaveFolder);
        var pdfSavePath = Path.Combine(_pdfSaveFolder, _pdfName);
        dynamic m = new ExpandoObject();
        //读数据
        var dset = new DataSet();
        SqlParameter[] parameters ={
            new("@inMainGuid", guid),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")};
        try
        {
            dset = DbHelperSQL.RunProcedure("[xlsOutDaa]", parameters, "0");
            if (dset == null || dset.Tables.Count <= 0)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception,
                    "没有查询到任何数据");
            var ary = new ArrayList();
            ExcelHelper.ExportIqc(dset, pdfSavePath);
            m.fileUrl = "down/" + _pdfName;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                "读取成功!");
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception,
                "读取失败," + ex.Message);
        }
    }
    /// <summary>
    /// å¯¼å‡ºé¦–检
@@ -205,7 +312,7 @@
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> XlsOutXunJian([FromBody] dynamic mode)
    {
        string begDate = mode.begDate;
        string guid = mode.guid;
        var _pdfFloder = AppSettingsHelper.getValueByKey("DownPath");
        var _pdfName = Guid.NewGuid() + ".xls";
        var _pdfSaveFolder = Path.Combine(AppContext.BaseDirectory, _pdfFloder);
@@ -216,7 +323,7 @@
        //读数据
        var dset = new DataSet();
        SqlParameter[] parameters ={
            new("@begDate", begDate),
            new("@inMainGuid", guid),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
@@ -241,6 +348,49 @@
        }
    }
    /// <summary>
    /// å¯¼å‡ºæˆå“æ£€éªŒæŠ¥å‘Š
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> XlsOutChengPin([FromBody] dynamic mode)
    {
        string guid = mode.guid;
        var _pdfFloder = AppSettingsHelper.getValueByKey("DownPath");
        var _pdfName = Guid.NewGuid() + ".xls";
        var _pdfSaveFolder = Path.Combine(AppContext.BaseDirectory, _pdfFloder);
        if (!Directory.Exists(_pdfSaveFolder))
            Directory.CreateDirectory(_pdfSaveFolder);
        var pdfSavePath = Path.Combine(_pdfSaveFolder, _pdfName);
        dynamic m = new ExpandoObject();
        //读数据
        var dset = new DataSet();
        SqlParameter[] parameters ={
            new("@inMainGuid", guid),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")};
        try
        {
            dset = DbHelperSQL.RunProcedure("[xlsOutChengPin]", parameters, "0");
            if (dset == null || dset.Tables.Count <= 0)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception,
                    "没有查询到任何数据");
            var ary = new ArrayList();
            ExcelHelper.ExportChengPin(dset, pdfSavePath);
            m.fileUrl = "down/" + _pdfName;
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                "读取成功!");
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception,
                "读取失败," + ex.Message);
        }
    }
    #endregion
@@ -374,14 +524,15 @@
    {
        Dictionary<string, string> dic = new Dictionary<string, string>
        {
           { "工单编号", "t1" },
            { "条码", "t2" },
           //{ "工单编号", "t1" },
           { "条码", "t2" },
        };
        string tmpGuid = mode.tmpGuid;
        string strType = mode.strType;//工单编号,过滤多sheet中的工单据
        int? rtnInt = (int)ReturnCode.Default;
        int? _it = 0;//返回的行数
        string _msg = "";//返回的信息
        (_it, _msg) = getTable(tmpGuid, dic);
        (_it, _msg) = getTable(tmpGuid, dic, strType);
        if (_it <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _msg);
        System.Text.StringBuilder sbMsg = new System.Text.StringBuilder();
@@ -398,6 +549,7 @@
                                new SqlParameter("@outMsg",SqlDbType.NVarChar,300),
                                new SqlParameter("@inEdtUserGuid",_userGuid),
                                new SqlParameter("@tmpGuid",tmpGuid),
                                new SqlParameter("@strType",strType),
                            };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
@@ -412,6 +564,7 @@
                {
                    rtnInt = -1;
                    sbMsg.Append("操作失败:" + ex.Message);
                    LogHelper.Debug("", "XlsInDaaHgm:" + ex.Message);
                }
                finally
                {
@@ -466,7 +619,7 @@
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters = new SqlParameter[] {
                                new SqlParameter("@outGuid",SqlDbType.NVarChar,100),
                                new SqlParameter("@outMsg",SqlDbType.NVarChar,300),
                                new SqlParameter("@outMsg",SqlDbType.NVarChar,1200),
                                new SqlParameter("@inEdtUserGuid",_userGuid),
                                new SqlParameter("@tmpGuid",tmpGuid),
                                new SqlParameter("@strType",strType),
@@ -483,7 +636,7 @@
                catch (Exception ex)
                {
                    rtnInt = -1;
                    sbMsg.Append("操作失败:" + ex.Message);
                    sbMsg.Append("操作失败1:" + ex.Message);
                }
                finally
                {
@@ -501,8 +654,10 @@
    /// è¿”回dset
    /// </summary>
    /// <param name="tmpGuid"></param>
    /// <param name="dic"></param>
    /// <param name="strType">工单编号,过滤多表格</param>
    /// <returns></returns>
    private static (int?, string?) getTable(string tmpGuid, Dictionary<string, string> dic)
    private static (int?, string?) getTable(string tmpGuid, Dictionary<string, string> dic,string strType="")
    {
        var _it = 0;
        var _msg = "";
@@ -529,19 +684,31 @@
        System.Data.DataTable dt = new DataTable();
        try
        {
            dt = ExcelHelper.ExcelToTable(savePath);
            dt = ExcelHelper.ExcelToTable(savePath,strType);
        }
        catch (Exception ex)
        {
            _it = 0;
            _msg = "操作失败,ExcelToTable读取上传文件发生错误:" + ex.Message;
            LogHelper.Debug("", "getTable:" + ex.Message);
        }
        dt.Columns.Add("tmpGuid", Type.GetType("System.Guid"));
        dt.Columns.Add("tmpIdx", Type.GetType("System.String"));
        //如果是后盖码,加上工单号
        if (!string.IsNullOrEmpty(strType)) {
            dt.Columns.Add("工单编号", Type.GetType("System.String"));
        }
        for (int r = 0; r < dt.Rows.Count; r++)
        {
            dt.Rows[r]["tmpGuid"] = Guid.Parse(tmpGuid);
            dt.Rows[r]["tmpIdx"] = r + 3;
            //如果是后盖码,加上工单号
            if (!string.IsNullOrEmpty(strType))
            {
                dt.Rows[r]["工单编号"] = strType;
            }
        }
        bool flag = false;
        using (SqlConnection destinationConnection = new SqlConnection(DbHelperSQL.strConn))
@@ -555,9 +722,15 @@
                    bulkCopy.BatchSize = dt.Rows.Count;
                    bulkCopy.ColumnMappings.Add("tmpGuid", "tmpGuid");//映射字段名 DataTable列名 ,数据库对应的列名
                    bulkCopy.ColumnMappings.Add("tmpIdx", "tmpIdx");
                    //如果是后盖码,加上工单号
                    if (!string.IsNullOrEmpty(strType))
                    {
                        bulkCopy.ColumnMappings.Add("工单编号", "t1");
                    }
                    foreach (KeyValuePair<string, string> kvp in dic)
                    {
                        // bulkCopy.ColumnMappings.Add("名称", "t1");
                        //bulkCopy.ColumnMappings.Add("名称", "t1");
                        bulkCopy.ColumnMappings.Add(kvp.Key, kvp.Value);
                    }
                    bulkCopy.WriteToServer(dt);
@@ -566,6 +739,7 @@
                catch (Exception ex)
                {
                    _it = 0;
                    LogHelper.Debug("", "getTable:" + ex.Message);
                    _msg = "操作失败,bulkCopy读取上传文件发生错误:" + ex.Message;
                }
            }
WebApi/Gs.Sales/SalesDeliverManager.cs
@@ -157,6 +157,7 @@
                                    + m.Sqsl + _split
                                    + m.Bz + _split
                                    + m.Yjsj + _split
                                    + m.depotId + _split
                                    + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
            if (_sb.Length > 0)
                _sb.Append("~");
WebApi/Gs.Sales/SalesManager.cs
@@ -120,7 +120,7 @@
                    m = dr.RowToDynamic();
                    var _tb = dset.Tables[1].TableToDynamicList();
                    m.list = _tb;
                }
            }
            catch (Exception ex)
@@ -137,7 +137,7 @@
        /// <summary>
        /// é€‰æ‹©å¼¹çª—
        /// é”€å”®å‡ºåº“时,选择销售订单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
@@ -287,7 +287,7 @@
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// é€‰æ‹©é”€å”®é€€è´§ç”³è¯·æ˜Žç»†ï¼Œæœ‰æºå•据,销售出库单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
@@ -298,7 +298,8 @@
            int everyPageSize = model.everyPageSize;
            string sortName = model.sortName;
            string keyWhere = model.keyWhere;
            string keyType = model.keyType;//这是销售订单号
            string inP1 = model.inP1;//这是客户id
            string inP2 = model.inP2;//这是销售组织id
            var dset = new DataSet();
            try
            {
@@ -315,8 +316,8 @@
                        new("@inSortName", sortName),
                        new("@inSortOrder", ""),
                        new("@inQueryWhere", keyWhere),
                        new("@inP1",keyType),//这是销售订单号
                        new("@inP2", "")
                        new("@inP1",inP1),
                        new("@inP2", inP2)
                    };
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
@@ -359,5 +360,81 @@
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
                ReturnCode.Success, "读取成功");
        }
        /// <summary>
        /// é€‰æ‹©é”€å”®é€€è´§ç”³è¯·æ˜Žç»†ï¼Œæœ‰æºå•据,销售单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> SelectFormFhMxSales([FromBody] dynamic model)
        {
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = model.sortName;
            string keyWhere = model.keyWhere;
            string inP1 = model.inP1;//这是客户id
            string inP2 = model.inP2;//这是销售组织id
            var dset = new DataSet();
            try
            {
                using (var conn = new SqlConnection(DbHelperSQL.strConn))
                {
                    using (var cmd = new SqlCommand("[select_salesFhMxSales]", 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",inP1),
                        new("@inP2", inP2)
                    };
                        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(), "select_salesFhMxSales 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.Sales/SalesReturnManager.cs
@@ -144,10 +144,16 @@
        {
            Guid? guid = model.guid; //主键
            string djlx = model.djlx;//单据类型
            string salesId = model.salesId;//销售单号
            string inRemark = model.inRemark;//备注
            string ckId = model.ckId;
            string FIsLink = model.FIsLink;
            string fIsLink = model.fIsLink;
            string fHasLinkSource=model.fHasLinkSource;
            //下面是无源的
            string salesOrg = model.salesOrg;
            string inventoryOrg = model.inventoryOrg;
            string returnCustomer = model.returnCustomer;
            string salesDept = model.salesDept;
            string xsms = model.xsms;
            var _sb = new StringBuilder();
            var _split = "|";
            foreach (var m in model.list)
@@ -158,6 +164,7 @@
                                        + m.Bz + _split
                                        + m.Thlx + _split
                                        + m.Thrq + _split
                                        + m.ItemId + _split
                                        + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
                if (_sb.Length > 0)
                    _sb.Append("~");
@@ -184,11 +191,16 @@
                        new("@outNo", SqlDbType.NVarChar, 300),
                        new("@inOrderGuid",UtilityHelper.CheckGuid(guid)? guid : DBNull.Value),
                        new("@djlx", djlx),
                        new("@salesId", salesId),
                        new("@inRemark", inRemark),
                        new("@ckId", ckId),
                        new("@inEdtUserGuid", _userGuid),
                           new("@FIsLink", FIsLink),
                        new("@fIsLink", fIsLink),
                        new("@fHasLinkSource", fHasLinkSource),
                        new("@salesOrg", salesOrg),
                        new("@inventoryOrg", inventoryOrg),
                        new("@returnCustomer", returnCustomer),
                        new("@salesDept", salesDept),
                        new("@xsms", xsms),
                        new("@inLineList", _sb.ToString())
                };
                        parameters[0].Direction = ParameterDirection.Output;
@@ -206,7 +218,7 @@
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "prc_salesDeliver_edt error:" + ex.Message);
                            "prc_salesReturn_edt error:" + ex.Message);
                        mObj.outMsg = ex.Message;
                        mObj.outSum = -1;
                    }
WebApi/Gs.Sys/Models/SysLogOperation.cs
@@ -7,70 +7,70 @@
[SugarTable("SYS_LOG_OPERATION")]
public class SysLogOperation
{
 /// <summary>
 ///     ä¸»é”®
 /// </summary>
 [SugarColumn(ColumnName = "GUID", IsPrimaryKey = true)]
    /// <summary>
    ///     ä¸»é”®
    /// </summary>
    [SugarColumn(ColumnName = "GUID", IsPrimaryKey = true)]
    public Guid? Guid { get; set; }
 /// <summary>
 ///     æ“ä½œç±»åž‹
 /// </summary>
 [SugarColumn(ColumnName = "OPERATION_TYPE")]
    /// <summary>
    ///     æ“ä½œç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "OPERATION_TYPE")]
    public string OperationType { get; set; }
 /// <summary>
 ///     æ“ä½œæ—¶é—´
 /// </summary>
 [SugarColumn(ColumnName = "OPERATION_TIME")]
    /// <summary>
    ///     æ“ä½œæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "OPERATION_TIME")]
    public DateTime? OperationTime { get; set; }
 /// <summary>
 ///     æ“ä½œè¡¨
 /// </summary>
 [SugarColumn(ColumnName = "OPERATION_TABLE")]
    /// <summary>
    ///     æ“ä½œè¡¨
    /// </summary>
    [SugarColumn(ColumnName = "OPERATION_TABLE")]
    public string OperationTable { get; set; }
 /// <summary>
 ///     æ“ä½œè€…guid
 /// </summary>
 [SugarColumn(ColumnName = "USER_GUID")]
    /// <summary>
    ///     æ“ä½œè€…guid
    /// </summary>
    [SugarColumn(ColumnName = "USER_GUID")]
    public Guid? UserGuid { get; set; }
 /// <summary>
 ///     æ“ä½œè€…名称
 /// </summary>
 [SugarColumn(ColumnName = "USER_NAME")]
    /// <summary>
    ///     æ“ä½œè€…名称
    /// </summary>
    [SugarColumn(ColumnName = "USER_NAME")]
    public string UserName { get; set; }
 /// <summary>
 ///     çª—体名称
 /// </summary>
 [SugarColumn(ColumnName = "FORM_NAME")]
    /// <summary>
    ///     çª—体名称
    /// </summary>
    [SugarColumn(ColumnName = "FORM_NAME")]
    public string FormName { get; set; }
 /// <summary>
 ///     çª—体标题
 /// </summary>
 [SugarColumn(ColumnName = "FORM_CAPTION")]
    /// <summary>
    ///     çª—体标题
    /// </summary>
    [SugarColumn(ColumnName = "FORM_CAPTION")]
    public string FormCaption { get; set; }
 /// <summary>
 ///     æŒ‰é’®åç§°
 /// </summary>
 [SugarColumn(ColumnName = "MENU_NAME")]
    /// <summary>
    ///     æŒ‰é’®åç§°
    /// </summary>
    [SugarColumn(ColumnName = "MENU_NAME")]
    public string MenuName { get; set; }
 /// <summary>
 ///     è¯¦æƒ…
 /// </summary>
 [SugarColumn(ColumnName = "MSG")]
    /// <summary>
    ///     è¯¦æƒ…
    /// </summary>
    [SugarColumn(ColumnName = "MSG")]
    public string Msg { get; set; }
 /// <summary>
 ///     å…³è”guid
 /// </summary>
 [SugarColumn(ColumnName = "ABT_GUID")]
    /// <summary>
    ///     å…³è”guid
    /// </summary>
    [SugarColumn(ColumnName = "ABT_GUID")]
    public Guid? AbtGuid { get; set; }
@@ -93,4 +93,25 @@
    /// </summary>
    [SugarColumn(ColumnName = "RTN_JSON")]
    public string? RtnJson { get; set; }
    /// <summary>
    ///    æ˜¯å¦å‘送erp
    /// </summary>
    [SugarColumn(ColumnName = "IS_ERP")]
    public bool? IsErp { get; set; }
    /// <summary>
    ///    å‘送结果
    /// </summary>
    [SugarColumn(ColumnName = "IS_SUCCESS")]
    public bool? IsSuccess { get; set; }
    /// <summary>
    /// è¡Œé¢œè‰²0正常,1红色
    /// </summary>
    [SugarColumn(IsIgnore = true)] public int? isRed { get; set; }
    /// <summary>
    /// å‘送erp结果
    /// </summary>
    [SugarColumn(IsIgnore = true)] public string? isErpDetail { get; set; }
}
WebApi/Gs.Sys/Services/FmController.cs
@@ -176,6 +176,41 @@
                "读取失败!");
        }
        /// <summary>
        ///     è¯»å–
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<string> GetModelByVersion([FromBody] dynamic model)
        {
            string formPath = model.formPath.ToString();
            string strMsg = "";
            SqlParameter[] parameters =
            {
                new("@formPath", formPath),
                new("@userGuid", _userGuid),
            };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[fm_get_layout_ver]", parameters, "0");
                if (dset != null && dset.Tables.Count > 0
                 )
                {
                    strMsg = dset.Tables[0].Rows[0][0].ToString();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message + ",formPath:" + formPath + ",_userGuid:" + _userGuid);
            }
            return ReturnDto<string>.QuickReturn(strMsg, ReturnCode.Success, "读取成功!");
        }
        #endregion
        private int? chkAdmin()
@@ -220,15 +255,18 @@
                string keyUserGuid = model.keyUserGuid;
                string keyGuid = model.keyGuid;
                string keyNo = model.keyNo;
                string idtype = model.idtype;//这个仅仅是更新工单状态的时候有
                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
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo,2);
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 2);
            }
            catch (Exception ex)
            {
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "SendErp:" + ex.Message);
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "Fm SendErp:" + ex.Message);
                return "发送erp失败:" + ex.Message;
            }
            if (_rtnInt <= 0)
@@ -253,6 +291,7 @@
            string keyMeth = model.keyMeth;
            string keyNo = model.keyNo;
            string idtype = model.idtype;//这个仅仅是更新工单状态的时候有
            if (keyMeth.ToUpper() == "delete".ToUpper())
                return "";
            try
@@ -278,7 +317,7 @@
                    dynamic _datajson = new ExpandoObject();
                    if (dset.Tables.Count > 1)
                    {
                        //这是结案,结构和其它不一样
                        //这是这是普通的接口里的结案,结构和其它不一样
                        if (keyMeth.ToLower() == "toclose".ToLower() || keyMeth.ToLower() == "closure".ToLower() || keyMeth.ToLower() == "unfinish")
                        {
                            _datajson = dset.Tables[1].Rows[0].RowToDynamic();
@@ -301,7 +340,7 @@
                }
                //这是订单回传标识
                List<dynamic> _datajson22 = new List<dynamic>();
                dynamic _ob= new ExpandoObject();
                dynamic _ob = new ExpandoObject();
                _ob.ENTRY = dset.Tables[0].TableToDynamicList();
                _datajson22.Add(_ob);
                var _obj22 = new
@@ -348,7 +387,8 @@
                if (_sb.Length > 0)
                    _sb.Append("~");
                _sb.Append(_line);
            };
            }
            ;
            var lst = new List<dynamic>();
            SqlParameter[] parameters =
            {
@@ -401,15 +441,23 @@
            {
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "EditModel isAdmin error:" + ex.Message);
            }
            Gs.Toolbox.DbHelperSQL.ExecuteSql("delete from [FM_QUERY_TABLE] where formPath=@formPath ", new SqlParameter[] { new SqlParameter("@formPath", formPath) });
            foreach (var _obj in model.list)
            try
            {
                System.Text.StringBuilder _sb = new System.Text.StringBuilder();
                _sb.Append("INSERT INTO [dbo].[FM_QUERY_TABLE]([guid],[formPath] ,[tableName] ,[lastUpdateBy] ,[lastUpdateDate],[tableOtherName])");
                _sb.Append(" values(newid(),'" + formPath + "','" + _obj.tableName + "','',getdate(),'" + _obj.tableOtherName + "')");
                arrayList.Add(_sb.ToString());
                Gs.Toolbox.DbHelperSQL.ExecuteSql("delete from [FM_QUERY_TABLE] where formPath=@formPath ", new SqlParameter[] { new SqlParameter("@formPath", formPath) });
                foreach (var _obj in model.list)
                {
                    System.Text.StringBuilder _sb = new System.Text.StringBuilder();
                    _sb.Append("INSERT INTO [dbo].[FM_QUERY_TABLE]([guid],[formPath] ,[tableName] ,[lastUpdateBy] ,[lastUpdateDate],[tableOtherName])");
                    _sb.Append(" values(newid(),'" + formPath + "','" + _obj.tableName + "','',getdate(),'" + _obj.tableOtherName + "')");
                    arrayList.Add(_sb.ToString());
                }
                Gs.Toolbox.DbHelperSQL.ExecuteSqlTran(arrayList);
            }
            Gs.Toolbox.DbHelperSQL.ExecuteSqlTran(arrayList);
            catch (Exception ex)
            {
                m.outMsg = ex.Message;
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
            }
            m.outMsg = "操作成功!";
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "操作成功!");
        }
WebApi/Gs.Sys/Services/MesConfigController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
using System.Data;
using System.Text;
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 static Gs.Toolbox.UtilityHelper;
namespace Gs.Sys.Services
{
    /// <summary>
    /// é…ç½®ç³»ç»Ÿå‚æ•°
    /// </summary>
    [ApiGroup(ApiGroupNames.Sys)]
    public class MesConfigController : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public MesConfigController(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> SetModel([FromBody] dynamic model)
        {
            string sql = model.sql;
            int rtnInt = (int)ReturnCode.Default;
            try
            {
                StringBuilder strSql = new StringBuilder();
                strSql.Append(sql);
                int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
                rtnInt = rows;
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "SetSql error:" + ex.Message);
                rtnInt = (int)ReturnCode.Exception;
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败," + ex.Message);
            }
            if (rtnInt > 0)
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功!");
            else
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,请重试!");
        }
        /// <summary>
        /// è¯»å–实体
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<System.Dynamic.ExpandoObject> GetModel([FromBody] dynamic model)
        {
            dynamic m = new System.Dynamic.ExpandoObject();
            m.list = new List<dynamic>();
            System.Text.StringBuilder sbSql = new StringBuilder();
            sbSql.Append(" select  * from MES_CONFIG");
            try
            {
                DataSet dset = new DataSet();
                dset = DbHelperSQL.Query(sbSql.ToString());
                if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)
                {
                    var _tb = dset.Tables[0].TableToDynamicList();
                    m.list = _tb;
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
                }
                else
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "GetModel error:" + ex.Message);
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
            }
        }
    }
}
WebApi/Gs.Sys/Services/MesFileController.cs
@@ -69,7 +69,6 @@
                model.fileGroup = "";
            var _bl = base.Insert(model);
        }
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "上传成功");
    }
WebApi/Gs.Sys/Services/MesSysPageviewManager.cs
@@ -54,7 +54,7 @@
                sbSql.Append(",cast(0 as bit) as chkInt");
            }
            else
                sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType+ "' and b.aboutGuid=a.guid)  as bit) as chkInt ");
                sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType+ "' and b.aboutGuid=a.guid  and b.fType='PDA页面')  as bit) as chkInt ");
            sbSql.Append("  from MES_SYS_PAGEVIEW a ");
            sbSql.Append(keyWhere);
            sbSql.Append(") as T ");
@@ -241,7 +241,7 @@
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@edtUserGuid", _userGuid),
                        new("@userGuid", userGuid),
                          new("@fType", fType),
                        new("@fType", fType),
                        new("@bindGuids", bindGuidslist)
                    };
                        parameters[0].Direction = ParameterDirection.Output;
WebApi/Gs.Sys/Services/OrganizationController.cs
@@ -79,96 +79,71 @@
        }
    }
    ///// <summary>
    ///// åˆ é™¤æœºæž„
    ///// </summary>
    ///// <param name="model"></param>
    ///// <returns></returns>
    //[RequestMethod(RequestMethods.POST)]
    //public ReturnDto<int?> DeleteModel([FromBody] JArray guidList)
    //{
    //    string[] intArray = guidList.ToObject<string[]>();
    //    string guid = intArray[0];
    /// <summary>
    ///     æŸ¥è¯¢åˆ—表,支持分页,用于各种绑定
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage2(PageQuery model)
    {
        var currentPage = model.currentPage;
        var everyPageSize = model.everyPageSize;
        var sortName = string.IsNullOrEmpty(model.sortName) ? "a.FNumber" : model.sortName;
        var keyWhere = model.keyWhere;
        string keyType = model.keyType;
        var sbSql = new StringBuilder();
        sbSql.Append("select * from ");
        sbSql.Append("( ");
        sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.* ");
        if (string.IsNullOrEmpty(keyType))
        {
            sbSql.Append(",cast(0 as bit) as chkInt");
        }
        else
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType + "' and b.aboutGuid=cast( a.FID as nvarchar(50)) and b.fType='组织')  as bit) as chkInt ");
        sbSql.Append("  from SYS_ORGANIZATION a ");
        sbSql.Append(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 SYS_ORGANIZATION a  where 1=1 ");
        sbSql.Append(keyWhere);
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.Query(sbSql.ToString());
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "GetListPage2 error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
    //    int cont = 0;
    //    cont = IsChkOrUnChk(intArray[0], true);
    //    if (cont > 0)
    //        return ReturnDto<int>.QuickReturn(default(int?), 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, "读取成功");
    }
    //    int? rtnInt = (int)ReturnCode.Default;
    //    int it1 = 0;
    //    int it2 = 0;
    //    cont = Db.Queryable<SysOrganization>().Where(c => c.Guid == Guid.Parse(guid) && c.IsSys == 1).Count();
    //    if (cont > 0)
    //    {
    //        return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,该条目为系统内置,不可删除!");
    //    }
    //    try
    //    {
    //        Db.Ado.BeginTran();
    //        it1 = Db.Deleteable<SysOrganization>().In(guid).ExecuteCommand();
    //        it2 = Db.Deleteable<SysRoleMenuAction>().Where(it => it.OrgGuid == Guid.Parse(guid)).ExecuteCommand();
    //        Db.Ado.CommitTran();
    //    }
    //    catch (Exception ex)
    //    {
    //        LogHelper.Debug(this.ToString(), "DeleteModel error:" + ex.Message);
    //        Db.Ado.RollbackTran();
    //        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, "删除失败,请重试!");
    //    }
    //    rtnInt = (it2 + it1);
    //    return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, "操作成功,共删除" + rtnInt.ToString() + "条数据!");
    //}
    ///// <summary>
    ///// å¢žåŠ æœºæž„
    ///// </summary>
    ///// <param name="model"></param>
    ///// <returns></returns>
    //[RequestMethod(RequestMethods.POST)]
    //public ReturnDto<string?> EditModel([FromBody] SysOrganization model)
    //{
    //    if (UtilityHelper.CheckGuid(model.Guid))
    //    {
    //        int cont = 0;
    //        cont = IsChkOrUnChk(model.Guid.ToString(), true);
    //        if (cont > 0)
    //            return ReturnDto<string>.QuickReturn("", ReturnCode.Exception, "修改失败,该信息已被审核!");
    //    }
    //    if (!UtilityHelper.CheckGuid(model.UpGuid))//只能有一个根组织
    //    {
    //        int cont = 0;
    //        cont = Db.Queryable<SysOrganization>().Where(c => c.UpGuid == null).Count();
    //        if (cont > 0)
    //        {
    //            return ReturnDto<int>.QuickReturn(default(string?), ReturnCode.Exception, "增加失败,请选择上级组织!");
    //        }
    //    }
    //    bool _bl = false;
    //    try
    //    {
    //        if (!UtilityHelper.CheckGuid(model.Guid))
    //        {
    //            model.Guid = Guid.NewGuid();
    //            _bl = base.Insert(model);
    //        }
    //        else
    //        {
    //           // _bl = base.Update(model);
    //            _bl = Db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand() > 0 ? true : false;
    //        }
    //    }
    //    catch (Exception ex)
    //    {
    //        LogHelper.Debug(this.ToString(), "EditModel error:" + ex.Message);
    //        return ReturnDto<string>.QuickReturn("", ReturnCode.Exception, ex.Message);
    //    }
    //    if (_bl)
    //        return ReturnDto<string>.QuickReturn(model.Guid.ToString(), ReturnCode.Success, "操作成功!");
    //    return ReturnDto<string>.QuickReturn("", ReturnCode.Exception, "增加失败,请重试!");
    //}
    /// <summary>
    ///     è¯»å–机构
WebApi/Gs.Sys/Services/SysLogController.cs
@@ -1,10 +1,12 @@
using System.Text;
using Gs.Sys.Models;
using Gs.Sys.Models;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox.ApiCore.Group;
using Microsoft.AspNetCore.Mvc;
using System.Data;
using System.Data.SqlClient;
using System.Text;
namespace Gs.Sys.Services;
@@ -27,10 +29,15 @@
            var _sbBy =
                new StringBuilder(query.sortName + " " + query.sortOrder);
            var totalCount = 0;
            var itemsList = Db.Queryable<SysLogOperation>()
            var itemsList = Db.Queryable<SysLogOperation>("a")
                .Select((a) => new SysLogOperation
                {
                    isRed = ((a.IsErp == true && a.IsSuccess == false) ? 1 : 0),
                    isErpDetail = (a.IsErp == true ? (a.IsSuccess == true ? "1:发送成功" : "0:发送失败") : "2:不需要发送"),
                }, true)
                .Where(_sbWhere.ToString())
                .OrderBy(_sbBy.ToString())
                .ToPageList(query.currentPage, query.everyPageSize,ref totalCount);
                .ToPageList(query.currentPage, query.everyPageSize, ref totalCount);
            pageList = new PageList<SysLogOperation>(itemsList, totalCount,
                query.everyPageSize);
            return ReturnDto<PageList<SysLogOperation>>.QuickReturn(pageList,
@@ -60,4 +67,66 @@
            "读取失败!");
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPageTuiSong([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_tuiSong", 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.Sys/Services/UserController.cs
@@ -45,6 +45,7 @@
        var accountPwd = model.accountPwd;
        string accountLog = model.accountLog;
        var _strMsg = "";
        string dd = MD5Encrypt32(accountPwd);
        var dset = new DataSet();
        dynamic m = new ExpandoObject();
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
@@ -319,6 +320,8 @@
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
    }
    #region
    /// <summary>
    ///     æŸ¥è¯¢åˆ—表,支持分页
@@ -501,12 +504,17 @@
        dynamic m = new ExpandoObject();
        m.list = new List<dynamic>();
        m.list2 = new List<dynamic>();
        m.list3 = new List<dynamic>();
        m.list4= new List<dynamic>();
        m.list5 = new List<dynamic>();
        var dset = new DataSet();
        System.Text.StringBuilder sbSql = new StringBuilder();
        sbSql.Append(" select * from [dbo].[SYS_USER] where guid='" + guid + "'");
        sbSql.Append(" select bd.userGuid, bd.guid,pg.PAGE_VIEW as gnName, bd.fType,bd.createBy,bd.createDate from [MES_SYS_PAGEVIEW] pg right join [dbo].[SYS_USER_BIND] bd on(bd.aboutGuid= pg.guid and bd.fType= 'PDA页面') where bd.fType= 'PDA页面' and bd.userGuid='" + guid + "' ");
        sbSql.Append(" select bd.userGuid, bd.guid, pg.depot_name + '(' + pg.depot_code + ')' as gnName, bd.fType,bd.createBy,bd.createDate from [dbo].[MES_DEPOTS] pg right join[dbo].[SYS_USER_BIND] bd on bd.aboutGuid = pg.guid and bd.fType = '仓库'  where bd.fType = '仓库'  and bd.userGuid='" + guid + "'");
        sbSql.Append(" select bd.userGuid, bd.guid,  '【' + pg.depot_code + '】'+pg.depot_name  as gnName, bd.fType,bd.createBy,bd.createDate from [dbo].[MES_DEPOTS] pg right join[dbo].[SYS_USER_BIND] bd on bd.aboutGuid = pg.guid and bd.fType = '仓库'  where bd.fType = '仓库'  and bd.userGuid='" + guid + "'");
        sbSql.Append(" select bd.userGuid, bd.guid,pg.ip as gnName, bd.fType,bd.createBy,bd.createDate from [dbo].[print_info] pg right join [dbo].[SYS_USER_BIND] bd on bd.aboutGuid = pg.guid and bd.fType = '打印机'  where bd.fType = '打印机'  and bd.userGuid='" + guid + "'");
        sbSql.Append(" select bd.userGuid, bd.guid,'【'+pg.line_no+'】'+pg.name as gnName, bd.fType,bd.createBy,bd.createDate from MES_WORKSHOP_LINE pg  right join [dbo].[SYS_USER_BIND] bd on bd.aboutGuid = pg.guid and bd.fType = '过站时绑定线体'  where bd.fType = '过站时绑定线体'  and bd.userGuid='" + guid + "'");
        sbSql.Append(" select bd.userGuid, bd.guid,'【'+pg.FNumber+'】'+pg.NAME as gnName, bd.fType,bd.createBy,bd.createDate from SYS_ORGANIZATION pg right join [dbo].[SYS_USER_BIND] bd on cast( bd.aboutGuid as nvarchar(50)) = cast(  pg.FID  as nvarchar(50)) and bd.fType = '组织'  where bd.fType = '组织'  and bd.userGuid='" + guid + "'");
        try
        {
            dset = DbHelperSQL.Query(sbSql.ToString());
@@ -521,6 +529,10 @@
                m.list2 = _tb2;
                var _tb3 = dset.Tables[3].TableToDynamicList();
                m.list3 = _tb3;
                var _tb4 = dset.Tables[4].TableToDynamicList();
                m.list4 = _tb4;
                var _tb5 = dset.Tables[5].TableToDynamicList();
                m.list5 = _tb5;
            }
        }
        catch (Exception ex)
@@ -562,7 +574,7 @@
            sbSql.Append(",cast(0 as bit) as chkInt");
        }
        else
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType + "' and b.aboutGuid=a.guid)  as bit) as chkInt ");
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND bind where bind.userGuid='" + keyType + "' and bind.aboutGuid=a.guid  and bind.fType='员工分区')  as bit) as chkInt ");
        sbSql.Append(sbJoin);
        sbSql.Append(") T");
        sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and  T.rowindex<=" + currentPage + "*" + everyPageSize);
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/ApiCore/Group/ApiGroupNames.cs
@@ -45,5 +45,7 @@
    [GroupInfo(Title = "报表", Description = "报表")]
    Rport,
    [GroupInfo(Title = "PDA", Description = "PDA")]
    PDA
    PDA,
    [GroupInfo(Title = "计件工资", Description = "计件工资")]
    JJGZ
}
WebApi/Gs.Toolbox/ExcelHelper.cs
@@ -1,12 +1,14 @@
using System.Collections;
using System.Data;
using System.Text;
using Newtonsoft.Json;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.Formula.Functions;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System.Collections;
using System.Data;
using System.Security.Cryptography.Xml;
using System.Text;
using System.Timers;
namespace Gs.Toolbox;
@@ -176,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++)
                {
@@ -190,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)
@@ -258,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++)
                {
@@ -280,7 +301,7 @@
            }
        }
        //保存
        // ä¿å­˜
        using (var ms = new MemoryStream())
        {
            using (var fs = new FileStream(strFileName, FileMode.Create,
@@ -360,13 +381,15 @@
        ICellStyle style = getStyle(workbook);
        ICellStyle styleHeader = getStyle(workbook, 20, true, true);
        ICellStyle style12 = getStyle(workbook, 11, false, true);
        style.WrapText = true; // è®¾ç½®è‡ªåŠ¨æ¢è¡Œ
        styleHeader.WrapText = true; // è®¾ç½®è‡ªåŠ¨æ¢è¡Œ
        style12.WrapText = true; // è®¾ç½®è‡ªåŠ¨æ¢è¡Œ
        // è®¾ç½®åˆ—宽(6列)
        sheet.SetColumnWidth(0, 4000);  // ç¬¬ä¸€åˆ—稍宽
        sheet.SetColumnWidth(1, 3000);
        sheet.SetColumnWidth(1, 4000);
        sheet.SetColumnWidth(2, 3000);
        sheet.SetColumnWidth(3, 3000);
        sheet.SetColumnWidth(4, 3000);
        sheet.SetColumnWidth(4, 4000);
        sheet.SetColumnWidth(5, 3000);
        sheet.SetColumnWidth(6, 3000);
        // åˆ›å»º20行
@@ -429,16 +452,134 @@
        //从第7行开始,就是循环数据库
        int _idx = 7;
        DataTable tb1 = dtSource.Tables[1];
        string dd = "";
        bool _blPscs = false;
        bool _blGjyzx = false;
        foreach (DataRow rrr in tb1.Rows)
        {
            //增加品水测试标题
            if (_blPscs == false && rrr["项目"].ToString() == "品水测试")
            {
                IRow row700 = sheet.CreateRow(_idx);
                for (int i = 0; i < ary.Length; i++)
                {
                    ICell cell700 = row700.CreateCell(i);
                    cell700.CellStyle = style;
                    if (i == 0)
                        cell700.SetCellValue(rrr["项目"].ToString());
                    if (i == 1)
                        cell700.SetCellValue("温度");
                    if (i == 3)
                        cell700.SetCellValue("流量");
                    if (i == 5)
                        cell700.SetCellValue("是否有异味");
                    if (i == 6)
                        cell700.SetCellValue("检验结果");
                }
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 2));
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 3, 4));
                _idx++;
                _blPscs = true;
            }
            //增加标题
            if (_blGjyzx == false && rrr["项目"].ToString() == "关键部件一致性")
            {
                IRow row700 = sheet.CreateRow(_idx);
                for (int i = 0; i < ary.Length; i++)
                {
                    ICell cell700 = row700.CreateCell(i);
                    cell700.CellStyle = style;
                    if (i == 0)
                        cell700.SetCellValue(rrr["项目"].ToString());
                    if (i == 1)
                        cell700.SetCellValue("关键名称");
                    if (i == 2)
                        cell700.SetCellValue("生产日期");
                    if (i == 3)
                        cell700.SetCellValue("使用数量");
                    if (i == 4)
                        cell700.SetCellValue("认证信息");
                    if (i == 5)
                        cell700.SetCellValue("是否符合CCC一致性");
                    if (i == 6)
                        cell700.SetCellValue("操作");
                }
                _idx++;
                _blGjyzx = true;
            }
            IRow row7 = sheet.CreateRow(_idx);
            row7.HeightInPoints = rowHeight;
            string _tmphb = rrr["项目合并行数"].ToString();
            string _tmp = "";
            if (dd == rrr["项目"].ToString())
                _tmp = "";
            else
                _tmp = rrr["项目"].ToString();
            dd = rrr["项目"].ToString();
            for (int i = 0; i < ary.Length; i++)
            {
                ICell cell7 = row7.CreateCell(i);
                cell7.CellStyle = style;
                cell7.SetCellValue(rrr[ary[i]].ToString());
                if (i == 0)
                {
                    cell7.SetCellValue(_tmp);
                    if (!string.IsNullOrEmpty(_tmp) && int.Parse(_tmphb) > 1)
                    {
                        if (rrr["项目"].ToString() == "品水测试" || rrr["项目"].ToString() == "关键部件一致性")
                            sheet.AddMergedRegion(new CellRangeAddress(_idx - 1, _idx + int.Parse(_tmphb) - 1, 0, 0));
                        else
                            sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx + int.Parse(_tmphb) - 1, 0, 0));
                    }
                }
                else
                {
                    switch (rrr["项目"].ToString())
                    {
                        case "制热性能":
                            // cell7.SetCellValue(rrr["制热性能table"].ToString());
                            string ddd = rrr["制热性能table"].ToString();
                            string ccc = getTableToString(ddd);
                            cell7.SetCellValue(ccc);
                            row7.HeightInPoints = rowHeight;
                            if (i == ary.Length - 1)
                                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 6));
                            break;
                        case "品水测试":
                            //度数
                            if (i == 1)
                                cell7.SetCellValue(rrr["技术/品质要求"].ToString());
                            if (i == 3)
                                cell7.SetCellValue(rrr["品水测试流量"].ToString());
                            if (i == 5)
                                cell7.SetCellValue(rrr["是否有异味"].ToString());
                            if (i == 6)
                                cell7.SetCellValue(rrr["检验结果"].ToString());
                            if (i == ary.Length - 1)
                            {
                                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 2));
                                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 3, 4));
                            }
                            break;
                        case "关键部件一致性":
                            if (i == 1)
                                cell7.SetCellValue(rrr["技术/品质要求"].ToString());
                            if (i == 2)
                                cell7.SetCellValue(rrr["生产日期"].ToString());
                            if (i == 3)
                                cell7.SetCellValue(rrr["使用数量"].ToString());
                            if (i == 4)
                                cell7.SetCellValue(rrr["认证信息"].ToString());
                            if (i == 5)
                                cell7.SetCellValue(rrr["是否符合CCC一致性"].ToString());
                            //if (i == 6)
                            //    cell7.SetCellValue(rrr["检验结果"].ToString());
                            break;
                        default:
                            cell7.SetCellValue(rrr[ary[i]].ToString());
                            break;
                    }
                }
            }
            _idx++;
        }
@@ -487,28 +628,9 @@
            cell.CellStyle = style12;
        }
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 0, 6));
        setCellVal(sheet, _idx, 0, "首件填写,来料检验");
        setCellVal(sheet, _idx, 0, "首件填写,成品检验");
        //****合并好后开始赋值end**************
        // 5. ç¬¬8到10行中的第一列应被合并
        //sheet.AddMergedRegion(new CellRangeAddress(7, 9, 0, 0));
        //// 6. ç¬¬17,18行中的第一列合并
        //sheet.AddMergedRegion(new CellRangeAddress(16, 17, 0, 0));
        //// 7. ç¬¬17行中的2,3,4,5列合并
        //sheet.AddMergedRegion(new CellRangeAddress(16, 16, 1, 4));
        //// 8. ç¬¬18行中的,2,3列合并,4,5,6列合并
        //sheet.AddMergedRegion(new CellRangeAddress(17, 17, 1, 2));
        //sheet.AddMergedRegion(new CellRangeAddress(17, 17, 3, 5));
        //// 9. ç¬¬19行中的,列2,3,4合并
        //sheet.AddMergedRegion(new CellRangeAddress(18, 18, 1, 3));
        //// 10. ç¬¬20行中的列全部合并
        //sheet.AddMergedRegion(new CellRangeAddress(19, 19, 0, 5));
        getRowHeight(_idx, sheet, maxCols, "XlsFontXj");
        //保存
        using (var ms = new MemoryStream())
        {
@@ -531,6 +653,8 @@
    /// <param name="dtSource"></param>
    public static void ExportIqc(DataSet dtSource, string strFileName)
    {
        string isHg = "";
        //行高
        int rowHeight = 25;
        //总列
@@ -543,6 +667,12 @@
        ICellStyle style = getStyle(workbook);
        ICellStyle styleHeader = getStyle(workbook, 20, true, true);
        ICellStyle style12 = getStyle(workbook, 11, false, true);
        style.WrapText = true; // è®¾ç½®è‡ªåŠ¨æ¢è¡Œ
        styleHeader.WrapText = true; // è®¾ç½®è‡ªåŠ¨æ¢è¡Œ
        style12.WrapText = true; // è®¾ç½®è‡ªåŠ¨æ¢è¡Œ
        //style.ShrinkToFit = true;
        //styleHeader.ShrinkToFit = true;
        //style12.ShrinkToFit = true;
        // è®¾ç½®åˆ—宽(6列)
        sheet.SetColumnWidth(0, 3000);  // ç¬¬ä¸€åˆ—稍宽
@@ -552,7 +682,7 @@
        sheet.SetColumnWidth(4, 3000);
        sheet.SetColumnWidth(5, 3000);
        sheet.SetColumnWidth(6, 3000);
        sheet.SetColumnWidth(7, 3000);
        sheet.SetColumnWidth(7, 3500);
        // åˆ›å»º9行
        for (int rowIndex = 0; rowIndex <= 8; rowIndex++)
        {
@@ -574,6 +704,7 @@
        //这是表头
        DataTable tb0 = dtSource.Tables[0];
        DataRow row0 = tb0.Rows[0];
        isHg = row0["zhpd"].ToString();
        //第一行列合并
        sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 3));
        sheet.AddMergedRegion(new CellRangeAddress(0, 0, 4, 7));
@@ -625,9 +756,9 @@
        setCellVal(sheet, 6, 6, "不合格数");
        setCellVal(sheet, 6, 7, row0["bhgs"].ToString());
        setCellVal(sheet, 7, 0, "判定Ac/Re");
        setCellVal(sheet, 7, 1, "0/1");
        setCellVal(sheet, 7, 2, "0/1");
        setCellVal(sheet, 7, 3, "0/1");
        setCellVal(sheet, 7, 1, row0["cr"].ToString());
        setCellVal(sheet, 7, 2, row0["ma"].ToString());
        setCellVal(sheet, 7, 3, row0["mi"].ToString());
        setCellVal(sheet, 8, 0, "项目");
        setCellVal(sheet, 8, 1, "质量要求");
        setCellVal(sheet, 8, 6, "检验记录");
@@ -658,10 +789,11 @@
        for (int colIndex = 0; colIndex < maxCols; colIndex++)
        {
            ICell cell = row8.CreateCell(colIndex);
            cell.CellStyle = style12;
            cell.CellStyle = style;
        }
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 7));
        setCellVal(sheet, _idx, 0, "备注:");
        setCellVal(sheet, _idx, 1, row0["iqcRemark"].ToString());
        _idx++;
        //综合判定
        for (int i = 0; i < 2; i++)
@@ -699,28 +831,36 @@
        setCellVal(sheet, _idx - 2, 0, "审核意见:");
        setCellVal(sheet, _idx - 2, 1, row0["shyj"].ToString());
        setCellVal(sheet, _idx - 1, 1, row0["shyjqz"].ToString());
        string[] ary = { "采购部意见", "销售部意见", "技术部意见", "生产部意见", "品质部意见" };
        for (int i = 0; i < ary.Length; i++)
        //如果是合格件,那下面不要了begin
        if (isHg != "Y:合格")
        {
            IRow row9 = sheet.CreateRow(_idx);
            row9.HeightInPoints = rowHeight;
            for (int colIndex = 0; colIndex < maxCols; colIndex++)
            string[] ary = { "采购部意见", "销售部意见", "技术部意见", "生产部意见", "品质部意见" };
            for (int i = 0; i < ary.Length; i++)
            {
                ICell cell = row9.CreateCell(colIndex);
                cell.CellStyle = style;
                IRow row9 = sheet.CreateRow(_idx);
                row9.HeightInPoints = rowHeight;
                for (int colIndex = 0; colIndex < maxCols; colIndex++)
                {
                    ICell cell = row9.CreateCell(colIndex);
                    cell.CellStyle = style;
                }
                // sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 0, 1));
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 2, 7));
                _idx++;
            }
            // sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 0, 1));
            sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 2, 7));
            _idx++;
            setCellVal(sheet, _idx - ary.Length, 0, "不合格评审:");
            sheet.AddMergedRegion(new CellRangeAddress(_idx - ary.Length, _idx - 1, 0, 0));
            for (int i = 0; i < ary.Length; i++)
            {
                setCellVal(sheet, _idx - i - 1, 1, ary[i]);
                setCellVal(sheet, _idx - i - 1, 2, "□ åŒæ„           â–¡ ä¸åŒæ„        ç­¾å/日期:");
            }
        }
        setCellVal(sheet, _idx - ary.Length, 0, "不合格评审:");
        sheet.AddMergedRegion(new CellRangeAddress(_idx - ary.Length, _idx - 1, 0, 0));
        for (int i = 0; i < ary.Length; i++)
        {
            setCellVal(sheet, _idx - i - 1, 1, ary[i]);
            setCellVal(sheet, _idx - i - 1, 2, "□ åŒæ„           â–¡ ä¸åŒæ„        ç­¾å/日期:");
        }
        //如果是合格件,那下面不要了end
        //****合并好后开始赋值end**************
        getRowHeight(_idx, sheet, maxCols, "XlsFont");
        //保存
        using (var ms = new MemoryStream())
        {
@@ -736,7 +876,82 @@
            }
        }
    }
    /// <summary>
    /// è®¡ç®—高度
    /// </summary>
    /// <param name="_idx"></param>
    /// <param name="sheet"></param>
    /// <param name="maxCols"></param>
    private static void getRowHeight(int _idx, ISheet sheet, int maxCols, string XlsFont)
    {
        int _XlsFont = int.Parse(AppSettingsHelper.getValueByKey(XlsFont).ToString());
        for (int i = 0; i < _idx; i++)
        {
            if (sheet.GetRow(i) == null)
            {
                continue;
            }
            IRow ICurRow = sheet.GetRow(i);
            int OldHg = ICurRow.Height;
            for (int j = 0; j < maxCols; j++)
            {
                if (ICurRow.GetCell(j) == null)
                {
                    continue;
                }
                ICell CurCell = ICurRow.GetCell(j);
                if (CurCell.CellType == NPOI.SS.UserModel.CellType.String && CurCell.StringCellValue != string.Empty)
                {
                    double CurHeight = ICurRow.Sheet.GetColumnWidth(CurCell.ColumnIndex) / 277;
                    double length = Encoding.Default.GetBytes(CurCell.ToString()).Length;
                    short height = Convert.ToInt16(Math.Ceiling(length / CurHeight));
                    if (height * _XlsFont > OldHg)
                    {
                        OldHg = height * _XlsFont;
                    }
                }
            }
            if (ICurRow.Height < OldHg)
            {
                ICurRow.Height = Convert.ToInt16(OldHg);
            }
            //因为这里全部 æ•°å­—,感觉取的高度不对
            if (ICurRow.GetCell(0).ToString() == "制热性能")
            {
                ICurRow.Height = Convert.ToInt16(OldHg / 3);
            }
        }
    }
    /// <summary>
    /// è¯»å–制热性能,把table转为strin
    /// </summary>
    /// <param name="json"></param>
    /// <returns></returns>
    private static string getTableToString(string json)
    {
        if (string.IsNullOrEmpty(json))
            return "";
        System.Text.StringBuilder sbLine = new StringBuilder();
        var data = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(json);
        List<string> resultLines = new List<string>();
        foreach (var entry in data)
        {
            string key = entry.Key;
            var values = entry.Value;
            string temp = values["temp"];
            sbLine.Append(key + "/" + temp + ":\t");
            System.Text.StringBuilder dbdb = new StringBuilder();
            foreach (var dddddd in values)
            {
                if (dddddd.Key == "temp")
                    continue;
                dbdb.Append(dddddd.Key + "-" + dddddd.Value + "、");
            }
            sbLine.Append(dbdb.ToString() + "\n");
        }
        return sbLine.ToString();
    }
    /// <summary>
    /// ç”Ÿæˆå·¡æ£€
@@ -750,16 +965,14 @@
        //行高
        int rowHeight = 25;
        //总列
        int maxCols = tb1.Columns.Count;
        int maxCols = 10;
        HSSFWorkbook workbook = new HSSFWorkbook();
        ISheet sheet = workbook.CreateSheet("Sheet1");
        // åˆ›å»ºå•元格样式 - å¸¦è¾¹æ¡†å’ŒæŒ‡å®šå­—体
        ICellStyle style = getStyle(workbook);
        ICellStyle styleHeader = getStyle(workbook, 20, true, true);
        ICellStyle style12 = getStyle(workbook, 11, false, true);
        // è®¾ç½®åˆ—宽(6列)
        // è®¾ç½®åˆ—宽(10列)
        sheet.SetColumnWidth(0, 3000);  // ç¬¬ä¸€åˆ—稍宽
        sheet.SetColumnWidth(1, 3000);
        sheet.SetColumnWidth(2, 3000);
@@ -768,8 +981,10 @@
        sheet.SetColumnWidth(5, 3000);
        sheet.SetColumnWidth(6, 3000);
        sheet.SetColumnWidth(7, 3000);
        // åˆ›å»ºè¡Œ
        for (int rowIndex = 0; rowIndex <= 1; rowIndex++)
        sheet.SetColumnWidth(8, 3000);
        sheet.SetColumnWidth(9, 3000);
        // åˆ›å»ºå¤´è¡Œ
        for (int rowIndex = 0; rowIndex <= 2; rowIndex++)
        {
            IRow row = sheet.CreateRow(rowIndex);
            // è®¾ç½®è¡Œé«˜ï¼ˆæ‰€æœ‰è¡Œç›¸åŒé«˜åº¦ï¼‰
@@ -785,31 +1000,70 @@
            }
        }
        //第一行列合并
        sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 7));
        sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 9));
        setCellVal(sheet, 0, 0, row0["title"].ToString());
        //第二行列合并
        sheet.AddMergedRegion(new CellRangeAddress(1, 1, 0, 1));
        sheet.AddMergedRegion(new CellRangeAddress(1, 1, 6, 9));
        setCellVal(sheet, 1, 0, "工单号");
        setCellVal(sheet, 1, 2, row0["daaNo"].ToString());
        setCellVal(sheet, 1, 3, "产品名称");
        setCellVal(sheet, 1, 4, row0["itemName"].ToString());
        setCellVal(sheet, 1, 5, "规格型号");
        setCellVal(sheet, 1, 6, row0["itemModel"].ToString());
        //第三行列合并
        sheet.AddMergedRegion(new CellRangeAddress(2, 2, 2, 4));
        setCellVal(sheet, 2, 0, "序号");
        setCellVal(sheet, 2, 1, "检验项目");
        setCellVal(sheet, 2, 2, "检验标准");
        setCellVal(sheet, 2, 5, row0["tm1"].ToString());
        setCellVal(sheet, 2, 6, row0["tm2"].ToString());
        setCellVal(sheet, 2, 7, row0["tm3"].ToString());
        setCellVal(sheet, 2, 8, row0["tm4"].ToString());
        setCellVal(sheet, 2, 9, row0["tm5"].ToString());
        //循环数据库
        int _idx = 1;
        IRow row6 = sheet.CreateRow(_idx);
        for (int colIndex = 0; colIndex < maxCols; colIndex++)
        {
            ICell cell6 = row6.CreateCell(colIndex);
            cell6.CellStyle = style;
            cell6.SetCellValue(tb1.Columns[colIndex].Caption.ToString().Trim());
        }
        _idx++;
        int _idx = 3;
        foreach (DataRow rrr in tb1.Rows)
        {
            IRow row7 = sheet.CreateRow(_idx);
            row7.HeightInPoints = rowHeight;
            for (int colIndex = 0; colIndex < tb1.Columns.Count; colIndex++)
            for (int colIndex = 0; colIndex < maxCols; colIndex++)
            {
                ICell cell7 = row7.CreateCell(colIndex);
                cell7.CellStyle = style;
                cell7.SetCellValue(rrr[tb1.Columns[colIndex]].ToString());
                // cell7.SetCellValue("1");
                switch (colIndex)
                {
                    case 0:
                        cell7.SetCellValue(rrr["序号"].ToString());
                        break;
                    case 1:
                        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 2, 4));
                        cell7.SetCellValue(rrr["检验项目"].ToString());
                        break;
                    case 2:
                        cell7.SetCellValue(rrr["检验标准"].ToString());
                        break;
                    case 5:
                        cell7.SetCellValue(rrr["tm1"].ToString());
                        break;
                    case 6:
                        cell7.SetCellValue(rrr["tm2"].ToString());
                        break;
                    case 7:
                        cell7.SetCellValue(rrr["tm3"].ToString());
                        break;
                    case 8:
                        cell7.SetCellValue(rrr["tm4"].ToString());
                        break;
                    case 9:
                        cell7.SetCellValue(rrr["tm5"].ToString());
                        break;
                }
            }
            _idx++;
        }
        //备注
        ////备注
        IRow row8 = sheet.CreateRow(_idx);
        row8.HeightInPoints = rowHeight;
        for (int colIndex = 0; colIndex < maxCols; colIndex++)
@@ -817,12 +1071,13 @@
            ICell cell = row8.CreateCell(colIndex);
            cell.CellStyle = style12;
        }
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 0, 2));
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 0, 4));
        setCellVal(sheet, _idx, 0, "巡检人:");
        for (int colIndex = 2; colIndex < tb1.Columns.Count; colIndex++)
        {
            setCellVal(sheet, _idx, colIndex, "余吉林");
        }
        setCellVal(sheet, _idx, 5, row0["xjr1"].ToString());
        setCellVal(sheet, _idx, 6, row0["xjr2"].ToString());
        setCellVal(sheet, _idx, 7, row0["xjr3"].ToString());
        setCellVal(sheet, _idx, 8, row0["xjr4"].ToString());
        setCellVal(sheet, _idx, 9, row0["xjr5"].ToString());
        //保存
        using (var ms = new MemoryStream())
        {
@@ -839,13 +1094,374 @@
        }
    }
    /// <summary>
    /// ç”Ÿæˆæˆå“æ£€éªŒæŠ¥å‘Šï¼ˆæŒ‰å®žé™…模板结构)
    /// </summary>
    /// <param name="dtSource"></param>
    /// <param name="strFileName"></param>
    public static void ExportChengPin(DataSet dtSource, string strFileName)
    {
        //行高
        int rowHeight = 25;
        //总列数 - æ ¹æ®æ¨¡æ¿åˆ†æžï¼Œè‡³å°‘需要18列
        int maxCols = 18;
        // åˆ›å»ºå·¥ä½œç°¿
        HSSFWorkbook workbook = new HSSFWorkbook();
        ISheet sheet = workbook.CreateSheet("Sheet1");
        // åˆ›å»ºå•元格样式
        ICellStyle style = getStyle(workbook);
        ICellStyle styleHeader = getStyle(workbook, 16, true, true);
        ICellStyle styleTitle = getStyle(workbook, 14, true, true);
        ICellStyle styleSmall = getStyle(workbook, 10, false, false);
        style.WrapText = true;
        styleHeader.WrapText = true;
        styleTitle.WrapText = true;
        styleSmall.WrapText = true;
        // è®¾ç½®åˆ—宽
        sheet.SetColumnWidth(0, 3500);   // A列:项目名称
        sheet.SetColumnWidth(1, 5000);   // B列:标准/规范
        for (int i = 2; i < 18; i++)     // C到R列:16个检测值列
        {
            sheet.SetColumnWidth(i, 3500);
        }
        //获取表头数据
        DataTable tb0 = dtSource.Tables[0];
        DataRow row0 = tb0.Rows[0];
        int _idx = 0;
        // ç¬¬1行:报告标题
        IRow titleRow = sheet.CreateRow(_idx);
        titleRow.HeightInPoints = 30;
        for (int i = 0; i < maxCols; i++)
        {
            ICell cell = titleRow.CreateCell(i);
            cell.CellStyle = styleHeader;
        }
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 0, maxCols - 1));
        setCellVal(sheet, _idx, 0, "成品检验报告");
        _idx++;
        // ç¬¬2行:基本信息第一行
        IRow info1Row = sheet.CreateRow(_idx);
        info1Row.HeightInPoints = rowHeight;
        for (int i = 0; i < maxCols; i++)
        {
            ICell cell = info1Row.CreateCell(i);
            cell.CellStyle = style;
        }
        setCellVal(sheet, _idx, 0, "生产车间:" + (row0["workShop"]?.ToString() ?? ""));
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 0, 5));
        _idx++;
        // ç¬¬3行:产品信息
        IRow info2Row = sheet.CreateRow(_idx);
        info2Row.HeightInPoints = rowHeight;
        for (int i = 0; i < maxCols; i++)
        {
            ICell cell = info2Row.CreateCell(i);
            cell.CellStyle = style;
        }
        setCellVal(sheet, _idx, 0, "产品名称");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 4));
        setCellVal(sheet, _idx, 1, row0["itemName"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 5, "型号规格");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 6, 11));
        setCellVal(sheet, _idx, 6, row0["itemModel"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 12, "线号");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 13, 15));
        setCellVal(sheet, _idx, 13, row0["lineNo"]?.ToString() ?? "");
        _idx++;
        // ç¬¬4行:商标等信息
        IRow info3Row = sheet.CreateRow(_idx);
        info3Row.HeightInPoints = rowHeight;
        for (int i = 0; i < maxCols; i++)
        {
            ICell cell = info3Row.CreateCell(i);
            cell.CellStyle = style;
        }
        setCellVal(sheet, _idx, 0, "商标");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 4));
        setCellVal(sheet, _idx, 1, row0["brand"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 5, "生产日期");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 6, 11));
        setCellVal(sheet, _idx, 6, row0["productionDate"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 12, "班次");
        setCellVal(sheet, _idx, 13, row0["classes"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 14, "批量");
        setCellVal(sheet, _idx, 15, row0["batch"]?.ToString() ?? "");
        _idx++;
        // ç¬¬5行:AC/Re标准
        IRow acreRow = sheet.CreateRow(_idx);
        acreRow.HeightInPoints = rowHeight;
        for (int i = 0; i < maxCols; i++)
        {
            ICell cell = acreRow.CreateCell(i);
            cell.CellStyle = style;
        }
        setCellVal(sheet, _idx, 0, "Ac/Re(A类)");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 5));
        setCellVal(sheet, _idx, 1, row0["acRe_A"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 6, "Ac/Re(B类)");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 7, 11));
        setCellVal(sheet, _idx, 7, row0["acRe_B"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 12, "Ac/Re(C类)");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 13, 17));
        setCellVal(sheet, _idx, 13, row0["acRe_C"]?.ToString() ?? "");
        _idx++;
        // ç¬¬6行:抽样信息
        IRow sampleRow = sheet.CreateRow(_idx);
        sampleRow.HeightInPoints = rowHeight;
        for (int i = 0; i < maxCols; i++)
        {
            ICell cell = sampleRow.CreateCell(i);
            cell.CellStyle = style;
        }
        setCellVal(sheet, _idx, 0, "抽样");
        setCellVal(sheet, _idx, 1, "匀速");
        setCellVal(sheet, _idx, 2, row0["SampleMethod"]?.ToString() == "匀速" ? "√" : "");
        setCellVal(sheet, _idx, 3, "随机");
        setCellVal(sheet, _idx, 4, row0["SampleMethod"]?.ToString() == "随机" ? "√" : "");
        setCellVal(sheet, _idx, 5, "样本数");
        setCellVal(sheet, _idx, 6, "匀速抽样数");
        setCellVal(sheet, _idx, 7, row0["sampleSize1"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 8, "随机抽样数");
        setCellVal(sheet, _idx, 9, row0["sampleSize2"]?.ToString() ?? "");
        setCellVal(sheet, _idx, 10, "样本");
        setCellVal(sheet, _idx, 11, row0["sampleSize3"]?.ToString() ?? "");
        _idx++;
        int num;
        if (row0["SampleMethod"]?.ToString() == "匀速")
        {
            if (int.TryParse(row0["sampleSize1"]?.ToString(), out int size))
            {
                num = size;
            }
            else
            {
                num = 0;
            }
        }
        else
        {
            if (int.TryParse(row0["sampleSize2"]?.ToString(), out int size))
            {
                num = size;
            }
            else
            {
                num = 0;
            }
        }
        if (num > 16)
            num = 16;
        // ç¬¬7行:检验项目表头
        IRow headerRow = sheet.CreateRow(_idx);
        headerRow.HeightInPoints = rowHeight;
        for (int i = 0; i < maxCols; i++)
        {
            ICell cell = headerRow.CreateCell(i);
            cell.CellStyle = styleTitle;
        }
        setCellVal(sheet, _idx, 0, "项目");
        setCellVal(sheet, _idx, 1, "标准");
        // æ ¹æ®éœ€è¦ç»§ç»­æ·»åŠ æ›´å¤šåˆ—æ ‡é¢˜ï¼Œè¿™é‡Œç®€åŒ–ä¸ºä¸»è¦åˆ—
        for (int i = 2; i < num + 2; i++)
        {
            setCellVal(sheet, _idx, i, (i - 1).ToString());
        }
        _idx++;
        // æ£€éªŒé¡¹ç›®æ•°æ®
        if (dtSource.Tables.Count > 1)
        {
            DataTable tb1 = dtSource.Tables[1];
            foreach (DataRow rrr in tb1.Rows)
            {
                IRow dataRow = sheet.CreateRow(_idx);
                dataRow.HeightInPoints = rowHeight;
                for (int i = 0; i < maxCols; i++)
                {
                    ICell cell = dataRow.CreateCell(i);
                    cell.CellStyle = style;
                }
                setCellVal(sheet, _idx, 0, rrr["RPB003"]?.ToString() ?? "");
                setCellVal(sheet, _idx, 1, rrr["RPB004"]?.ToString() ?? "");
                // å¡«å……16个测试值
                for (int i = 0; i < num; i++)
                {
                    string colName = $"RPB{i + 5:D3}"; // RPB005, RPB006, ..., RPB020
                    if (rrr.Table.Columns.Contains(colName))
                    {
                        setCellVal(sheet, _idx, i + 2, rrr[colName]?.ToString() ?? "");
                    }
                    else
                    {
                        setCellVal(sheet, _idx, i + 2, "");
                    }
                }
                _idx++;
            }
        }
        // ä¸åˆæ ¼å†…容记录
        IRow defectHeaderRow = sheet.CreateRow(_idx);
        defectHeaderRow.HeightInPoints = rowHeight;
        for (int i = 0; i < maxCols; i++)
        {
            ICell cell = defectHeaderRow.CreateCell(i);
            cell.CellStyle = styleTitle;
        }
        setCellVal(sheet, _idx, 0, "序号");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 10)); // ä¸åˆæ ¼å†…容占多列
        setCellVal(sheet, _idx, 1, "不合格内容");
        setCellVal(sheet, _idx, 11, "Aç±»");
        setCellVal(sheet, _idx, 12, "Bç±»");
        setCellVal(sheet, _idx, 13, "Cç±»");
        sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 14, 17)); // æ³¨æ„ç‚¹å å‰©ä½™åˆ—
        setCellVal(sheet, _idx, 14, "注意点");
        _idx++;
        if (dtSource.Tables.Count > 2)
        {
            DataTable tb2 = dtSource.Tables[2];
            foreach (DataRow rrr in tb2.Rows)
            {
                if (rrr["Description"]?.ToString() == "不良数量")
                    break;
                IRow dataRow = sheet.CreateRow(_idx);
                dataRow.HeightInPoints = rowHeight;
                for (int i = 0; i < maxCols; i++)
                {
                    ICell cell = dataRow.CreateCell(i);
                    cell.CellStyle = style;
                }
                setCellVal(sheet, _idx, 0, rrr["Seq"]?.ToString() ?? "");
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 10)); // ä¸åˆæ ¼å†…容占多列
                setCellVal(sheet, _idx, 1, rrr["Description"]?.ToString() ?? "");
                setCellVal(sheet, _idx, 11, rrr["AClass"]?.ToString() ?? "");
                setCellVal(sheet, _idx, 12, rrr["BClass"]?.ToString() ?? "");
                setCellVal(sheet, _idx, 13, rrr["CClass"]?.ToString() ?? "");
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 14, 17)); // æ³¨æ„ç‚¹å å‰©ä½™åˆ—
                setCellVal(sheet, _idx, 14, rrr["Point"]?.ToString() ?? "");
                _idx++;
            }
            DataRow dr = tb2.Rows[tb2.Rows.Count - 1];
            // å¤‡æ³¨è¡Œ
            IRow remarkRow = sheet.CreateRow(_idx);
            remarkRow.HeightInPoints = rowHeight;
            for (int i = 0; i < maxCols; i++)
            {
                ICell cell = remarkRow.CreateCell(i);
                cell.CellStyle = style;
            }
            setCellVal(sheet, _idx, 0, "备注:");
            sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 8));
            setCellVal(sheet, _idx, 9, "不良数量:");
            sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 9, 10));
            setCellVal(sheet, _idx, 11, dr["AClass"]?.ToString() ?? "");
            setCellVal(sheet, _idx, 12, dr["BClass"]?.ToString() ?? "");
            setCellVal(sheet, _idx, 13, dr["CClass"]?.ToString() ?? "");
            sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 14, 17)); // æ³¨æ„ç‚¹å å‰©ä½™åˆ—
            setCellVal(sheet, _idx, 14, dr["Point"]?.ToString() ?? "");
            _idx++;
            // å¤§çš„备注内容区域
            IRow remarkContentRow = sheet.CreateRow(_idx);
            remarkContentRow.HeightInPoints = 60;
            for (int i = 0; i < maxCols; i++)
            {
                ICell cell = remarkContentRow.CreateCell(i);
                cell.CellStyle = style;
            }
            sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 0, 17));
            setCellVal(sheet, _idx, 0, dr["Remark"]?.ToString() ?? "");
            _idx++;
        }
        // æ£€éªŒåˆ¤å®šåŒºåŸŸï¼ˆ3行布局)
        for (int judgeRowIndex = 0; judgeRowIndex < 2; judgeRowIndex++)
        {
            IRow judgmentRow = sheet.CreateRow(_idx);
            judgmentRow.HeightInPoints = rowHeight;
            for (int i = 0; i < maxCols; i++)
            {
                ICell cell = judgmentRow.CreateCell(i);
                cell.CellStyle = styleTitle;
            }
            if (judgeRowIndex == 0)
            {
                // ç¬¬ä¸€è¡Œï¼šæ£€éªŒåˆ¤å®š
                setCellVal(sheet, _idx, 0, "检验判定");
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx + 1, 0, 0)); // ä¿®æ”¹ä¸ºè·¨2行而不是3行
                setCellVal(sheet, _idx, 1, row0["CheckResult"]?.ToString() ?? "");
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 1, 5)); // åªåˆå¹¶å½“前行
                setCellVal(sheet, _idx, 6, "检验签名");
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 7, 10)); // åªåˆå¹¶å½“前行
                setCellVal(sheet, _idx, 7, row0["JY_NAME"]?.ToString() ?? "");
                setCellVal(sheet, _idx, 11, "审核签名");
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 12, 16)); // åªåˆå¹¶å½“前行
                setCellVal(sheet, _idx, 12, row0["CHECK_USER"]?.ToString() ?? "");
            }
            else if (judgeRowIndex == 1)
            {
                setCellVal(sheet, _idx, 6, "检验日期");
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 7, 10)); // åªåˆå¹¶å½“前行
                setCellVal(sheet, _idx, 7, row0["JY_DATE"]?.ToString() ?? "");
                setCellVal(sheet, _idx, 11, "审核日期");
                sheet.AddMergedRegion(new CellRangeAddress(_idx, _idx, 12, 16)); // åªåˆå¹¶å½“前行
                setCellVal(sheet, _idx, 12, row0["CHECK_DATE"]?.ToString() ?? "");
            }
            _idx++;
        }
        getRowHeight(_idx, sheet, maxCols, "XlsFontXj");
        //保存
        using (var ms = new MemoryStream())
        {
            using (var fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))
            {
                workbook.Write(ms);
                ms.Flush();
                ms.Position = 0;
                var data = ms.ToArray();
                fs.Write(data, 0, data.Length);
                fs.Flush();
            }
        }
    }
    /// <summary>
    ///     Excel导入成Datable
    ///   Excel导入成Datable
    /// </summary>
    /// <param name="file">导入路径(包含文件名与扩展名)</param>
    /// <param name="strType">工单编号,过滤多表格</param>
    /// <returns></returns>
    public static DataTable ExcelToTable(string file)
    public static DataTable ExcelToTable(string file, string strType = "")
    {
        var dt = new DataTable();
        IWorkbook workbook;
@@ -865,7 +1481,16 @@
            var sheet = workbook.GetSheetAt(0);
            //表头  
            var header = sheet.GetRow(sheet.FirstRowNum + 1);
            int intBt = 0;
            //如果是后盖码,取第1行,否则取第二行
            if (string.IsNullOrEmpty(strType))
            {
                intBt = sheet.FirstRowNum + 1;
            }
            else
                intBt = sheet.FirstRowNum;
            var header = sheet.GetRow(intBt);
            var columns = new List<int>();
            for (var i = 0; i < header.LastCellNum; i++)
            {
@@ -880,8 +1505,19 @@
            for (var act = 0; act < numberOfSheets; act++)
            {
                var _sheet = workbook.GetSheetAt(act);
                #region åŽç›–码特殊
                if (!string.IsNullOrEmpty(strType))
                {
                    string _sheetName = _sheet.SheetName.Trim();
                    if (strType != _sheetName)
                    {
                        continue;
                    }
                }
                #endregion
                //数据  
                for (var i = _sheet.FirstRowNum + 1 + 1;
                for (var i = intBt + 1;
                     i <= _sheet.LastRowNum;
                     i++)
                {
@@ -903,7 +1539,7 @@
    }
    /// <summary>
    ///     èŽ·å–å•å…ƒæ ¼ç±»åž‹
    /// èŽ·å–å•å…ƒæ ¼ç±»åž‹
    /// </summary>
    /// <param name="cell"></param>
    /// <returns></returns>
WebApi/Gs.Toolbox/Gs.Toolbox.csproj
@@ -7,15 +7,15 @@
    </PropertyGroup>
    <ItemGroup>
        <PackageReference Include="Masuit.Tools.Core" Version="2024.5.8"/>
        <PackageReference Include="Microsoft.AspNetCore" Version="2.2.0"/>
        <PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.8"/>
        <PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2"/>
        <PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0"/>
        <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0"/>
        <PackageReference Include="NPOI" Version="2.7.1"/>
        <PackageReference Include="SqlSugarCore" Version="5.1.4.167"/>
        <PackageReference Include="System.Data.SqlClient" Version="4.8.6"/>
        <PackageReference Include="Masuit.Tools.Core" Version="2024.5.8" />
        <PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
        <PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.8" />
        <PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
        <PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />
        <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
        <PackageReference Include="NPOI" Version="2.7.1" />
        <PackageReference Include="SqlSugarCore" Version="5.1.4.167" />
        <PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
    </ItemGroup>
</Project>
WebApi/Gs.Toolbox/InterfaceUtil.cs
@@ -20,8 +20,10 @@
    /// <returns>如果成功返回日志guid,否则返回串</returns>
    public static (int, string) HttpPostErp(string param, string edtUserGuid = "", string abtGuid = "", string hNo = "", int urlType = 0)
    {
        System.Text.StringBuilder sbTm = new System.Text.StringBuilder();
        sbTm.Append(DateTime.Now.ToString() + "开始发送");
        int _rtn = 0;
        //日志详细,发送的时候,记录日志,存储过程调用的时候,再累加上mes业务的操作结果
        System.Text.StringBuilder sbLog = new System.Text.StringBuilder();
        sbLog.Append(DateTime.Now.ToString() + "开始发送");
        string strLogGuid = Guid.NewGuid().ToString();
        string url = AppSettingsHelper.getValueByKey("TestErpUrl");
        if (urlType == 2)
@@ -55,9 +57,9 @@
        }
        catch (Exception ex)
        {
            LogHelper.Debug(url, "HttpPostErp param:" + param + ",ex:" + ex.Message);
            LogHelper.Debug(url, "HttpPostErp response:" + param + ",ex:" + ex.Message);
            responseStr = ex.Message;
            // throw ex;
            _rtn = -1;
        }
        finally
        {
@@ -65,15 +67,17 @@
            requestStream = null;
            response = null;
        }
        Result _result = JsonConvert.DeserializeObject<Result>(responseStr);
        int _rtn = 0;
        if ("200".Equals(_result.state))
            _rtn = 1;
        sbTm.Append("," + DateTime.Now.ToString() + "结束发送");
        if (_rtn != -1)
        {
            Result _result = JsonConvert.DeserializeObject<Result>(responseStr);
            if ("200".Equals(_result.state))
                _rtn = 1;
        }
        sbLog.Append("," + DateTime.Now.ToString() + "结束发送");
        if (_rtn > 0)
            sbTm.Append(",发送成功");
            sbLog.Append(",发送成功");
        else
            sbTm.Append(",发送失败,mes退出操作");
            sbLog.Append(",发送失败,mes退出操作");
        try
        {
            SqlParameter[] parameters =
@@ -81,11 +85,13 @@
            new("@edtUserGuid", edtUserGuid),
            new("@abtGuid", abtGuid),
            new("@abtTable", ""),
            new("@detail", sbTm.ToString()),
            new("@detail", sbLog.ToString()),
            new("@hNo", hNo),
            new("@RtnLogGuid", strLogGuid),
            new("@SendJson", param),
            new("@RtnJson", responseStr),
            new("@isSuccess", (_rtn>0?1:0)),
            new("@isErp", 1),
        };
            DbHelperSQL.RunProcedure("[prc_log_create]", parameters);
        }
WebApi/Gs.Toolbox/UtilityHelper.cs
@@ -1,8 +1,8 @@
using System.Data;
using Microsoft.AspNetCore.Http;
using System.Data;
using System.Dynamic;
using System.Security.Cryptography;
using System.Text;
using Microsoft.AspNetCore.Http;
namespace Gs.Toolbox;
@@ -149,4 +149,5 @@
        if (guid == null) return false;
        return true;
    }
}
WebApi/Gs.Warehouse/Services/MesDepotSectionsManager.cs
@@ -1,7 +1,11 @@
using Gs.Entity.BaseInfo;
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 System.Data;
using System.Text;
namespace Gs.Warehouse.Services;
@@ -9,4 +13,86 @@
public class MesDepotSectionsManager : Repository<MesDepotSections>,
    IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesDepotSectionsManager()
    {
        //_http = httpContextAccessor;
        //(_userCode, _userGuid, _orgFids) =
        //    UtilityHelper.GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
    ///     æŸ¥è¯¢åˆ—表,支持分页,用于各种绑定
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage2(PageQuery model)
    {
        var currentPage = model.currentPage;
        var everyPageSize = model.everyPageSize;
        var sortName = string.IsNullOrEmpty(model.sortName) ? "a.USER_NAME" : model.sortName;
        var keyWhere = model.keyWhere;
        string keyType = model.keyType;
        System.Text.StringBuilder sbJoin = new StringBuilder();
        sbJoin.Append(" from [dbo].[MES_DEPOT_SECTIONS] a ");
        sbJoin.Append(" left join [dbo].[MES_DEPOTS] d on a.depot_guid=d.depot_id");
        sbJoin.Append(" left join SYS_ORGANIZATION org on d.FSubsidiary=org.FID");
        sbJoin.Append(keyWhere);
        var sbSql = new StringBuilder();
        sbSql.Append("  SELECT * FROM ");
        sbSql.Append(" (SELECT N'(' +[Org].[FNumber] + N')'  +[Org].[NAME]  AS [FSubsidiary2]");
        sbSql.Append(", a.depot_section_code as cwCode,a.depot_section_name as cwName,d.depot_name as ckName,d.depot_id as ckId,d.depot_code as ckCode ,ROW_NUMBER() OVER(ORDER BY a.depot_section_code asc) AS RowIndex ");
        //如果无关键字,无需找查绑定
        if (string.IsNullOrEmpty(keyType))
        {
            sbSql.Append(",cast(0 as bit) as chkInt");
        }
        else
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND bind where bind.userGuid='" + keyType + "' and bind.aboutGuid=a.depot_section_code  and bind.fType='库位')  as bit) as chkInt ");
        sbSql.Append(sbJoin);
        sbSql.Append(") T");
        sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and  T.rowindex<=" + currentPage + "*" + everyPageSize);
        sbSql.Append(" select count(1) as intTotal ");
        sbSql.Append(sbJoin);
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.Query(sbSql.ToString());
        }
        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.Warehouse/Services/MesDepotsManager.cs
@@ -99,6 +99,7 @@
        var sortName = string.IsNullOrEmpty(model.sortName) ? "a.PAGE_GROUP" : model.sortName;
        var keyWhere = model.keyWhere;
        string keyType = model.keyType;
        string keyWord = model.keyWord;
        var sbSql = new StringBuilder();
        sbSql.Append("  SELECT * FROM ");
        sbSql.Append(" (SELECT N'(' +[Org].[FNumber] + N')'  +[Org].[NAME]  AS [FSubsidiary2] ,");
@@ -107,12 +108,20 @@
        sbSql.Append(" [f].[supp_name] AS [SuppLierId] , [g].[departmentname] AS [department2] ,");
        sbSql.Append(" ( CASE  WHEN ( [a].[is_ng] = N'A' ) THEN N'正常'  ELSE N'禁用' END ) AS [IsNg] ");
        sbSql.Append(", [a].*,ROW_NUMBER() OVER(ORDER BY org.FNumber asc ,a.depot_code asc) AS RowIndex ");
        if (string.IsNullOrEmpty(keyWord))
        {
            sbSql.Append(",'' as kcQty");
        }
        else
        {
            sbSql.Append(", isnull((select top 1 åº“存对比 from [dbo].[即时库存差异表] where ç‰©æ–™ID=" + keyWord + " and ä»“库ID=[a].[depot_id]),'('+a.depot_name+')0/0') AS [kcQty]  ");
        }
        if (string.IsNullOrEmpty(keyType))
        {
            sbSql.Append(",cast(0 as bit) as chkInt");
        }
        else
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType + "' and b.aboutGuid=a.guid)  as bit) as chkInt ");
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType + "' and b.aboutGuid=a.guid  and b.fType='仓库')  as bit) as chkInt ");
        sbSql.Append(" FROM [MES_DEPOTS] [a] Left JOIN [SYS_ORGANIZATION] [Org] ON ( [a].[FSubsidiary] = [Org].[FID] )");
        sbSql.Append(" Left JOIN [MES_STAFF] [c] ON ( [a].[create_by] = CAST([c].[id] AS NVARCHAR(50))) ");
        sbSql.Append(" Left JOIN [MES_CUSTOMER] [d] ON (CAST([d].[id] AS NVARCHAR(50)) = CAST([a].[Client_Id] AS NVARCHAR(50))) ");
@@ -174,15 +183,15 @@
    public ReturnDto<MesDepots> GetModel([FromBody] MesDepots model)
    {
        var m = base.GetById(model.Guid);
        string _CreateBy = m.CreateBy;
        try
        {
            m.CreateBy = Gs.Toolbox.DbHelperSQL.GetSingle("select  top 1 staff_name from [dbo].[MES_STAFF] where id='" + _CreateBy + "'").ToString();
        }
        catch (Exception ex)
        {
            Gs.Toolbox.LogHelper.Debug(this.ToString(), "读取负责人error," + ex.Message);
        }
        //string _CreateBy = m.CreateBy;
        //try
        //{
        //    m.CreateBy = Gs.Toolbox.DbHelperSQL.GetSingle("select  top 1 staff_name from [dbo].[MES_STAFF] where id='" + _CreateBy + "'").ToString();
        //}
        //catch (Exception ex)
        //{
        //    Gs.Toolbox.LogHelper.Debug(this.ToString(), "读取负责人error," + ex.Message);
        //}
        m.IsNg = m.IsNg + ":" + (m.IsNg == "A" ? "正常" : "禁用");
        var lst = new MesDepotSectionsManager();
        m.list = lst.GetList(it => it.DepotGuid == m.Guid).OrderBy(it => it.DepotSectionCode).ToList();
@@ -202,6 +211,12 @@
        System.Text.StringBuilder sbMsg = new System.Text.StringBuilder();
        try
        {
            string Remark55 = model.Remark5;
            string Guid55 = model.Guid;
            //if (!string.IsNullOrEmpty(Remark55))
            //{
            Gs.Toolbox.DbHelperSQL.ExecuteSql(" update MES_DEPOTS set Remark5='" + Remark55 + "' where guid='" + Guid55 + "'");
            //}
            Db.Ado.BeginTran();
            var _manager = new MesDepotSectionsManager();
            var _upLst = new List<MesDepotSections>();
WebApi/Gs.Warehouse/Services/MesInvItemArnManager.cs
@@ -96,6 +96,70 @@
            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_cgdhd_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, "读取成功");
    }
    /// <summary>
    ///     è¯»å–
    /// </summary>
@@ -217,6 +281,7 @@
        string bz = model.Remark; //备注
        string gysId = model.SuppId; //供应商
        string orgId = model.OrgId; //收料组织
        int isSrm = model.IsSrm;
        var _sb = new StringBuilder();
        var _split = "|";
        foreach (var m in model.list)
@@ -260,6 +325,7 @@
                        new("@inBz", bz),
                        new("@inGysId", gysId),
                        new("@OrgId", orgId),
                        new("@isSrm", isSrm),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString())
                    };
@@ -309,7 +375,7 @@
        foreach (string _val in guidList) sbMx.Append(_val);
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_cgdhd_tui]", conn))
            using (var cmd = new SqlCommand("[prc_cgyt_dj_add]", conn))
            {
                try
                {
@@ -335,7 +401,7 @@
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "prc_cgdhd_tui error:" + ex.Message);
                        "prc_cgyt_dj_add error:" + ex.Message);
                    _outMsg = ex.Message;
                    _outSum = -1;
                }
@@ -495,7 +561,7 @@
                        new("@inQueryWhere", keyWhere),
                        new("@inBusType", inBusType),
                        new("@inSupId", inSupId),
                        new("@inP1", inReceiveOrgId),
                        new("@inP1", inReceiveOrgId),//组织
                        new("@inP2", "")
                    };
                    foreach (var parameter in parameters)
@@ -603,8 +669,147 @@
            "读取成功!");
    }
    #endregion
    #region srm
    /// <summary>
    ///     è¯»å–srm
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> SelectSrm([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        string inBusType = model.inBusType;
        string inSupId = model.inSupId;
        string inReceiveOrgId = model.inReceiveOrgId;
        var dset = new DataSet();
        try
        {
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_sel_dhd_by_xky]", conn))
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@inCurrentPage", currentPage),
                        new("@inEveryPageSize", everyPageSize),
                        new("@inSortName", sortName),
                        new("@inSortOrder", ""),
                        new("@inQueryWhere", keyWhere),
                        new("@inBusType", inBusType),//1是采购,2是委外
                        new("@inSupId", inSupId),//供应商
                        new("@inP1", inReceiveOrgId),//组织
                        new("@inP2", "")
                    };
                    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(), "SelectSrm 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, "读取成功");
    }
    /// <summary>
    /// æ ¹æ®å•号读取srm明细
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<List<dynamic>> SelectSrmTo([FromBody] dynamic model)
    {
        string pi_shdh = model.inShdh;
        string inP1 = model.inP1;
        string inP2 = model.inP2;
        var lst = new List<dynamic>();
        var dset = new DataSet();
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_sel_dhdmx_by_xky]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@pi_shdh",pi_shdh),
                        new("@inP1",""),
                        new("@inP2",""),
                    };
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    using (var dt =
                           new SqlDataAdapter(cmd))
                    {
                        dt.Fill(dset, "0");
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "prc_sel_dhdmx_by_xky error:" + ex.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        if (dset != null && dset.Tables.Count > 0 &&
            dset.Tables[0].Rows.Count > 0) //有数据
            lst = dset.Tables[0].TableToDynamicList();
        return ReturnDto<List<dynamic>>.QuickReturn(lst, ReturnCode.Success,
            "读取成功!");
    }
    #endregion
}
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.Warehouse/Services/MesRohInManager.cs
@@ -14,17 +14,25 @@
///     é‡‡è´­ä¸»è¡¨ï¼Œæ•°æ®ä»Žerp来
/// </summary>
[ApiGroup(ApiGroupNames.PerMission)]
public class MesRohInManager :IRomteService
public class MesRohInManager : IRomteService
{
    /// <summary>
    /// HTTP上下文
    /// </summary>
    private readonly IHttpContextAccessor _http;
    /// <summary>
    /// ç”¨æˆ·code,用户guid,组织id列表
    /// </summary>
    private readonly string _userCode, _userGuid, _orgFids;
    public MesRohInManager(IHttpContextAccessor httpContextAccessor)
    {
        //变量附值
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            UtilityHelper.GetUserGuidAndOrgGuid(_http);
        (_userCode, _userGuid, _orgFids) =UtilityHelper.GetUserGuidAndOrgGuid(_http);
    }
    /// <summary>
@@ -35,10 +43,10 @@
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage([FromBody] dynamic model)
    {
        int currentPage = model.currentPage;
        int everyPageSize = model.everyPageSize;
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        int currentPage = model.currentPage;//当前页
        int everyPageSize = model.everyPageSize;//每页大小
        string sortName = model.sortName;//排序
        string keyWhere = model.keyWhere;//查询条件
        SqlParameter[] parameters =
        {
            new("@inCurrentPage", currentPage),
@@ -66,8 +74,9 @@
            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 intTotal =int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
                //计算共有几页
                var pages = intTotal % everyPageSize != 0
                    ? intTotal / everyPageSize + 1
                    : intTotal / everyPageSize;
@@ -88,7 +97,7 @@
    /// <summary>
    ///     è¯»å–
    ///     è¯»å–明细
    /// </summary>
    /// <param name="guid"></param>
    /// <returns></returns>
@@ -114,11 +123,13 @@
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0)
            {
                //主体信息
                var dr = dset.Tables[0].Rows[0];
                m = dr.RowToDynamic();
                //表1
                var _tb = dset.Tables[1].TableToDynamicList();
                m.list = _tb;
                //表2
                var _tb2 = dset.Tables[2].TableToDynamicList();
                m.list2 = _tb2;
            }
@@ -133,4 +144,6 @@
                "读取成功!");
        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
}
WebApi/Gs.Warehouse/Services/VArrivalBarcodeManager.cs
@@ -125,7 +125,6 @@
                    "读取成功!");
    }
    /// <summary>
    /// åˆ é™¤æ¡ç 
    /// </summary>
@@ -185,8 +184,6 @@
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
    /// <summary>
    /// é€‰æ‹©æ¡ç 
    /// </summary>
@@ -201,6 +198,7 @@
        string keyWhere = model.keyWhere;
        string aboutGuid = model.aboutGuid;
        string aboutType = model.aboutType;
        string qcGuid = model.qcGuid;
        var dset = new DataSet();
        try
        {
@@ -218,7 +216,8 @@
                        new("@inSortOrder", ""),
                        new("@inQueryWhere", keyWhere),
                        new("@inP1", aboutGuid),
                        new("@inP2", aboutType)
                        new("@inP2", aboutType),
                        new("@inP3", qcGuid)
                    };
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
@@ -260,4 +259,67 @@
            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_dhtm_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/FanGongManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,188 @@
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Data;
using System.Dynamic;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using System.Data.SqlClient;
using Gs.Toolbox.ApiCore.Group;
namespace Gs.Wom.Service
{
    [ApiGroup(ApiGroupNames.QC)]
    public class FanGongManager : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public FanGongManager(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                UtilityHelper.GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([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_fgd_lst", 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, "读取成功");
        }
        /// <summary>
        ///     è¯»å–
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            m.list2 = new List<dynamic>();
            m.list3 = new List<dynamic>();
            SqlParameter[] parameters =
            {
            new("@inMainGuid", guid),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")};
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[prc_fgd_mx]", parameters, "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    var dr = dset.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                    var _tb = dset.Tables[1].TableToDynamicList();
                    m.list = _tb;
                    var _tb2 = dset.Tables[2].TableToDynamicList();
                    m.list2 = _tb2;
                    var _tb3 = dset.Tables[3].TableToDynamicList();
                    m.list3 = _tb3;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
        /// <summary>
        /// ç”Ÿæˆæ–°çš„追溯码
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> CreateTrace([FromBody] dynamic model)
        {
            int? rtnInt = (int)ReturnCode.Default;
            Guid? guid = model.guid;
            var _outMsg = "";
            var _outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_fgd_trace_code]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid", UtilityHelper.CheckGuid(guid)? guid : DBNull.Value),
                        new("@inEdtUserGuid", _userGuid),
                    };
                        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_fgd_trace_code 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);
        }
    }
}
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/Service/WomdaaManager.cs
@@ -1,19 +1,21 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using Gs.Toolbox;
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 Newtonsoft.Json.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.Wom.Service;
[ApiGroup(ApiGroupNames.WOM)]
public class WomdaaManager :IRomteService
public class WomdaaManager : IRomteService
{
    private readonly IHttpContextAccessor _http;
@@ -125,10 +127,16 @@
                m.list2 = _tb2;
                var _tb3 = dset.Tables[3].TableToDynamicList();
                m.list3 = _tb3;
                var _tb4= dset.Tables[4].TableToDynamicList();
                var _tb4 = dset.Tables[4].TableToDynamicList();
                m.list4 = _tb4;
                var _tb5 = dset.Tables[5].TableToDynamicList();
                m.list5 = _tb5;
                var _tb6 = dset.Tables[6].TableToDynamicList();
                m.list6 = _tb6;
                var _tb7 = dset.Tables[7].TableToDynamicList();
                m.list7 = _tb7;
                var _tb8 = dset.Tables[8].TableToDynamicList();
                m.list8 = _tb8;
            }
        }
        catch (Exception ex)
@@ -257,63 +265,69 @@
    ///// <summary>
    /////     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
    ///// </summary>
    ///// <param name="model"></param>
    ///// <returns></returns>
    //[RequestMethod(RequestMethods.POST)]
    //public ReturnDto<string?> EditModel([FromBody] dynamic model)
    //{
    //    Guid? guid = model.guid; //主键
    //    string sjxt = model.sjxt; //工单号
    //    string bz = model.bz;//仓库
    //    var _outMsg = "";
    //    var _outSum = -1;
    //    using (var conn = new SqlConnection(DbHelperSQL.strConn))
    //    {
    //        using (var cmd = new SqlCommand("[prc_wom_daa_edt]", conn))
    //        {
    //            try
    //            {
    //                conn.Open();
    //                cmd.CommandType = CommandType.StoredProcedure;
    //                SqlParameter[] parameters =
    //                {
    //                    new("@outMsg", SqlDbType.NVarChar, 300),
    //                    new("@outSum", SqlDbType.Int),
    //                    new("@inOrderGuid",UtilityHelper.CheckGuid(guid)? guid : DBNull.Value),
    //                    new("@inSjxt", sjxt),
    //                    new("@inBz", bz),
    //                    new("@inEdtUserGuid", _userGuid),
    //                };
    //                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_wom_daa_edt error:" + ex.Message);
    //                _outMsg = ex.Message;
    //                _outSum = -1;
    //            }
    //            finally
    //            {
    //                conn.Close();
    //            }
    //        }
    //    }
    //    if (_outSum <= 0)
    //        return ReturnDto<string>.QuickReturn(guid.ToString(),
    //            ReturnCode.Exception, _outMsg);
    //    return ReturnDto<string>.QuickReturn(guid.ToString(),
    //        ReturnCode.Success, _outMsg);
    //}
    /// <summary>
    ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<string?> EditModel([FromBody] dynamic model)
    {
        Guid? guid = model.guid; //主键
        string sjxt = model.sjxt; //工单号
        string bz = model.bz;
        string sclx = model.sclx;
        string dtKg = model.dtKg;
        string dtWg = model.dtWg;
        var _outMsg = "";
        var _outSum = -1;
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_wom_daa_edt]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid",UtilityHelper.CheckGuid(guid)? guid : DBNull.Value),
                        new("@inSjxt", sjxt),
                        new("@inBz", bz),
                        new("@inSclx", sclx),
                        new("@dtKg", dtKg),
                        new("@dtWg", dtWg),
                        new("@inEdtUserGuid", _userGuid),
                    };
                    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_wom_daa_edt error:" + ex.Message);
                    _outMsg = ex.Message;
                    _outSum = -1;
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        if (_outSum <= 0)
            return ReturnDto<string>.QuickReturn(guid.ToString(),
                ReturnCode.Exception, _outMsg);
        return ReturnDto<string>.QuickReturn(guid.ToString(),
            ReturnCode.Success, _outMsg);
    }
    /// <summary>
@@ -464,65 +478,6 @@
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteBarcode([FromBody] dynamic model)
    {
        int? rtnInt = (int)ReturnCode.Default;
        string mxGuid = model.mxGuid;
        string inType = model.inType;
        var _outMsg = "";
        var _outSum = -1;
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_wom_daatm_del]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inMxGuid", mxGuid),
                        new("@inType", inType)
                    };
                    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_wom_daatm_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);
    }
    /// <summary>
    ///     åˆ é™¤ä¸»è¡¨æˆ–明细
    /// </summary>
    /// <param name="model"></param>
@@ -578,8 +533,195 @@
        }
        if (_outSum <= 0)
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,_outMsg);
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
    }
    /// <summary>
    /// å·¥è‰ºå˜æ›´
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditGy([FromBody] dynamic model)
    {
        Guid? guid = model.guid; //产品主键
        var _sb = new StringBuilder();
        var _split = "|";
        foreach (var m in model.list)
        {
            var _line = m.processNo + _split
                                    + m.frontProcessNo;
            if (_sb.Length > 0)
                _sb.Append("~");
            _sb.Append(_line);
        }
        dynamic mObj = new ExpandoObject();
        mObj.outMsg = "";
        mObj.outSum = -1;
        mObj.outGuid = "";
        mObj.outNo = "";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_wom_daa_technique]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString())
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                    foreach (var parameter in parameters)
                        cmd.Parameters.Add(parameter);
                    cmd.ExecuteNonQuery();
                    mObj.outMsg = parameters[0].Value.ToString();
                    mObj.outSum = int.Parse(parameters[1].Value.ToString());
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(),
                        "prc_wom_daa_technique error:" + ex.Message);
                    mObj.outMsg = ex.Message;
                    mObj.outSum = -1;
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<List<dynamic>> GetGyList(
       [FromBody] dynamic model)
    {
        string daaGuid = model.guid;
        var lst = new List<dynamic>();
        var dset = new DataSet();
        System.Text.StringBuilder sbSql = new System.Text.StringBuilder();
        sbSql.Append("   select * from [dbo].[WOMDAA_TECHNIQUE] where daaGuid='" + daaGuid + "' order by processNo asc ");
        try
        {
            dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString());
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
        }
        if (dset != null && dset.Tables.Count > 0 &&
            dset.Tables[0].Rows.Count > 0) //有数据
            lst = dset.Tables[0].TableToDynamicList();
        return ReturnDto<List<dynamic>>.QuickReturn(lst, ReturnCode.Success,
            "读取成功!");
    }
    /// <summary>
    /// å˜æ›´å†…包装数量
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> EditTb([FromBody] dynamic model)
    {
        int? rtnInt = (int)ReturnCode.Default;
        Guid? guid = model.guid;
        string sl = model.sl;
        var _outMsg = "";
        var _outSum = -1;
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("[prc_wom_daa_nbz]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid", UtilityHelper.CheckGuid(guid) ? guid: DBNull.Value),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inSl", sl)
                    };
                    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_wom_daa_nbz 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);
    }
    /// <summary>
    /// æ ¹æ®daaNo,读取明细,用于出入库选择
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<List<dynamic>> SelectDaaMx([FromBody] dynamic model)
    {
        string strDaaNo = model.strDaaNo;
        var lst = new List<dynamic>();
        var dset = new DataSet();
        System.Text.StringBuilder sbSql = new StringBuilder();
        sbSql.Append(" select dab003 as itemId,dab004 as itemName,dab005 as itemModel,dw.fname as dwName,i.item_no as itemNo,'' as sl,'' as bz,'' as bllx");
        sbSql.Append(" ,isnull( cet0.[库存对比],'(未设仓库)0/0') as kcQty");
        sbSql.Append(" ,cet0.[仓库ID] as depotId");
        sbSql.Append(" ,cet0.[仓库名称]  as depotName");
        sbSql.Append("  from WOMDAB dab left join  MES_ITEMS i on dab.dab003=i.item_id ");
        sbSql.Append("  left join MES_UNIT dw on dw.id=dab009 ");
        sbSql.Append(" left join [dbo].即时库存差异表 cet0 on (cet0.物料ID=i.id   and i.depot_code=cet0.仓库ID) ");
        sbSql.Append(" where dab.dab001='" + strDaaNo + "' order by dab.erpid asc");
        try
        {
            dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString());
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "SelectDaaMx error:" + ex.Message);
        }
        if (dset != null && dset.Tables.Count > 0 &&
            dset.Tables[0].Rows.Count > 0) //有数据
            lst = dset.Tables[0].TableToDynamicList();
        return ReturnDto<List<dynamic>>.QuickReturn(lst, ReturnCode.Success,
            "读取成功!");
    }
}
WebApi/Gs.Wom/Service/WompbaManager.cs
@@ -143,8 +143,6 @@
        Guid? guid = model.guid; //主键
        string bz = model.bz; //备注
        string cjId = model.cjId; //车间
        string cxId = ""; //产线,用不到了
        string jhrs = ""; //计划人数,用不到了
        var _sb = new StringBuilder();
        var _split = "|";
        foreach (var m in model.list)
@@ -153,15 +151,11 @@
            var _line = m.AboutGuid + _split
                                    + m.LineId + _split
                                    + m.Yjkgsj + _split
                                    + m.Jhrs + _split
                                    + m.Hxsj + _split
                                    + m.Hxsj + _split//生产类型
                                    + m.Bz + _split
                                    + m.Blsj + _split
                                    + m.Pcsl + _split
                                    + m.Yjwgsj + _split
                                    + (CheckGuid(_guid)
                                        ? _guid
                                        : Guid.Empty.ToString());
                                    + (CheckGuid(_guid)? _guid: Guid.Empty.ToString());
            if (_sb.Length > 0)
                _sb.Append("~");
            _sb.Append(_line);
@@ -188,8 +182,6 @@
                        new("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value),
                        new("@inBz", bz),
                        new("@inCjId", cjId),
                        new("@inCxId", cxId),
                        new("@inJhrs", jhrs),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inLineList", _sb.ToString())
                    };
WebApi/Gs.Wom/WorkService/KanBanController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,189 @@
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.Drawing;
using System.Drawing.Imaging;
using System.Dynamic;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.Wom.WorkService
{
    [ApiGroup(ApiGroupNames.WOM)]
    public class KanBanController : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public KanBanController(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetLaTouListPage([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("kanban_latou_lst", 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, "读取成功");
        }
        /// <summary>
        ///     è¯»å–
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetLaTouModel([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            m.tb0 = new ExpandoObject();
            m.tb1 = new List<dynamic>();
            m.tb2 = new List<dynamic>();
            m.tb3 = new List<dynamic>();
            m.tb4 = new List<dynamic>();
            m.tb5 = new List<dynamic>();
            m.tb6 = new List<dynamic>();
            m.tb7 = new ExpandoObject();
            m.tb8 = new ExpandoObject();
            m.tb9 = new ExpandoObject();
            m.tb10 = new List<dynamic>();
            m.tb11 = new List<dynamic>();
            m.tb12 = new List<dynamic>();
            m.tb13 = new List<string>();//产能图时间段
            m.tb14 = new ExpandoObject();//下一指令
            SqlParameter[] parameters =
            {
            new("@inMainGuid", guid),
            new("@inLineId", ""),
        };
            var dset = new DataSet();
            try
            {
                dset = DbHelperSQL.RunProcedure("[kanban_latou]", parameters,
                    "0");
                if (dset != null && dset.Tables.Count > 0 &&
                    dset.Tables[0].Rows.Count > 0)
                {
                    //--@0主表信息
                    var _tb0 = dset.Tables[0].Rows[0];
                    m.tb0 = _tb0.RowToDynamic();
                    //  --@1在制品明细
                    var _tb1 = dset.Tables[1].TableToDynamicList();
                    m.tb1 = _tb1;
                    // --@2产能图柱
                    var _tb2 = dset.Tables[2].TableToDynamicList();
                    m.tb2 = _tb2;
                    //  --@3标准产能
                    var _tb3 = dset.Tables[3].TableToDynamicList();
                    m.tb3 = _tb3;
                    //   --@4标准下线
                    var _tb4 = dset.Tables[4].TableToDynamicList();
                    m.tb4 = _tb4;
                    //    --@5标准上线
                    var _tb5 = dset.Tables[5].TableToDynamicList();
                    m.tb5 = _tb5;
                    //--@6产能表
                    var _tb6 = dset.Tables[6].TableToDynamicList();
                    m.tb6 = _tb6;
                    //--@7不良项目图
                    var _tb7 = dset.Tables[7].Rows[0].RowToDynamic();
                    m.tb7 = _tb7;
                    // --@8良品目图
                    var _tb8 = dset.Tables[8].Rows[0].RowToDynamic();
                    m.tb8 = _tb8;
                    // --@9异常报警
                    var _tb9 = dset.Tables[9].Rows[0].RowToDynamic();
                    m.tb9 = _tb9;
                    // --@10计件
                    var _tb10 = dset.Tables[10].TableToDynamicList();
                    m.tb10 = _tb10;
                    // --@11计时
                    var _tb11 = dset.Tables[11].TableToDynamicList();
                    m.tb11 = _tb11;
                    // --@12不良项目表
                    var _tb12 = dset.Tables[12].TableToDynamicList();
                    m.tb12 = _tb12;
                    //产能图时间点
                    foreach (DataRow row in dset.Tables[2].Rows)
                    {
                        m.tb13.Add(row["t"].ToString());
                    }
                    var _tb14 = dset.Tables[13].Rows[0];
                    m.tb14 = _tb14.RowToDynamic();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
            }
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
        }
    }
}
WebApi/Gs.Wom/WorkService/MesBackFlashController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,214 @@
using System.Data;
using System.Dynamic;
using System.Text;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox.ApiCore.Group;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.Wom.WorkService
{
    [ApiGroup(ApiGroupNames.WOM)]
    public class MesBackFlashController : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        private readonly string _userCode, _userGuid, _orgFids;
        public MesBackFlashController(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http);
        }
        #region
        /// <summary>
        /// è¯»å–列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([FromBody] PageQuery model)
        {
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = string.IsNullOrEmpty(model.sortName) ? "org.FNumber" : model.sortName;
            string keyWhere = model.keyWhere;
            System.Text.StringBuilder _w = new StringBuilder();
            _w.Append(" from [dbo].[MES_BACK_FLASH] a");
            _w.Append(" left join MES_ITEMS i on a.ItemID=i.item_id  ");
            _w.Append(" left join MES_DEPOTS d on a.depotId=d.depot_id ");
            _w.Append(" left join SYS_DEPARTMENT m on a.departmentId=m.departmentid ");
            _w.Append(" left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID");
            _w.Append(" where 1=1 " + keyWhere);
            System.Text.StringBuilder sbSql = new StringBuilder();
            sbSql.Append("select * from ");
            sbSql.Append("( ");
            sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.*,'('+org.FNumber+')'+org.NAME as orgName  ");
            sbSql.Append(",i.item_no as itemNo,i.item_name as itemName,i.item_model as itemModel,d.depot_name as depotName,m.departmentname as bmName");
            sbSql.Append(_w);
            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 ");
            sbSql.Append(_w);
            DataSet dset = new DataSet();
            try
            {
                dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString());
            }
            catch (Exception ex)
            {
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "GetListPage error:" + ex.Message);
                return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
            }
            PageList<dynamic> _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)//有数据
            {
                int intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
                int pages = (intTotal % everyPageSize != 0) ? (intTotal / everyPageSize + 1) : (intTotal / everyPageSize);
                _pglist.total = intTotal;
                _pglist.everyPageSize = everyPageSize;
                _pglist.pages = pages;
                List<dynamic> _dy = dset.Tables[0].TableToDynamicList();
                _pglist.list = _dy;
            }
            return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, ReturnCode.Success, "读取成功");
        }
        /// <summary>
        /// åˆ é™¤å®žä½“
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> DeleteModel([FromBody] JArray guidList)
        {
            var intArray = guidList.ToObject<string[]>();
            string guid = intArray[0];
            int rtnInt = (int)ReturnCode.Default;
            int cont = 0;
            try
            {
                cont = isChkOrUnChk(guid, 1);
                if (cont > 0)
                    return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,该信息已被审核!");
                StringBuilder strSql = new StringBuilder();
                strSql.Append(" delete from MES_BACK_FLASH ");
                strSql.Append(" where guid='" + guid + "'");
                int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
                rtnInt = rows;
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "DeleteModel error:" + ex.Message);
                rtnInt = (int)ReturnCode.Exception;
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败," + ex.Message);
            }
            if (rtnInt > 0)
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功,共删除" + rtnInt.ToString() + "条数据!");
            else
                return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,请重试!");
        }
        /// <summary>
        /// å¢žåŠ å®žä½“
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
        {
            string itemId = model.itemId;
            string departmentId = model.departmentId;
            string depotId = model.depotId;
            int? rtnInt = (int)ReturnCode.Default;
            dynamic mObj = new ExpandoObject();
            mObj.outMsg = "";
            mObj.outSum = -1;
            mObj.outGuid = "";
            mObj.outNo = "";
            StringBuilder strSql = new StringBuilder();
            string guid = Guid.NewGuid().ToString();
            strSql.Append(" insert into MES_BACK_FLASH");
            strSql.Append(" ([guid] ,[ItemId] ,[departmentId] ,[depotId],createBy,createDate,checkStatus)");
            strSql.Append(" values(");
            strSql.Append(" '" + guid + "','" + itemId + "','" + departmentId + "'," + depotId + ",'" + _userCode + "',getdate(),0)");
            try
            {
                rtnInt = DbHelperSQL.ExecuteSql(strSql.ToString());
                mObj.outMsg = "操作成功!";
                mObj.outSum = rtnInt;
                mObj.outGuid = guid;
                mObj.outNo = itemId;
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "EditModel error:" + ex.Message);
                rtnInt = (int)ReturnCode.Exception;
                mObj.outMsg = ex.Message;
                mObj.outSum = -1;
            }
            if (mObj.outSum <= 0)
                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
        }
        /// <summary>
        /// è¯»å–实体
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        [AllowAnonymous]
        public ReturnDto<System.Dynamic.ExpandoObject> GetModel([FromBody] dynamic model)
        {
            dynamic m = new System.Dynamic.ExpandoObject();
            System.Text.StringBuilder sbSql = new StringBuilder();
            sbSql.Append("select top 1 a.*,org.FID as orgId ,i.item_no as itemNo,i.item_name as itemName,i.item_model as itemModel from MES_BACK_FLASH a left join MES_ITEMS i on a.ItemID=i.item_id left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID where 1=1 and a.guid='" + model.guid.ToString() + "' ");
            try
            {
                DataSet dset = new DataSet();
                dset = DbHelperSQL.Query(sbSql.ToString());
                if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)
                {
                    System.Data.DataRow dr = dset.Tables[0].Rows[0];
                    m = dr.RowToDynamic();
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
                }
                else
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), "GetModel error:" + ex.Message);
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
            }
        }
        /// <summary>
        /// åˆ¤æ–­æ˜¯å¦å®¡æ ¸
        /// </summary>
        /// <param name="guidList"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        private int isChkOrUnChk(string guidList, int status)
        {
            int cont = 0;
            cont = int.Parse(DbHelperSQL.GetSingle("select count(1) from MES_BACK_FLASH where guid='" + guidList + "' and isnull(checkstatus,0)=" + status + "").ToString());
            return cont;
        }
        #endregion
    }
}
WebApi/Gs.Wom/WorkService/WorkCollectController.cs
@@ -1,7 +1,6 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
@@ -25,8 +24,6 @@
                GetUserGuidAndOrgGuid(_http);
        }
        #region
        /// <summary>
        ///     è¯»å–,采集,采集的时候返回列表
        /// </summary>
@@ -41,6 +38,7 @@
            string gongWei = model.gongWei;//工位
            string checkResult = model.checkResult; //结果
            string badDescription = model.badDescription;//不良描述
            string collectGuid = model.collectGuid;
            //水检值
            string t001 = model.t001;
            string t002 = model.t002;
@@ -53,6 +51,8 @@
            string t009 = model.t009;
            string t010 = model.t010;
            string t011 = model.t011;
            string t012 = model.t012;
            string t013 = model.t013;
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            m.list2 = new List<dynamic>();
@@ -70,17 +70,20 @@
                new("@banCi",banCi),
                new("@gongWei",gongWei),
                new("@badDescription",badDescription),
                  new("@t001",t001),
                    new("@t002",t002),
                      new("@t003",t003),
                        new("@t004",t004),
                          new("@t005",t005),
                            new("@t006",t006),
                              new("@t007",t007),
                                new("@t008",t008),
                                  new("@t009",t009),
                                    new("@t010",t010),
                                       new("@t011",t011),
                new("@t001",t001),
                new("@t002",t002),
                new("@t003",t003),
                new("@t004",t004),
                new("@t005",t005),
                new("@t006",t006),
                new("@t007",t007),
                new("@t008",t008),
                new("@t009",t009),
                new("@t010",t010),
                new("@t011",t011),
                new("@t012",t012),
                new("@t013",t013),
                new("@collectGuid",collectGuid),
            };
            var dset = new DataSet();
            try
@@ -122,7 +125,12 @@
            }
            catch (Exception ex)
            {
                LogHelper.Debug(this.ToString(), ex.Message);
                System.Text.StringBuilder sbLog = new System.Text.StringBuilder();
                sbLog.Append("_userGuid:" + _userGuid.ToString());
                sbLog.Append("processNo:" + processNo.ToString());
                sbLog.Append("gongWei:" + gongWei.ToString());
                sbLog.Append("inP4:" + barCode);
                LogHelper.Debug(this.ToString(), ex.Message + ":" + sbLog.ToString());
                m.outMsg = ex.Message;
                m.outSum = -1;
            }
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
@@ -153,18 +160,20 @@
            string remark = model.remark;
            string isBack = model.isBack;
            string isStatus = model.isStatus;
            string isZsm = model.isZsm;
            string isTbm = model.isTbm;
            string description = model.description;
            int? rtnInt = (int)ReturnCode.Default;
            System.Text.StringBuilder sbSql = new StringBuilder();
            if (!CheckGuid(guid))
            {
                guid= Guid.NewGuid().ToString();
                sbSql.Append("INSERT INTO [dbo].[WORK_PROCESS] ([guid] ,[processNo] ,[processName] ,[remark] ,[isBack] ,[isStatus] ,[description] ,[createBy] ,[createDate] ,[lastUpdateBy] ,[lastUpdateDate])");
                sbSql.Append(" values( '"+ guid + "',@processNo,@processName,@remark,@isBack,@isStatus,@description,'" + _userCode + "',getdate(),'" + _userCode + "',getdate())");
                sbSql.Append("INSERT INTO [dbo].[WORK_PROCESS] ([guid] ,[processNo] ,[processName] ,[remark] ,[isBack] ,[isStatus] ,[description] ,[createBy] ,[createDate] ,[lastUpdateBy] ,[lastUpdateDate],isZsm,isTbm)");
                sbSql.Append(" values( '"+ guid + "',@processNo,@processName,@remark,@isBack,@isStatus,@description,'" + _userCode + "',getdate(),'" + _userCode + "',getdate(),@isZsm,@isTbm)");
            }
            else
            {
                sbSql.Append("UPDATE [dbo].[WORK_PROCESS]  SET [processNo] =@processNo,[processName] =@processName,[remark] =@remark,[isBack] =@isBack,[isStatus] =@isStatus,[description] =@description,[lastUpdateBy] ='" + _userCode + "',[lastUpdateDate] =getdate() where guid='"+guid.ToString()+"'");
                sbSql.Append("UPDATE [dbo].[WORK_PROCESS]  SET [processNo] =@processNo,[processName] =@processName,[remark] =@remark,[isBack] =@isBack,[isStatus] =@isStatus,[description] =@description,[lastUpdateBy] ='" + _userCode + "',[lastUpdateDate] =getdate(),isZsm=@isZsm,isTbm=@isTbm where guid='" + guid.ToString()+"'");
            }
            SqlParameter[] parameters =
                   {
@@ -174,6 +183,8 @@
                        new("@isBack", isBack),
                        new("@isStatus", isStatus),
                        new("@description", description),
                        new("@isZsm", isZsm),
                        new("@isTbm", isTbm),
                    };
            try
            {
WebApi/Gs.Wom/WorkService/WorkTechniqueController.cs
@@ -35,7 +35,7 @@
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
        {
            string guid = model.guid.ToString();
            string guid = model.guid.ToString();// --这是产品的guid
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            SqlParameter[] parameters =
WebApi/Gs.Wom/WorkService/WorkWeightController.cs
@@ -46,8 +46,7 @@
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(),
                           "work_weight_lst error:" + ex.Message);
                LogHelper.Debug(ToString(), "work_weight_lst error:" + ex.Message);
            }
            if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)
                lst = dset.Tables[0].TableToDynamicList();
@@ -57,7 +56,7 @@
        /// <summary>
        ///     å¢žåŠ æˆ–ç¼–è¾‘å®žä½“
        ///     å¢žåŠ ä¸€æ¡é‡é‡ä¿¡æ¯
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
@@ -66,7 +65,7 @@
        {
            string lineId = model.lineId;
            string realWeight = model.realWeight;
            string realWeightTxt=model.realWeightTxt;
            string realWeightTxt = model.realWeightTxt;
            dynamic mObj = new ExpandoObject();
            mObj.outMsg = "";
            mObj.outSum = -1;
@@ -112,5 +111,92 @@
                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
        }
        /// <summary>
        ///    è¯»å–iqc称重
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<string?> GetIqcWeight([FromBody] dynamic model)
        {
            string? rtnInt = "";
            var dset = new DataSet();
            try
            {
                SqlParameter[] parameters =
                      {
                        new("@inLineId","")
                    };
                dset = DbHelperSQL.RunProcedure("iqc_detect01_get_weight", parameters, "0");
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), "GetIqcWeight error:" + ex.Message);
            }
            if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)
            {
                rtnInt = dset.Tables[0].Rows[0]["realWeight"].ToString();
            }
            return ReturnDto<string>.QuickReturn(rtnInt, ReturnCode.Success, "读取成功!");
        }
        /// <summary>
        ///   ç¼–辑iqc重量
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditIqcWeight([FromBody] dynamic model)
        {
            string iqcGuid = model.iqcGuid;
            string weightType = model.weightType;
            string weight = model.weight;
            dynamic mObj = new ExpandoObject();
            mObj.outMsg = "";
            mObj.outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[iqc_detect01_edt_weight]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@weightType", weightType),
                        new("@weight", weight),
                        new("@iqcGuid", iqcGuid),
                        new("@inEdtUserGuid", _userGuid),
                    };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        cmd.ExecuteNonQuery();
                        mObj.outMsg = parameters[0].Value.ToString();
                        mObj.outSum = int.Parse(parameters[1].Value.ToString());
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(), "iqc_detect01_edt_weight error:" + ex.Message);
                        mObj.outMsg = ex.Message;
                        mObj.outSum = -1;
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            if (mObj.outSum <= 0)
                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
        }
    }
}
WebApi/Gs.Ww/ProductionOrderManager.cs
@@ -25,7 +25,6 @@
                GetUserGuidAndOrgGuid(_http);
        }
        /// <summary>
        ///     è¯»å–列表,支持分页
        /// </summary>
@@ -183,9 +182,9 @@
                    {
                        LogHelper.Debug(ToString(),
                            "prc_ww_rwd_dj_submit error:" + ex.Message);
                        return ReturnDto<dynamic>.QuickReturn(m,
                            ReturnCode.Default,
                            ex.Message);
                        m.outMsg = ex.Message;
                        m.outSum = -1;
                    }
                    finally
                    {
@@ -193,8 +192,12 @@
                    }
                }
            }
            if (m.outSum <= 0)
                return ReturnDto<dynamic>.QuickReturn(m,
                               ReturnCode.Default,
                              "操作失败!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                "操作成功!");
              "操作成功!");
        }
    }
}
WebApi/Gs.Ww/WWBlDJManager.cs
@@ -145,6 +145,44 @@
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            // å½“审核时(_inFieldValue为"1"时)检查仓库
            if (_inFieldValue == "1")
            {
                try
                {
                    string warehouseCheckSql = @"
                        SELECT COUNT(1)
                        FROM MES_INV_ITEM_OUT_ITEMS b
                        LEFT JOIN MES_INV_ITEM_OUTS h ON h.GUID = b.ITEM_OUT_ID
                         left join MES_ITEM_BL_DETAIL bl on bl.id = b.item_dabid
                         left join WW_GD_DETAIL gdde on gdde.id = bl.dabGuid
                         left join WW_GD gd on gd.id = gdde.pid
                         left join (select h.ORDER_NO,b1.MATERIAL_CODE,b1.ERP_ID,b1.WAREHOUSE,h.ERP_PRODUCTION_ORDER_NO from PRODUCTION_ORDER_SUB b1 left join PRODUCTION_ORDER h on  h.ERP_PRODUCTION_ENTRY_CODE=b1.ERP_PRODUCTION_ENTRY_CODE) d
                         on gd.daa014 = ORDER_NO and d.MATERIAL_CODE = b.item_id
                        WHERE b.item_out_id = @inFieldValue
                        AND (d.WAREHOUSE IS NULL OR d.WAREHOUSE = '' OR d.WAREHOUSE = '0')";
                    var parameters = new[] {
                        new SqlParameter("@inFieldValue", _guid)
                    };
                    var emptyWarehouseCount = DbHelperSQL.GetSingle(warehouseCheckSql, parameters);
                    if (emptyWarehouseCount != null && Convert.ToInt32(emptyWarehouseCount) > 0)
                    {
                        m.outSum = -1;
                        m.outMsg = "对应的委外单的仓库为空,无法审核!";
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, m.outMsg);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(), "仓库检查失败:" + ex.Message);
                    m.outSum = -1;
                    m.outMsg = "仓库检查失败:" + ex.Message;
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, m.outMsg);
                }
            }
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("prc_ww_bldj_submit", conn))
WebApi/Gs.Ww/WWBlManager.cs
@@ -117,8 +117,8 @@
                    m = dr.RowToDynamic();
                    var _tb = dset.Tables[1].TableToDynamicList();
                    m.list = _tb;
                    var _tb2 = dset.Tables[2].TableToDynamicList();
                    m.list2 = _tb2;
                    //var _tb2 = dset.Tables[2].TableToDynamicList();
                    //m.list2 = _tb2;
                }
            }
            catch (Exception ex)
@@ -196,11 +196,10 @@
        public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
        {
            Guid? guid = model.guid; //主键
            string inOrgId = model.inOrgId; //
            string inGdId = model.inGdId; //工单号
            string inCkId = model.inCkId;//仓库
            string inYy = model.inYy;//原因
            string inType=model.inType;////出库类别
            string inOrgId = model.inOrgId;////出库类别
            string inWwGys = model.inWwGys;////出库类别
            var _sb = new StringBuilder();
            var _split = "|";
            foreach (var m in model.list)
@@ -235,12 +234,11 @@
                        new("@outGuid", SqlDbType.UniqueIdentifier),
                        new("@outNo", SqlDbType.NVarChar, 300),
                        new("@inOrderGuid",UtilityHelper.CheckGuid(guid)? guid : DBNull.Value),
                        new("@inOrgId", inOrgId),
                        new("@inCkId", inCkId),
                        new("@inGdId", inGdId),
                        new("@inYy", inYy),
                        new("@inType",inType),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inOrgId", inOrgId),
                        new("@inWwGys", inWwGys),
                        new("@inLineList", _sb.ToString())
                    };
                        parameters[0].Direction = ParameterDirection.Output;
@@ -258,7 +256,7 @@
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "prc_BL_edt error:" + ex.Message);
                            "prc_ww_BL_edt error:" + ex.Message);
                        mObj.outMsg = ex.Message;
                        mObj.outSum = -1;
                    }
@@ -282,7 +280,7 @@
        public ReturnDto<int?> DeleteModelOrMx([FromBody] dynamic model)
        {
            int? rtnInt = (int)ReturnCode.Default;
            Guid? guid = model.guid; //到货单主键
            Guid? guid = model.guid;
            string mxGuid = model.mxGuid;
            var _outMsg = "";
            var _outSum = -1;
@@ -317,7 +315,7 @@
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "prc_cgdhd_Edt error:" + ex.Message);
                            "prc_ww_BL_del error:" + ex.Message);
                        _outMsg = ex.Message;
                        _outSum = -1;
                    }
WebApi/Gs.Ww/WWGDManager.cs
@@ -119,8 +119,8 @@
                    m = dr.RowToDynamic();
                    var _tb = dset.Tables[1].TableToDynamicList();
                    m.list = _tb;
                    var _tb2 = dset.Tables[2].TableToDynamicList();
                    m.list2 = _tb2;
                    //var _tb2 = dset.Tables[2].TableToDynamicList();
                    //m.list2 = _tb2;
                }
            }
            catch (Exception ex)
@@ -190,66 +190,6 @@
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
        }
        /// <summary>
        ///     åˆ é™¤ä¸»è¡¨æˆ–明细
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<int?> DeleteModelOrMx([FromBody] dynamic model)
        {
            int? rtnInt = (int)ReturnCode.Default;
            Guid? guid = model.guid;
            string mxGuid = model.mxGuid;
            var _outMsg = "";
            var _outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_ww_gd_del]", conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid",
                            UtilityHelper.CheckGuid(guid)
                                ? guid
                                : DBNull.Value),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inMxGuid", mxGuid)
                    };
                        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_ww_gd_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);
        }
    }
WebApi/Gs.Ww/WWLLDJManager.cs
@@ -143,6 +143,45 @@
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            // å½“审核时(_inFieldValue为"1"时)检查仓库
            if (_inFieldValue == "1")
            {
                try
                {
                    string warehouseCheckSql = @"
                        SELECT COUNT(1)
                        FROM MES_INV_ITEM_OUT_C_DETAILS b
                        LEFT JOIN MES_INV_ITEM_OUTS h ON h.GUID = b.ITEM_OUT_ID
                        LEFT JOIN (
                            SELECT h.ORDER_NO, b1.MATERIAL_CODE, b1.WAREHOUSE, h.ERP_PRODUCTION_ORDER_NO
                            FROM PRODUCTION_ORDER_SUB b1
                            LEFT JOIN PRODUCTION_ORDER h ON h.ERP_PRODUCTION_ENTRY_CODE = b1.ERP_PRODUCTION_ENTRY_CODE
                        ) d ON h.work_no = d.ERP_PRODUCTION_ORDER_NO AND d.MATERIAL_CODE = b.item_id
                        WHERE b.item_out_id = @inFieldValue
                        AND (d.WAREHOUSE IS NULL OR d.WAREHOUSE = '' OR d.WAREHOUSE = '0')";
                    var parameters = new[] {
                        new SqlParameter("@inFieldValue", _guid)
                    };
                    var emptyWarehouseCount = DbHelperSQL.GetSingle(warehouseCheckSql, parameters);
                    if (emptyWarehouseCount != null && Convert.ToInt32(emptyWarehouseCount) > 0)
                    {
                        m.outSum = -1;
                        m.outMsg = "对应的委外单的仓库为空,无法审核!";
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, m.outMsg);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(), "仓库检查失败:" + ex.Message);
                    m.outSum = -1;
                    m.outMsg = "仓库检查失败:" + ex.Message;
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, m.outMsg);
                }
            }
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("prc_ww_lldj_submit", conn))
WebApi/Gs.Ww/WWTBlDJManager.cs
@@ -145,6 +145,44 @@
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            // å½“审核时(_inFieldValue为"1"时)检查仓库
            if (_inFieldValue == "1")
            {
                try
                {
                    string warehouseCheckSql = @"
                        SELECT COUNT(1)
                        FROM MES_INV_ITEM_IN_C_DETAILS b
                        LEFT JOIN MES_INV_ITEM_INS h ON h.GUID = b.ITEM_IN_ID
                        LEFT JOIN (
                            SELECT h.ORDER_NO, b1.MATERIAL_CODE, b1.WAREHOUSE, h.ERP_PRODUCTION_ORDER_NO
                            FROM PRODUCTION_ORDER_SUB b1
                            LEFT JOIN PRODUCTION_ORDER h ON h.ERP_PRODUCTION_ENTRY_CODE = b1.ERP_PRODUCTION_ENTRY_CODE
                        ) d ON h.work_no = d.ERP_PRODUCTION_ORDER_NO AND d.MATERIAL_CODE = b.item_id
                        WHERE b.item_in_id = @inFieldValue
                        AND (d.WAREHOUSE IS NULL OR d.WAREHOUSE = '' OR d.WAREHOUSE = '0')";
                    var parameters = new[] {
                        new SqlParameter("@inFieldValue", _guid)
                    };
                    var emptyWarehouseCount = DbHelperSQL.GetSingle(warehouseCheckSql, parameters);
                    if (emptyWarehouseCount != null && Convert.ToInt32(emptyWarehouseCount) > 0)
                    {
                        m.outSum = -1;
                        m.outMsg = "对应的委外单的仓库为空,无法审核!";
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, m.outMsg);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Debug(ToString(), "仓库检查失败:" + ex.Message);
                    m.outSum = -1;
                    m.outMsg = "仓库检查失败:" + ex.Message;
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, m.outMsg);
                }
            }
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("prc_ww_tbldj_Submit", conn))
WebApi/Gs.Ww/WWTblManager.cs
@@ -158,6 +158,7 @@
                var _line = m.AboutGuid + _split
                                        + m.Sl + _split
                                         + m.Remark + _split
                                        + m.Bllb + _split
                                        + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
                if (_sb.Length > 0)
                    _sb.Append("~");