添加读取配置的类。将数据库连接,接口地址写入到配置文件中,获取时通过配置文件获取
已添加15个文件
已修改31个文件
2107 ■■■■■ 文件已修改
MES.Service/DB/DbContext.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/DB/OracleSQLHelper.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/DB/Repository.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/DB/SqlSugarHelper.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/base/AppSettings.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/InventoryItem.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/InventoryItemDetail.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/MESInvItemOutItems.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/OutItemDto.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/PurchaseInventory.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/WarehouseQuery.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvItemInCItems.cs 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvItemOutItems.cs 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvItemOuts.cs 307 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/bin/Debug/net8.0/MES.Service.dll 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/bin/Debug/net8.0/MES.Service.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/bin/Release/net8.0/MES.Service.dll 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/bin/Release/net8.0/MES.Service.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvItemArnManager.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvItemInCDetailsManager.cs 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvItemInCItemsManager.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvItemOutItemsManager.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvItemOutsManager.cs 372 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/util/AppsettingsUtility.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/MesInvItemArnController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/MesInvItemInCItemsController.cs 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/MesInvItemOutItemsController.cs 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/MesInvItemOutsController.cs 308 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Startup.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/appsettings.json 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Debug/net8.0/MES.Service.dll 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Debug/net8.0/MES.Service.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Debug/net8.0/MESApplication.dll 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Debug/net8.0/MESApplication.exe 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Debug/net8.0/MESApplication.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Debug/net8.0/appsettings.json 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/MES.Service.dll 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/MES.Service.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/MESApplication.dll 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/MESApplication.exe 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/MESApplication.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/publish/MES.Service.dll 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/publish/MES.Service.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/publish/MESApplication.dll 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/publish/MESApplication.exe 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/bin/Release/net8.0/publish/MESApplication.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/DB/DbContext.cs
@@ -1,4 +1,5 @@
using SqlSugar;
using MES.Service.util;
using SqlSugar;
namespace MES.Service.DB;
@@ -12,7 +13,7 @@
    //mesQaItemXj02Context.Db.Queryable<MesQaItemXj02>().ToList();
    private static readonly string connectionString =
        "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.251)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = sg_prd; Password=sgprd"; // è¿™é‡Œæ›¿æ¢æˆä½ çš„实际连接字符串;
        AppsettingsUtility.Settings.DataBaseConn; // è¿™é‡Œæ›¿æ¢æˆä½ çš„实际连接字符串;
    /// <summary>
    ///     æ³¨æ„ï¼šä¸èƒ½å†™æˆé™æ€çš„ //用来处理事务多表查询和复杂的操作
MES.Service/DB/OracleSQLHelper.cs
@@ -1,4 +1,5 @@
using System.Data;
using MES.Service.util;
using Oracle.ManagedDataAccess.Client;
namespace MES.Service.DB;
@@ -8,8 +9,7 @@
/// </summary>
public class OracleSQLHelper
{
    public const string ConnectionString =
        "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.251)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = sg_prd; Password=sgprd";
    public readonly string ConnectionString =AppsettingsUtility.Settings.DataBaseConn;
    private readonly string _connectionString;
MES.Service/DB/Repository.cs
@@ -1,4 +1,5 @@
using SqlSugar;
using MES.Service.util;
using SqlSugar;
namespace MES.Service.DB;
@@ -7,8 +8,7 @@
    public static SqlSugarScope Db = new(new ConnectionConfig
        {
            DbType = DbType.Oracle,
            ConnectionString =
                @"Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.251)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = sg_prd; Password=sgprd",
            ConnectionString = AppsettingsUtility.Settings.DataBaseConn,
            IsAutoCloseConnection = true
        },
        db =>
MES.Service/DB/SqlSugarHelper.cs
@@ -1,11 +1,11 @@
using SqlSugar;
using MES.Service.util;
using SqlSugar;
namespace MES.Service.DB;
public class SqlSugarHelper
{
    private static readonly string _connectionString =
        "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.251)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = sg_prd; Password=sgprd"; // è¿™é‡Œæ›¿æ¢æˆä½ çš„实际连接字符串
    private static readonly string _connectionString =AppsettingsUtility.Settings.DataBaseConn; // è¿™é‡Œæ›¿æ¢æˆä½ çš„实际连接字符串
    public static SqlSugarClient GetInstance()
    {
MES.Service/Dto/base/AppSettings.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
namespace MES.Service.Dto.@base;
public class AppSettings
{
    public string TestErpUrl { get; set; }
    public string ProductionErpUrl { get; set; }
    public string DataBaseConn { get; set; }
}
MES.Service/Dto/service/InventoryItem.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
using SqlSugar;
namespace MES.Service.Dto.service;
public class InventoryItem
{
    [SugarColumn(ColumnName = "DEPOT")] public string Depot { get; set; }
    [SugarColumn(ColumnName = "ITEM_NO")] public string ItemNo { get; set; }
    [SugarColumn(ColumnName = "ITEM_MODEL")]
    public string ItemModel { get; set; }
    [SugarColumn(ColumnName = "ITEM_NAME")]
    public string ItemName { get; set; }
    [SugarColumn(ColumnName = "QTY")]
    public decimal Qty { get; set; } // ä½¿ç”¨ decimal æ¥è¡¨ç¤ºæ•°é‡
}
MES.Service/Dto/service/InventoryItemDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
using SqlSugar;
namespace MES.Service.Dto.service;
public class InventoryItemDetail
{
    [SugarColumn(ColumnName = "WORK_NO")] public string WorkNo { get; set; }
    [SugarColumn(ColumnName = "WORK_LINE")]
    public string WorkLine { get; set; }
    [SugarColumn(ColumnName = "ITEM_NO")] public string ItemNo { get; set; }
    [SugarColumn(ColumnName = "ITEM_NAME")]
    public string ItemName { get; set; }
    [SugarColumn(ColumnName = "ITEM_MODEL")]
    public string ItemModel { get; set; }
    [SugarColumn(ColumnName = "SUM_QUANTITY")]
    public decimal SumQuantity { get; set; }
    [SugarColumn(ColumnName = "UNIT")] public string Unit { get; set; }
    [SugarColumn(ColumnName = "SUPP_NO")] public string SuppNo { get; set; }
    [SugarColumn(ColumnName = "QUANTITY")] public decimal Quantity { get; set; }
    [SugarColumn(ColumnName = "REFUNDABLE_QUANTITY")]
    public decimal RefundableQuantity { get; set; }
    [SugarColumn(ColumnName = "CBILL_NO")] public string CbillNo { get; set; }
    [SugarColumn(ColumnName = "TASK_NO")] public string TaskNo { get; set; }
    [SugarColumn(ColumnName = "BILL_NO")] public string BillNo { get; set; }
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public string CreateDate { get; set; } // å¦‚果需要日期处理,可以考虑使用 DateTime ç±»åž‹
}
MES.Service/Dto/service/MESInvItemOutItems.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
using SqlSugar;
namespace MES.Service.Dto.service;
public class MESInvItemOutItems
{
    [SugarColumn(ColumnName = "REMARK")] public string Remark { get; set; }
    [SugarColumn(ColumnName = "PBILL_NO")] public string PbillNo { get; set; }
    [SugarColumn(ColumnName = "ITEM_OUT_ID")]
    public string ItemOutId { get; set; }
    [SugarColumn(ColumnName = "RK_QTY")] public decimal RkQty { get; set; }
    [SugarColumn(ColumnName = "TL_QTY")] public decimal TlQty { get; set; }
    [SugarColumn(ColumnName = "WORK_LINE")]
    public string WorkLine { get; set; }
    [SugarColumn(ColumnName = "QUANTITY")] public decimal Quantity { get; set; }
    [SugarColumn(ColumnName = "ITEM_NO")] public string ItemNo { get; set; }
    [SugarColumn(ColumnName = "KT_QTY")]
    public decimal KtQty { get; set; } // å‰©ä½™å¯é€€
    [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")]
    public string DepotSectionCode { get; set; }
    [SugarColumn(ColumnName = "ITEM_MODEL")]
    public string ItemModel { get; set; }
    [SugarColumn(ColumnName = "ITEM_NAME")]
    public string ItemName { get; set; }
    [SugarColumn(ColumnName = "CGB014")] public string Cgb014 { get; set; }
    [SugarColumn(ColumnName = "STAFF_NAME")]
    public string StaffName { get; set; }
    [SugarColumn(ColumnName = "DEPOT_CODE")]
    public string DepotCode { get; set; }
}
MES.Service/Dto/service/OutItemDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
using MES.Service.Modes;
namespace MES.Service.Dto.service;
public class OutItemDto
{
    public MesInvItemOuts Form { get; set; }
    public List<MesInvItemOutItems> SaveItems { get; set; }
    public List<MESInvItemOutItems> SelectItems { get; set; }
}
MES.Service/Dto/service/PurchaseInventory.cs
@@ -11,5 +11,5 @@
    public MesInvItemIns? ItemIns { get; set; }
    public List<MesInvItemInCDetails>? InvItemInCDetails { get; set; }
    public List<MesInvItemInCDetails>? ItemInDetails { get; set; }
    public List<MesInvItemInCItems>? ItemInDetails { get; set; }
}
MES.Service/Dto/service/WarehouseQuery.cs
@@ -17,4 +17,6 @@
    public short? status { get; set; }
    public DateTime? date { get; set; }
    public string? Type { get; set; }
    public string? DepotCode { get; set; }
    public string? SuppNo { get; set; }
}
MES.Service/Modes/MesInvItemInCItems.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,148 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     ç‰©æ–™å…¥åº“明细
/// </summary>
[SugarTable("MES_INV_ITEM_IN_C_ITEMS")]
public class MesInvItemInCItems
{
 /// <summary>
 ///     SEQ_OUT
 /// </summary>
 [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
    public decimal Id { get; set; }
 /// <summary>
 ///     å…¥åº“单id
 /// </summary>
 [SugarColumn(ColumnName = "ITEM_IN_ID", IsPrimaryKey = true)]
    public decimal ItemInId { get; set; }
 /// <summary>
 ///     éªŒæ”¶æ•°é‡
 /// </summary>
 [SugarColumn(ColumnName = "QUANTITY")]
    public decimal? Quantity { get; set; }
 /// <summary>
 ///     åˆ›å»ºäºº
 /// </summary>
 [SugarColumn(ColumnName = "CREATE_BY")]
    public string CreateBy { get; set; }
 /// <summary>
 ///     åˆ›å»ºæ—¶é—´
 /// </summary>
 [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
 /// <summary>
 ///     æœ€åŽæ›´æ–°äºº
 /// </summary>
 [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string LastupdateBy { get; set; }
 /// <summary>
 ///     æœ€åŽæ›´æ–°æ—¶é—´
 /// </summary>
 [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
 /// <summary>
 ///     ç‰©æ–™ç¼–码
 /// </summary>
 [SugarColumn(ColumnName = "ITEM_NO")]
    public string ItemNo { get; set; }
 /// <summary>
 ///     ä»“库编码
 /// </summary>
 [SugarColumn(ColumnName = "DEPOT_CODE")]
    public string DepotCode { get; set; }
 /// <summary>
 ///     è´§ä½ç¼–码
 /// </summary>
 [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")]
    public string DepotSectionCode { get; set; }
 /// <summary>
 ///     ç‰¹è®°äº‹é¡¹
 /// </summary>
 [SugarColumn(ColumnName = "REMARK")]
    public string Remark { get; set; }
 /// <summary>
 ///     ç‰©æ–™ç®€ç§°
 /// </summary>
 [SugarColumn(ColumnName = "ITEM_SNAME")]
    public string ItemSname { get; set; }
 /// <summary>
 ///     å•位
 /// </summary>
 [SugarColumn(ColumnName = "UNIT")]
    public string Unit { get; set; }
 /// <summary>
 ///     é‡‡è´­è®¢å•
 /// </summary>
 [SugarColumn(ColumnName = "EBELN")]
    public string Ebeln { get; set; }
 /// <summary>
 ///     å…¥åº“单号
 /// </summary>
 [SugarColumn(ColumnName = "BILL_NO")]
    public string BillNo { get; set; }
 /// <summary>
 ///     åˆ†åŽ‚ç¼–ç 
 /// </summary>
 [SugarColumn(ColumnName = "FACTORY")]
    public string Factory { get; set; }
 /// <summary>
 ///     å…¬å¸ä»£ç 
 /// </summary>
 [SugarColumn(ColumnName = "COMPANY")]
    public string Company { get; set; }
 /// <summary>
 ///     ä»»åŠ¡å•å·
 /// </summary>
 [SugarColumn(ColumnName = "WORK_NO")]
    public string WorkNo { get; set; }
 /// <summary>
 ///     è¡Œå·
 /// </summary>
 [SugarColumn(ColumnName = "EBELN_LINE_NO")]
    public decimal? EbelnLineNo { get; set; }
 /// <summary>
 ///     åˆ°è´§å•号
 /// </summary>
 [SugarColumn(ColumnName = "CBILL_NO")]
    public string CbillNo { get; set; }
 /// <summary>
 ///     ä»»åŠ¡å•è¡Œå·
 /// </summary>
 [SugarColumn(ColumnName = "WORK_LINE")]
    public decimal? WorkLine { get; set; }
 /// <summary>
 ///     ç”Ÿäº§å·¥å•
 /// </summary>
 [SugarColumn(ColumnName = "TASK_NO")]
    public string TaskNo { get; set; }
 /// <summary>
 ///     ä¾›åº”商
 /// </summary>
 [SugarColumn(ColumnName = "SUPP_NO")]
    public string SuppNo { get; set; }
}
MES.Service/Modes/MesInvItemOutItems.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,210 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     å‡ºåº“申请物料表
/// </summary>
[SugarTable("MES_INV_ITEM_OUT_ITEMS")]
public class MesInvItemOutItems
{
    /// <summary>
    ///     SEQ_ITEM_ID
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_INV_ID",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     å‡ºåº“ID
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_OUT_ID")]
    public decimal? ItemOutId { get; set; }
    /// <summary>
    ///     ç‰©æ–™ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_NO")]
    public string? ItemNo { get; set; }
    /// <summary>
    ///     ç”³è¯·æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "QUANTITY")]
    public decimal? Quantity { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string? CreateBy { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string? LastupdateBy { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
    /// <summary>
    ///     å¤‡æ³¨ä¿¡æ¯
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string? Remark { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string? Factory { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string? Company { get; set; }
    /// <summary>
    ///     æŽ¨ä»‹ä»“库
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_CODE")]
    public string? DepotCode { get; set; }
    /// <summary>
    ///     æŽ¨ä»‹åº“位
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")]
    public string? DepotSectionCode { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "TASK_NO")]
    public string? TaskNo { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "WORK_NO")]
    public string? WorkNo { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "WORK_LINE")]
    public decimal? WorkLine { get; set; }
    /// <summary>
    ///     ERP ä¸»è¡¨ID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_ID")]
    public decimal? ErpId { get; set; }
    /// <summary>
    ///     ERP ä»Žè¡¨ID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_AUTOID")]
    public decimal? ErpAutoid { get; set; }
    /// <summary>
    ///     ERP_料号
    /// </summary>
    [SugarColumn(ColumnName = "ERP_ITEM_NO")]
    public string? ErpItemNo { get; set; }
    /// <summary>
    ///     é¢œè‰²
    /// </summary>
    [SugarColumn(ColumnName = "COLOR_NAME")]
    public string? ColorName { get; set; }
    /// <summary>
    ///     æœ€æ–°ä¸‹è½½æ›´æ–°æ ‡è¯†
    /// </summary>
    [SugarColumn(ColumnName = "UPDATE_FLG")]
    public decimal? UpdateFlg { get; set; }
    /// <summary>
    ///     é‡‡è´­å•ID
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_K3ID")]
    public decimal? EbelnK3id { get; set; }
    /// <summary>
    ///     é‡‡è´­å•行ID
    /// </summary>
    [SugarColumn(ColumnName = "LINE_K3ID")]
    public decimal? LineK3id { get; set; }
    /// <summary>
    ///     é‡‡è´­å•号
    /// </summary>
    [SugarColumn(ColumnName = "EBELN")]
    public string? Ebeln { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•行号
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_LINE")]
    public decimal? EbelnLine { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•数量
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_QTY")]
    public decimal? EbelnQty { get; set; }
    /// <summary>
    ///     äº§å“ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_ITEM")]
    public string? BoardItem { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "F_TYPE")]
    public decimal? FType { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "STATUS")]
    public decimal? Status { get; set; }
    /// <summary>
    ///     å­å­è¡¨ID
    /// </summary>
    [SugarColumn(ColumnName = "ALLOCATEID")]
    public decimal? Allocateid { get; set; }
    /// <summary>
    ///     é¢†æ–™ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "PBILL_NO")]
    public string? PbillNo { get; set; }
    /// <summary>
    ///     erp接口返回
    /// </summary>
    [SugarColumn(ColumnName = "ERP_MARK")]
    public string? ErpMark { get; set; }
    /// <summary>
    ///     å…¥åº“单号
    /// </summary>
    [SugarColumn(ColumnName = "RK_NO")]
    public string? RkNo { get; set; }
    /// <summary>
    ///     å·²å…¥åº“æ•°
    /// </summary>
    [SugarColumn(ColumnName = "RK_QTY")]
    public decimal? RkQty { get; set; }
    /// <summary>
    ///     å·²æ‰«æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "TL_QTY")]
    public decimal? TlQty { get; set; }
}
MES.Service/Modes/MesInvItemOuts.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,307 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     ç‰©æ–™å‡ºåº“表
/// </summary>
[SugarTable("MES_INV_ITEM_OUTS")]
public class MesInvItemOuts
{
    /// <summary>
    ///     SEQ_INV_ID
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_INV_ID",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     å‡ºåº“单号
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_OUT_NO")]
    public string? ItemOutNo { get; set; }
    /// <summary>
    ///     ç”Ÿäº§è®¢å•
    /// </summary>
    [SugarColumn(ColumnName = "TASK_NO")]
    public string? TaskNo { get; set; }
    /// <summary>
    ///     å·¥åºå·
    /// </summary>
    [SugarColumn(ColumnName = "PROC_NO")]
    public string? ProcNo { get; set; }
    /// <summary>
    ///     çŠ¶æ€|0-未审核1-审核
    /// </summary>
    [SugarColumn(ColumnName = "STATUS")]
    public decimal? Status { get; set; }
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string? CreateBy { get; set; }
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    ///     æœ€åŽæ›´æ–°äºº
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string? LastupdateBy { get; set; }
    /// <summary>
    ///     æœ€åŽæ›´æ–°æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
    /// <summary>
    ///     å•据类型ID
    /// </summary>
    [SugarColumn(ColumnName = "BILL_TYPE_ID")]
    public decimal? BillTypeId { get; set; }
    /// <summary>
    ///     äº‹åŠ¡ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "TRANSACTION_NO")]
    public decimal? TransactionNo { get; set; }
    /// <summary>
    ///     å¤‡æ³¨ä¿¡æ¯
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string? Remark { get; set; }
    /// <summary>
    ///     å‡ºåº“原因
    /// </summary>
    [SugarColumn(ColumnName = "REASON")]
    public string? Reason { get; set; }
    /// <summary>
    ///     ç”Ÿäº§çº¿ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "PRODUCE_LINE_NO")]
    public string? ProduceLineNo { get; set; }
    /// <summary>
    ///     å®¡æ ¸äºº
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_USER")]
    public string? CheckUser { get; set; }
    /// <summary>
    ///     å®¡æ ¸æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_DATE")]
    public DateTime? CheckDate { get; set; }
    /// <summary>
    ///     é¢†æ–™æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "OUT_DATE")]
    public DateTime? OutDate { get; set; }
    /// <summary>
    ///     é¢†æ–™å·¥æ®µ
    /// </summary>
    [SugarColumn(ColumnName = "MMLIST")]
    public string? Mmlist { get; set; }
    /// <summary>
    ///     å­åº“CODE
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_CODE")]
    public string? DepotCode { get; set; }
    /// <summary>
    ///     SAP返回单据
    /// </summary>
    [SugarColumn(ColumnName = "SAPNO")]
    public string? Sapno { get; set; }
    /// <summary>
    ///     æ˜¯å¦å·²å›žå†™SAP
    /// </summary>
    [SugarColumn(ColumnName = "SAPSTATUS")]
    public short? Sapstatus { get; set; }
    /// <summary>
    ///     SAP返回年份
    /// </summary>
    [SugarColumn(ColumnName = "SAPYEAR")]
    public short? Sapyear { get; set; }
    /// <summary>
    ///     SAP返回信息
    /// </summary>
    [SugarColumn(ColumnName = "SAPTEXT")]
    public string? Saptext { get; set; }
    /// <summary>
    ///     å·¥åºçº¿ä½“
    /// </summary>
    [SugarColumn(ColumnName = "PROC_LINE_NO")]
    public string? ProcLineNo { get; set; }
    /// <summary>
    ///     é¢†æ–™éƒ¨é—¨
    /// </summary>
    [SugarColumn(ColumnName = "OUT_PART")]
    public string? OutPart { get; set; }
    /// <summary>
    ///     0 ç”Ÿäº§,1 å§”外
    /// </summary>
    [SugarColumn(ColumnName = "F_TYPE")]
    public long? FType { get; set; }
    /// <summary>
    ///     å½•入提交
    /// </summary>
    [SugarColumn(ColumnName = "OUT_STATUS")]
    public decimal? OutStatus { get; set; }
    /// <summary>
    ///     æ˜¯å¦å¯è§
    /// </summary>
    [SugarColumn(ColumnName = "IS_VISUAL")]
    public decimal? IsVisual { get; set; }
    /// <summary>
    ///     æŽ¥æ”¶äºº
    /// </summary>
    [SugarColumn(ColumnName = "RECEIVER")]
    public string? Receiver { get; set; }
    /// <summary>
    ///     å·¥åŽ‚ç¼–å·
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string? Factory { get; set; }
    /// <summary>
    ///     å…¬å¸ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string? Company { get; set; }
    /// <summary>
    ///     å†²é”€äº‹åŠ¡ç±»åž‹ç¼–ç 
    /// </summary>
    [SugarColumn(ColumnName = "MTRANSCTION_NO")]
    public decimal? MtransctionNo { get; set; }
    /// <summary>
    ///     ä»»åŠ¡å•å·
    /// </summary>
    [SugarColumn(ColumnName = "WORK_NO")]
    public string? WorkNo { get; set; }
    /// <summary>
    ///     ä»»åŠ¡å•å·è¡Œå·
    /// </summary>
    [SugarColumn(ColumnName = "WORK_LINE")]
    public decimal? WorkLine { get; set; }
    /// <summary>
    ///     ä¾›åº”商编号
    /// </summary>
    [SugarColumn(ColumnName = "SUPP_NO")]
    public string? SuppNo { get; set; }
    /// <summary>
    ///     è®¢å•号
    /// </summary>
    [SugarColumn(ColumnName = "CMPOCODE")]
    public string? Cmpocode { get; set; }
    /// <summary>
    ///     åŽŸç‰©æ–™å‡ºè´§æ ‡è¯†
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_FLAG")]
    public decimal? ItemFlag { get; set; }
    /// <summary>
    ///     1=半成品出货
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_FLAG")]
    public decimal? BoardFlag { get; set; }
    /// <summary>
    ///     å‡ºåº“类别
    /// </summary>
    [SugarColumn(ColumnName = "OUT_TYPE")]
    public string? OutType { get; set; }
    /// <summary>
    ///     ä¸šåŠ¡ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "BUSINESS_TYPE")]
    public string? BusinessType { get; set; }
    /// <summary>
    ///     äº§å“ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_ITEM")]
    public string? BoardItem { get; set; }
    /// <summary>
    ///     äº§é‡
    /// </summary>
    [SugarColumn(ColumnName = "PLAN_QTY")]
    public decimal? PlanQty { get; set; }
    /// <summary>
    ///     é¢†æ–™ç¼–号/委外订单
    /// </summary>
    [SugarColumn(ColumnName = "PBILL_NO")]
    public string? PbillNo { get; set; }
    /// <summary>
    ///     è¡¥æ–™ç”³è¯·å•号
    /// </summary>
    [SugarColumn(ColumnName = "BBILL_NO")]
    public string? BbillNo { get; set; }
    /// <summary>
    ///     æ ‡è¯† /1已推送
    /// </summary>
    [SugarColumn(ColumnName = "NFLAG")]
    public short? Nflag { get; set; }
    /// <summary>
    ///     é€€æ–™æ–¹å¼
    /// </summary>
    [SugarColumn(ColumnName = "FMRMODE")]
    public string? Fmrmode { get; set; }
    /// <summary>
    ///     erp返回信息
    /// </summary>
    [SugarColumn(ColumnName = "MSG")]
    public string? Msg { get; set; }
    /// <summary>
    ///     çŠ¶æ€
    /// </summary>
    [SugarColumn(ColumnName = "STATES")]
    public string? States { get; set; }
    [SugarColumn(IsIgnore = true)] public string? DepotName { get; set; }
    [SugarColumn(IsIgnore = true)] public string? SuppName { get; set; }
    [SugarColumn(IsIgnore = true)] public string? CreateByFname { get; set; }
    [SugarColumn(IsIgnore = true)] public string? CheckUserFname { get; set; }
}
MES.Service/bin/Debug/net8.0/MES.Service.dll
Binary files differ
MES.Service/bin/Debug/net8.0/MES.Service.pdb
Binary files differ
MES.Service/bin/Release/net8.0/MES.Service.dll
Binary files differ
MES.Service/bin/Release/net8.0/MES.Service.pdb
Binary files differ
MES.Service/service/Warehouse/MesInvItemArnManager.cs
@@ -49,4 +49,18 @@
        return result;
    }
    public List<MesSupplier> GetSuppliers()
    {
        return Db.Queryable<MesInvItemArn, MesSupplier>((a, b) =>
                new JoinQueryInfos(JoinType.Left, a.SuppNo == b.SuppNo))
            .GroupBy((a, b) => new { b.Id, a.SuppNo, b.SuppName })
            .Select((a, b) => new MesSupplier
            {
                SuppNo = a.SuppNo,
                SuppName = b.SuppName,
                Id = b.Id
            })
            .ToList();
    }
}
MES.Service/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -1,7 +1,10 @@
using System.Data;
using MES.Service.DB;
using MES.Service.Dto.@base;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using SqlSugar;
using DbType = System.Data.DbType;
@@ -11,8 +14,6 @@
public class MesInvItemInCDetailsManager : Repository<MesInvItemInCDetails>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    private readonly MessageCenterManager _messageCenterManager = new();
    public PurchaseInventory SaveBarCodes(WarehouseQuery entity)
    {
@@ -27,7 +28,7 @@
        // ä½¿ç”¨ SqlSugar æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹
        Db.Ado.ExecuteCommand(
            "BEGIN prc_rf_pda_scan_in_barcode(:c_in_str, :c_result); END;",
            "BEGIN prc_rf_pda_scan_in_barcode_N(:c_in_str, :c_result); END;",
            new SugarParameter("c_in_str", inputParam,
                DbType.String), outputParam);
@@ -108,36 +109,10 @@
            }).ToPageList(query.PageIndex, query.Limit);
    }
    public List<MesInvItemInCDetails> GetItemInDetails(decimal? pid)
    public List<MesInvItemInCItems> GetItemInDetails(decimal? pid)
    {
        var result = Db.Queryable<MesInvItemInCDetails, MesItems>(
                (g, c) => new JoinQueryInfos(
                    JoinType.Left,
                    g.ItemNo == c.ItemNo && g.Company == c.Company &&
                    g.Factory == c.Factory
                )
            )
            .WhereIF(pid > 0, (g, c) => g.ItemInId == pid)
            .GroupBy((g, c) => new
            {
                g.Company, g.Factory, g.ItemInId, g.WorkNo, g.ItemNo,
                g.BoardStyle, g.WorkLine, c.ItemName, c.ItemModel, c.ItemUnit
            })
            .Select((g, c) => new MesInvItemInCDetails
            {
                Company = g.Company,
                Factory = g.Factory,
                ItemInId = g.ItemInId,
                WorkNo = g.WorkNo,
                ItemNo = g.ItemNo,
                ItemName = c.ItemName,
                ItemModel = c.ItemModel,
                ItemUnit = c.ItemUnit,
                BoardStyle = g.BoardStyle,
                WorkLine = g.WorkLine,
                SumQuantity = SqlFunc.AggregateSum(g.Quantity) // èšåˆè®¡ç®—
            })
            .ToList();
        var result = Db.Queryable<MesInvItemInCItems>()
            .WhereIF(pid > 0, g => g.ItemInId == pid).ToList();
        return result;
    }
@@ -170,7 +145,7 @@
        return result;
    }
    public MessageCenter MesToErpParam(WarehouseQuery query)
    {
        var erpParameters = "";
@@ -187,10 +162,11 @@
            title = "采购入库单" + query.billNo + "反审核";
        }
        string ErpUrl = AppsettingsUtility.Settings.TestErpUrl;
        var message = new MessageCenter
        {
            TableName = tableName,
            Url = "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo",
            Url = ErpUrl,
            Status = 1,
            CreateBy = query.userName,
            Route = query.billNo,
@@ -255,7 +231,7 @@
        if (invItemIns.Status == 1) throw new Exception("入库单已审核,不能重复推送");
        var materials = Db.Queryable<MesInvItemInCDetails, MesItems, MesUnit,
        var materials = Db.Queryable<MesInvItemInCItems, MesItems, MesUnit,
            MesInvItemArnDetail>(
            (g, c, d, a) => new JoinQueryInfos(
                JoinType.Left,
MES.Service/service/Warehouse/MesInvItemInCItemsManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
using MES.Service.DB;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.Warehouse;
public class MesInvItemInCItemsManager : Repository<MesInvItemInCItems>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesInvItemInCItemsManager.cs
    #region æ•™å­¦æ–¹æ³•
    /// <summary>
    ///     ä»“储方法满足不了复杂业务需求,业务代码请在这里面定义方法
    /// </summary>
    public void Study()
    {
        /*********查询*********/
        var data1 = base.GetById(1); //根据ID查询
        var data2 = base.GetList(); //查询所有
        var data3 = base.GetList(it => 1 == 1); //根据条件查询
        //var data4 = base.GetSingle(it => 1 == 1);//根据条件查询一条,如果超过一条会报错
        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // åˆ†é¡µæŸ¥è¯¢
        var data5 = base.GetPageList(it => 1 == 1, p);
        Console.Write(p.TotalCount); //返回总数
        var data6 = base.GetPageList(it => 1 == 1, p,
            it => SqlFunc.GetRandom()); // åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount); //返回总数
        var
            conModels =
                new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel
        {
            FieldName = typeof(MesInvItemInCItems).GetProperties()[0].Name,
            ConditionalType = ConditionalType.Equal, FieldValue = "1"
        }); //id=1
        var data7 = base.GetPageList(conModels, p,
            it => SqlFunc.GetRandom());
        AsQueryable().Where(x => 1 == 1)
            .ToList(); //支持了转换成queryable,我们可以用queryable实现复杂功能
        /*********插入*********/
        var insertData = new MesInvItemInCItems(); //测试参数
        var insertArray = new[] { insertData };
        base.Insert(insertData); //插入
        base.InsertRange(insertArray); //批量插入
        var id = base.InsertReturnIdentity(insertData); //插入返回自增列
        AsInsertable(insertData)
            .ExecuteCommand(); //我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new MesInvItemInCItems(); //测试参数
        var updateArray = new[] { updateData }; //测试参数
        base.Update(updateData); //根据实体更新
        base.UpdateRange(updateArray); //批量更新
        //base.Update(it => new MesInvItemInCItems() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=1
        AsUpdateable(updateData)
            .ExecuteCommand(); //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new MesInvItemInCItems(); //测试参数
        base.Delete(deldata); //根据实体删除
        base.DeleteById(1); //根据主键删除
        base.DeleteById(new[] { 1, 2 }); //根据主键数组删除
        base.Delete(it => 1 == 2); //根据条件删除
        AsDeleteable().Where(it => 1 == 2)
            .ExecuteCommand(); //转成Deleteable实现复杂的操作
    }
    #endregion
}
MES.Service/service/Warehouse/MesInvItemOutItemsManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
using MES.Service.DB;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.Warehouse;
public class MesInvItemOutItemsManager : Repository<MesInvItemOutItems>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesInvItemOutItemsManager.cs
    #region æ•™å­¦æ–¹æ³•
    /// <summary>
    ///     ä»“储方法满足不了复杂业务需求,业务代码请在这里面定义方法
    /// </summary>
    public void Study()
    {
        /*********查询*********/
        var data1 = base.GetById(1); //根据ID查询
        var data2 = base.GetList(); //查询所有
        var data3 = base.GetList(it => 1 == 1); //根据条件查询
        //var data4 = base.GetSingle(it => 1 == 1);//根据条件查询一条,如果超过一条会报错
        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // åˆ†é¡µæŸ¥è¯¢
        var data5 = base.GetPageList(it => 1 == 1, p);
        Console.Write(p.TotalCount); //返回总数
        var data6 =
            base.GetPageList(it => 1 == 1, p,
                it => SqlFunc.GetRandom()); // åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount); //返回总数
        var conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel
        {
            FieldName = typeof(MesInvItemOutItems).GetProperties()[0].Name,
            ConditionalType = ConditionalType.Equal, FieldValue = "1"
        }); //id=1
        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
        AsQueryable().Where(x => 1 == 1)
            .ToList(); //支持了转换成queryable,我们可以用queryable实现复杂功能
        /*********插入*********/
        var insertData = new MesInvItemOutItems(); //测试参数
        var insertArray = new[] { insertData };
        base.Insert(insertData); //插入
        base.InsertRange(insertArray); //批量插入
        var id = base.InsertReturnIdentity(insertData); //插入返回自增列
        AsInsertable(insertData).ExecuteCommand(); //我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new MesInvItemOutItems(); //测试参数
        var updateArray = new[] { updateData }; //测试参数
        base.Update(updateData); //根据实体更新
        base.UpdateRange(updateArray); //批量更新
        //base.Update(it => new MesInvItemOutItems() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=1
        AsUpdateable(updateData).ExecuteCommand(); //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new MesInvItemOutItems(); //测试参数
        base.Delete(deldata); //根据实体删除
        base.DeleteById(1); //根据主键删除
        base.DeleteById(new[] { 1, 2 }); //根据主键数组删除
        base.Delete(it => 1 == 2); //根据条件删除
        AsDeleteable().Where(it => 1 == 2)
            .ExecuteCommand(); //转成Deleteable实现复杂的操作
    }
    #endregion
}
MES.Service/service/Warehouse/MesInvItemOutsManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,372 @@
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.Warehouse;
public class MesInvItemOutsManager : Repository<MesInvItemOuts>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesInvItemOutsManager.cs
    public bool Audit(WarehouseQuery query)
    {
        // å®¡æ ¸å‰æ ¡éªŒ
        Validate(query);
        //审核
        return Db.Updateable<MesInvItemOuts>()
            .SetColumns(s => s.Status == 1)
            .SetColumns(s => s.CheckUser == query.userName)
            .SetColumns(s => s.CheckDate == DateTime.Now)
            .Where(s => s.Id == query.id).ExecuteCommand() > 0;
    }
    public void Validate(WarehouseQuery query)
    {
        // æ ¡éªŒå•号是否正确
        var mesInvItemOuts = Db.Queryable<MesInvItemOuts>()
            .Where(o => o.ItemOutNo == query.billNo)
            .Single();
        if (mesInvItemOuts == null)
            throw new Exception("没找到" + query.billNo + " å¯¹åº”的采购退货单,请检查");
        // æ ¡éªŒå­è¡¨æ•°æ®
        var itemOutItems = Db.Queryable<MesInvItemOutItems>()
            .Where(o => o.ItemOutId == mesInvItemOuts.Id)
            .ToList();
        var sql = string.Empty;
        var P_Msg = string.Empty;
        foreach (var item in itemOutItems)
        {
            // åˆ¤æ–­ç”³è¯·æ•°é‡æ˜¯å¦å¤§äºŽå‰©ä½™å¯é€€æ•°é‡
            sql = string.Format(
                @"SELECT NVL(s1.RK_QTY, 0) - NVL(KT_QTY, 0) KT_QTY --剩余可退
            FROM MES_INV_ITEM_OUT_ITEMS C
            LEFT JOIN (SELECT SUM(QUANTITY) KT_QTY,
                              ITEM_NO,
                              PBILL_NO,
                              RK_NO,
                              WORK_LINE
                         FROM MES_INV_ITEM_OUT_ITEMS
                        GROUP BY ITEM_NO, PBILL_NO, WORK_LINE,RK_NO) U
              ON U.ITEM_NO = C.ITEM_NO
             AND U.WORK_LINE = C.WORK_LINE
             AND U.PBILL_NO = C.PBILL_NO
             AND U.RK_NO = C.RK_NO
            LEFT JOIN (SELECT SUM(QUANTITY) RK_QTY,
                              ITEM_NO,
                              EBELN,
                              WORK_LINE,BILL_NO
                         FROM MES_INV_ITEM_IN_C_ITEMS
                        GROUP BY ITEM_NO, EBELN, WORK_LINE,BILL_NO) s1
              ON S1.ITEM_NO = C.ITEM_NO
             AND S1.WORK_LINE = C.WORK_LINE
             AND S1.EBELN = C.PBILL_NO
                AND S1.BILL_NO = C.RK_NO
           WHERE C.ID = {0}", item.Id);
            var sy_Qty = Db.Ado.SqlQuery<decimal>(sql);
            if (sy_Qty != null && sy_Qty[0] < 0)
            {
                P_Msg =
                    $"采购订单:{item.PbillNo},行:{item.WorkLine},物料:{item.ItemNo} ç”³è¯·æ•°é‡å¤§äºŽå‰©ä½™å¯æ”¶æ•°é‡";
                throw new Exception(P_Msg);
            }
            // åˆ¤æ–­è¡Œæ˜¯å¦é‡å¤
            var cf_Num = Db.Queryable<MesInvItemOutItems>()
                .Where(s1 => s1.ItemNo == item.ItemNo &&
                             s1.WorkLine == item.WorkLine &&
                             s1.PbillNo == item.PbillNo &&
                             s1.ItemOutId == mesInvItemOuts.Id &&
                             s1.RkNo == item.RkNo)
                .Count();
            if (cf_Num > 1)
            {
                P_Msg =
                    $"采购订单:{item.PbillNo},行:{item.WorkLine},物料:{item.ItemNo}重复请删除其中一条数据";
                throw new Exception(P_Msg);
            }
        }
        // æ ¡éªŒä¸»è¡¨å†…容是否被删掉
        // ä¸»è¡¨ä»“库编码
        if (string.IsNullOrEmpty(mesInvItemOuts.DepotCode))
        {
            P_Msg = "仓库编码为空,请检查";
            throw new Exception(P_Msg);
        }
        var supplierExists = Db.Queryable<MesSupplier>()
            .Any(supplier => supplier.SuppNo == mesInvItemOuts.SuppNo);
        if (!supplierExists)
        {
            P_Msg = $"供应商编码 {mesInvItemOuts.SuppNo} åœ¨ç³»ç»Ÿä¸­ä¸å­˜åœ¨ï¼Œè¯·æ£€æŸ¥";
            throw new Exception(P_Msg);
        }
        // å­è¡¨è¡Œä¸Žä¸»è¡¨ç¬¦åˆæ€§æ ¡éªŒ
        foreach (var j in itemOutItems)
        {
            // æ ¡éªŒå­è¡¨å¯¹åº”采购订单的供应商编码
            var c_SuppNo = Db.Queryable<MesRohIn, MesSupplier>(
                    (roh, supp) => new JoinQueryInfos(
                        JoinType.Left,
                        roh.Supplier == supp.Id.ToString()
                    ))
                .Where(roh => roh.BillNo == j.PbillNo)
                .Select((roh, supp) => supp.SuppNo)
                .Single();
            if (c_SuppNo == null)
            {
                P_Msg = $"子表行供应商编码 {c_SuppNo} åœ¨ç³»ç»Ÿä¸­æœªæ‰¾åˆ°";
                throw new Exception(P_Msg);
            }
            if (mesInvItemOuts.SuppNo != c_SuppNo)
            {
                P_Msg =
                    $"子表采购订单行的供应商编码 {c_SuppNo} ä¸Žä¸»è¡¨ä¾›åº”商编码 {mesInvItemOuts.SuppNo} ä¸ä¸€è‡´ï¼Œè¯·æ£€æŸ¥";
                throw new Exception(P_Msg);
            }
            // æ ¡éªŒå­è¡¨å§”外采购类型和主表类型是否一致
            if (j.FType != mesInvItemOuts.FType)
            {
                P_Msg =
                    $"子表委外类型:{j.FType},与主表委外类型:{mesInvItemOuts.FType},不一致,请检查";
                throw new Exception(P_Msg);
            }
            // æ£€æŸ¥å­è¡¨ä»“库是否和主表仓库一致
            if (j.DepotCode != mesInvItemOuts.DepotCode)
            {
                P_Msg =
                    $"子表仓库编码:{j.DepotCode} ä¸Žä¸»è¡¨ä»“库编码:{mesInvItemOuts.DepotCode},不一致,请检查";
                throw new Exception(P_Msg);
            }
        }
    }
    public OutItemDto SaveCombination(OutItemDto dto)
    {
        var mesInvItemOuts = dto.Form;
        mesInvItemOuts.Status = 0;
        mesInvItemOuts.BoardFlag = 0;
        mesInvItemOuts.Sapstatus = 0;
        mesInvItemOuts.OutStatus = 0;
        mesInvItemOuts.ItemFlag = 0;
        mesInvItemOuts.IsVisual = 1;
        mesInvItemOuts.TransactionNo = 203;
        mesInvItemOuts.Factory = "1000";
        mesInvItemOuts.Company = "1000";
        //返回ID
        var id = Db.Insertable(mesInvItemOuts)
            .ExecuteReturnIdentity();
        if (id <= 0) throw new Exception("插入错误");
        mesInvItemOuts.Id = id;
        dto.SaveItems.ForEach(s =>
        {
            s.ItemOutId = id;
            s.Factory = "1000";
            s.Company = "1000";
            s.Status = 0;
            s.DepotCode = mesInvItemOuts.DepotCode;
            s.FType = mesInvItemOuts.FType;
            s.CreateBy = mesInvItemOuts.CreateBy;
            s.CreateDate = mesInvItemOuts.CreateDate;
        });
        var insertable = Db.Insertable(dto.SaveItems)
            .ExecuteCommand();
        if (insertable < 0) throw new Exception("插入错误");
        var query = new WarehouseQuery();
        query.id = id;
        dto.SelectItems = GetItems(query);
        return dto;
    }
    public List<MesInvItemOuts> GetPage(WarehouseQuery query)
    {
        return
            Db.Queryable<MesInvItemOuts, MesDepots, MesSupplier, SysUser,
                    SysUser>((a, e, i, u1, u3) =>
                    new JoinQueryInfos(
                        JoinType.Left,
                        a.DepotCode == e.DepotCode
                        && e.Factory == a.Factory
                        && e.Company == a.Company,
                        JoinType.Left,
                        a.SuppNo == i.SuppNo,
                        JoinType.Left,
                        a.CreateBy == u1.Fcode,
                        JoinType.Left,
                        a.CheckUser == u3.Fcode))
                .WhereIF(query.id > 0,
                    (a, e, i, u1, u3) => a.Id == query.id)
                .Select((a, e, i, u1, u3) => new MesInvItemOuts
                {
                    Id = a.Id,
                    DepotCode = a.DepotCode,
                    Fmrmode = a.Fmrmode,
                    CheckDate = a.CheckDate,
                    CheckUser = a.CheckUser,
                    States = a.States,
                    Reason = a.Reason,
                    Remark = a.Remark,
                    Nflag = a.Nflag,
                    FType = a.FType,
                    SuppNo = a.SuppNo,
                    DepotName = e.DepotName,
                    SuppName = i.SuppName,
                    CreateByFname = u1.Fname,
                    CheckUserFname = u3.Fname,
                    CreateDate = a.CreateDate,
                    CreateBy = a.CreateBy,
                    Status = a.Status,
                    ItemOutNo = a.ItemOutNo
                }).ToPageList(query.PageIndex, query.Limit);
    }
    //MESInvItemOutItems
    public List<MESInvItemOutItems> GetItems(WarehouseQuery query)
    {
        var where = "and 1=1";
        if (query.id != null) where = "and ITEM_OUT_ID = '" + query.id + "'";
        var sql = string.Format(@"select * from (
        SELECT C.REMARK, C.PBILL_NO, C.ITEM_OUT_ID, C.RK_QTY,
               C.TL_QTY, C.WORK_LINE, C.QUANTITY, C.ITEM_NO,
               NVL(s1.RK_QTY, 0) - NVL(KT_QTY, 0) KT_QTY,
               R.DEPOT_SECTION_CODE, S.ITEM_MODEL, S.ITEM_NAME,
               K.CGB014, Q.STAFF_NAME, R.DEPOT_CODE
        FROM MES_INV_ITEM_OUT_ITEMS C JOIN MES_ITEMS S ON C.ITEM_NO = S.ITEM_NO
                 LEFT JOIN (SELECT SUM(QUANTITY) KT_QTY, ITEM_NO, PBILL_NO, WORK_LINE, RK_NO
                            FROM MES_INV_ITEM_OUT_ITEMS
                            GROUP BY ITEM_NO, PBILL_NO, WORK_LINE, RK_NO) U
                           ON U.ITEM_NO = C.ITEM_NO AND U.WORK_LINE = C.WORK_LINE
                               AND U.PBILL_NO = C.PBILL_NO AND U.RK_NO = C.RK_NO
                 LEFT JOIN (SELECT SUM(QUANTITY) RK_QTY, ITEM_NO, EBELN, WORK_LINE, BILL_NO
                            FROM mes_inv_item_in_c_details
                            GROUP BY ITEM_NO, EBELN, WORK_LINE, BILL_NO) s1
                           ON S1.ITEM_NO = C.ITEM_NO AND S1.WORK_LINE = C.WORK_LINE
                               AND S1.EBELN = C.PBILL_NO AND S1.BILL_NO = C.RK_NO
                 LEFT JOIN MES_ROH_IN_DATA K
                           ON K.BILL_NO = C.PBILL_NO AND C.WORK_LINE = K.PURCHASE_ORDER_LINE_NUMBER
                 left join MES_ROH_IN H on H.BILL_NO = K.BILL_NO
                 left join MES_STAFF Q on H.PURCHASER = Q.STAFF_NAME
                 LEFT JOIN MES_SUPPLIER T ON H.SUPPLIER = T.ID
                 LEFT JOIN (select *
                            from (SELECT row_number() over (partition by DEPOT_CODE, ITEM_NO, EBELN order by CREATE_DATE) rn, DEPOT_CODE, DEPOT_SECTION_CODE, ITEM_NO,
                                         EBELN FROM mes_inv_item_in_c_details
                                  where EBELN is not null)
                            where rn = 1 and ROWNUM = 1) R ON R.ITEM_NO = C.ITEM_NO) where 1=1 {0}",
            where);
        var results = Db.Ado.SqlQuery<MESInvItemOutItems>(sql);
        return results;
    }
    public List<InventoryItem> GetSumItem(WarehouseQuery query)
    {
        var sql = string.Format(@"SELECT DEPOT ,ITEM_NO,ITEM_MODEL,
           ITEM_NAME,QTY FROM (SELECT SUM(QTY) QTY, DEPOT, ITEM_NO, ITEM_MODEL, ITEM_NAME
              FROM (SELECT f_get_section_code2('1000', '1000', b.ITEM_NO,'{0}') DEPOT,
                           B.ITEM_NO, A.ITEM_MODEL,A.ITEM_NAME,to_char(nvl(b.QUANTITY, 0) - nvl(D.QUANTITY_OK, 0),'FM9999999990.00') QTY
                      FROM MES_INV_ITEM_OUT_ITEMS B LEFT JOIN mes_ITEMS A
                        ON B.ITEM_NO = A.ITEM_NO LEFT JOIN (SELECT ITEM_OUT_ID,
                                       ITEM_NO,PBILL_NO,SUM(QUANTITY) QUANTITY_OK,RK_NO
                                  FROM MES_INV_ITEM_OUT_C_DETAILS
                                 WHERE ITEM_OUT_ID = {1}
                                 GROUP BY ITEM_OUT_ID,ITEM_NO,PBILL_NO,RK_NO) D
                        ON D.ITEM_OUT_ID = B.ITEM_OUT_ID
                       AND D.ITEM_NO = B.ITEM_NO
                       AND D.PBILL_NO = B.PBILL_NO
                       AND D.RK_NO = B.RK_NO
                     WHERE B.ITEM_OUT_ID = {1}
                       AND nvl(b.QUANTITY, 0) - nvl(D.QUANTITY_OK, 0) > 0
                     ORDER BY f_get_section_code2('1000','1000',b.ITEM_NO,'{0}'),
                              A.ITEM_MODEL,A.ITEM_NAME)
             GROUP BY DEPOT, ITEM_NO, ITEM_MODEL, ITEM_NAME)", query.DepotCode,
            query.id);
        var results = Db.Ado.SqlQuery<InventoryItem>(sql);
        return results;
    }
    public List<InventoryItemDetail> SelectMaterials(WarehouseQuery query)
    {
        var sql = string.Format(@"select B.WORK_NO, b.work_line,
                               b.item_no, s2.item_name, s2.item_model,
                               sum(b.quantity)                         sum_Quantity,
                               b.unit, b.supp_no,
                               nvl(s1.quantity, 0)                     quantity,
                               sum(b.quantity) - nvl(U.KT_QTY, 0)      Refundable_Quantity,
                               B.cbill_no, B.task_no, A.BILL_NO,
                               to_char(b.CREATE_DATE, 'yyyy-mm-dd') as CREATE_DATE
                        from mes_inv_item_in_c_details b
                                 left join mes_inv_item_ins a on b.item_in_id = a.id
                                 LEFT JOIN (select s.item_no, s.work_line, s.Work_no,
                                                   sum(s.quantity) quantity, S.RK_NO
                                            from mes_inv_item_out_c_details s
                                            group by s.item_no, s.work_line, s.work_no, S.RK_NO) s1
                                           ON NVL(B.work_LINE, '0') = NVL(s1.work_LINE, '0')
                                               and B.work_no = s1.work_no
                                               and B.item_no = s1.item_no
                                               AND B.BILL_NO = S1.RK_NO
                                 LEFT JOIN (SELECT SUM(QUANTITY) KT_QTY, ITEM_NO, PBILL_NO, WORK_LINE, RK_NO
                                            FROM MES_INV_ITEM_OUT_ITEMS
                                            GROUP BY ITEM_NO, PBILL_NO, WORK_LINE, RK_NO) U
                                           ON U.ITEM_NO = B.ITEM_NO
                                               AND U.WORK_LINE = B.WORK_LINE
                                               AND U.PBILL_NO = B.WORK_NO AND U.RK_NO = B.BILL_NO
                                 left join mes_items s2 on b.item_no = s2.item_no
                                 left join purdha da on da.dha001 = b.cbill_no
                        WHERE A.BILL_NO LIKE 'Q%'
                          AND A.CBILL_NO like 'L%'
                        group by b.item_no, b.work_line, b.supp_no, b.remark, s1.quantity, b.unit,
                                 s2.item_name, s2.item_model, da.dha003, B.WORK_NO, B.cbill_no, B.task_no,
                                 to_char(b.CREATE_DATE, 'yyyy-mm-dd'), A.BILL_NO, U.KT_QTY, A.CBILL_NO
                        having b.remark = '采购入库'
                           and sum(b.quantity) - nvl(U.KT_QTY, 0) > 0
                           and b.supp_no = '{0}'
                        order by to_char(b.CREATE_DATE, 'yyyy-mm-dd')",
            query.SuppNo);
        var results = Db.Ado.SqlQuery<InventoryItemDetail>(sql);
        return results;
    }
    public string GetMaxItemOutNo()
    {
        var date = DateTime.Now.ToString("yyyyMMdd");
        var par = "NTL" + date;
        var sql =
            $"select max(ITEM_OUT_NO) from MES_INV_ITEM_OUTS where ITEM_OUT_NO like '{par}%'";
        var maxBillNo = Db.Ado.SqlQuerySingle<string>(sql);
        var number = "0001";
        if (maxBillNo != null)
        {
            maxBillNo = maxBillNo.Substring(11);
            var no = Convert.ToInt32(maxBillNo);
            no++;
            number = no.ToString().PadLeft(4, '0');
        }
        return "NTL" + date + number;
    }
}
MES.Service/util/AppsettingsUtility.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
using MES.Service.Dto.@base;
using Microsoft.Extensions.Configuration;
namespace MES.Service.util;
public class AppsettingsUtility
{
    private static AppSettings _appSettings;
    public static AppSettings Settings
    {
        get { return _appSettings; }
    }
    public void Initial(IConfiguration configuration)
    {
        AppSettings myOwn = new AppSettings();
        //注意:可以使用冒号来获取内层的配置项
        myOwn.TestErpUrl = configuration["AppSettings:TestErpUrl"];
        myOwn.ProductionErpUrl = configuration["AppSettings:ProductionErpUrl"];
        myOwn.DataBaseConn = configuration["AppSettings:DataBaseConn"];
        _appSettings = myOwn;
    }
}
MESApplication/Controllers/Warehouse/MesInvItemArnController.cs
@@ -34,6 +34,27 @@
        }
    }
    //GetSuppliers()
    [HttpPost("GetSuppliers")]
    public ResponseResult GetSuppliers()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetSuppliers();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
MESApplication/Controllers/Warehouse/MesInvItemInCItemsController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,163 @@
using System.Dynamic;
using MES.Service.Modes;
using MES.Service.service.Warehouse;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
namespace MESApplication.Controllers.Warehouse;
[ApiController]
[Route("api/[controller]")]
public class MesInvItemInCItemsController : ControllerBase
{
    private readonly MesInvItemInCItemsManager m = new();
    /***进入模版管理可以修改模版***/
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetList();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®èŽ·å–
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetById")]
    public ResponseResult GetById(int id)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetById(id);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®åˆ é™¤
    /// </summary>
    /// <returns></returns>
    [HttpPost("DeleteByIds")]
    public ResponseResult DeleteByIds([FromBody] object[] ids)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.DeleteByIds(ids);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ 
    /// </summary>
    /// <returns></returns>
    [HttpPost("Insert")]
    public ResponseResult Add([FromBody] MesInvItemInCItems data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Insert(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ è¿”å›žè‡ªå¢ž
    /// </summary>
    /// <returns></returns>
    [HttpPost("InsertReturnIdentity")]
    public ResponseResult InsertReturnIdentity(
        [FromBody] MesInvItemInCItems data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.InsertReturnIdentity(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ä¿®æ”¹
    /// </summary>
    /// <returns></returns>
    [HttpPost("Update")]
    public ResponseResult Update([FromBody] MesInvItemInCItems data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Update(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
MESApplication/Controllers/Warehouse/MesInvItemOutItemsController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,163 @@
using System.Dynamic;
using MES.Service.Modes;
using MES.Service.service.Warehouse;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
namespace MESApplication.Controllers.Warehouse;
[ApiController]
[Route("api/[controller]")]
public class MesInvItemOutItemsController : ControllerBase
{
    private readonly MesInvItemOutItemsManager m = new();
    /***进入模版管理可以修改模版***/
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetList();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®èŽ·å–
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetById")]
    public ResponseResult GetById(int id)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetById(id);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®åˆ é™¤
    /// </summary>
    /// <returns></returns>
    [HttpPost("DeleteByIds")]
    public ResponseResult DeleteByIds([FromBody] object[] ids)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.DeleteByIds(ids);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ 
    /// </summary>
    /// <returns></returns>
    [HttpPost("Insert")]
    public ResponseResult Add([FromBody] MesInvItemOutItems data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Insert(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ è¿”å›žè‡ªå¢ž
    /// </summary>
    /// <returns></returns>
    [HttpPost("InsertReturnIdentity")]
    public ResponseResult InsertReturnIdentity(
        [FromBody] MesInvItemOutItems data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.InsertReturnIdentity(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ä¿®æ”¹
    /// </summary>
    /// <returns></returns>
    [HttpPost("Update")]
    public ResponseResult Update([FromBody] MesInvItemOutItems data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Update(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
MESApplication/Controllers/Warehouse/MesInvItemOutsController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,308 @@
using System.Dynamic;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.service.Warehouse;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
namespace MESApplication.Controllers.Warehouse;
[ApiController]
[Route("api/[controller]")]
public class MesInvItemOutsController : ControllerBase
{
    private readonly MesInvItemOutsManager m = new();
    //Audit
    [HttpPost("Audit")]
    public ResponseResult Audit(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Audit(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //SaveCombination
    [HttpPost("SaveCombination")]
    public ResponseResult SaveCombination(OutItemDto dto)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.SaveCombination(dto);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //GetMaxItemOutNo
    [HttpPost("GetMaxItemOutNo")]
    public ResponseResult GetMaxItemOutNo()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetMaxItemOutNo();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("GetPage")]
    public ResponseResult GetPage(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetPage(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //GetItems
    [HttpPost("GetItems")]
    public ResponseResult GetItems(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetItems(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("GetSumItem")]
    public ResponseResult GetSumItem(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetSumItem(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //SelectMaterials
    [HttpPost("SelectMaterials")]
    public ResponseResult SelectMaterials(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.SelectMaterials(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /***进入模版管理可以修改模版***/
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetList();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®èŽ·å–
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetById")]
    public ResponseResult GetById(int id)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetById(id);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®åˆ é™¤
    /// </summary>
    /// <returns></returns>
    [HttpPost("DeleteByIds")]
    public ResponseResult DeleteByIds([FromBody] object[] ids)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.DeleteByIds(ids);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ 
    /// </summary>
    /// <returns></returns>
    [HttpPost("Insert")]
    public ResponseResult Add([FromBody] MesInvItemOuts data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Insert(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ è¿”å›žè‡ªå¢ž
    /// </summary>
    /// <returns></returns>
    [HttpPost("InsertReturnIdentity")]
    public ResponseResult InsertReturnIdentity(
        [FromBody] MesInvItemOuts data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.InsertReturnIdentity(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ä¿®æ”¹
    /// </summary>
    /// <returns></returns>
    [HttpPost("Update")]
    public ResponseResult Update([FromBody] MesInvItemOuts data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Update(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
MESApplication/Startup.cs
@@ -1,4 +1,6 @@
using Microsoft.OpenApi.Models;
using MES.Service.Dto.@base;
using MES.Service.util;
using Microsoft.OpenApi.Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Swashbuckle.AspNetCore.SwaggerUI;
@@ -13,6 +15,8 @@
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
        new AppsettingsUtility().Initial(configuration);
    }
    public IConfiguration Configuration { get; }
@@ -21,6 +25,11 @@
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
        // è¯»å– ç³»ç»Ÿ è®¾ç½®å¹¶æ³¨å…¥åˆ°æœåС䏭
        services.Configure<AppSettings>(
            Configuration.GetSection("AppSettings"));
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1",
MESApplication/appsettings.json
@@ -6,5 +6,10 @@
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
  "AllowedHosts": "*",
  "AppSettings": {
    "TestErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo",
    "ProductionErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfoFormal",
    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.251)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = sg_prd; Password=sgprd"
  }
}
MESApplication/bin/Debug/net8.0/MES.Service.dll
Binary files differ
MESApplication/bin/Debug/net8.0/MES.Service.pdb
Binary files differ
MESApplication/bin/Debug/net8.0/MESApplication.dll
Binary files differ
MESApplication/bin/Debug/net8.0/MESApplication.exe
Binary files differ
MESApplication/bin/Debug/net8.0/MESApplication.pdb
Binary files differ
MESApplication/bin/Debug/net8.0/appsettings.json
@@ -6,5 +6,10 @@
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
  "AllowedHosts": "*",
  "AppSettings": {
    "TestErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo",
    "ProductionErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfoFormal",
    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.251)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = sg_prd; Password=sgprd"
  }
}
MESApplication/bin/Release/net8.0/MES.Service.dll
Binary files differ
MESApplication/bin/Release/net8.0/MES.Service.pdb
Binary files differ
MESApplication/bin/Release/net8.0/MESApplication.dll
Binary files differ
MESApplication/bin/Release/net8.0/MESApplication.exe
Binary files differ
MESApplication/bin/Release/net8.0/MESApplication.pdb
Binary files differ
MESApplication/bin/Release/net8.0/publish/MES.Service.dll
Binary files differ
MESApplication/bin/Release/net8.0/publish/MES.Service.pdb
Binary files differ
MESApplication/bin/Release/net8.0/publish/MESApplication.dll
Binary files differ
MESApplication/bin/Release/net8.0/publish/MESApplication.exe
Binary files differ
MESApplication/bin/Release/net8.0/publish/MESApplication.pdb
Binary files differ