展杰
2024-08-16 3dfa3d93337cca6363b0e138c74f80af96431b83
合并上格最新代码
已添加9个文件
已修改31个文件
3457 ■■■■ 文件已修改
MES.Service/Dto/service/InventoryItem.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/MovesDto.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/OutItemDto.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/PurchaseInventory.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/service/WarehouseQuery.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesDepotSections.cs 134 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvBusiness2.cs 419 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvItemInCDetails.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvItemMoves.cs 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvItemMovesCDetails.cs 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvItemOutItems.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesInvItemStocks.cs 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesQaItemsDetectDetail5.cs 326 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/bin/Debug/net8.0/MES.Service.dll 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/bin/Debug/net8.0/MES.Service.pdb 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/BasicData/MesStaffManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/QC/MesQaItemsDetectDetail5Manager.cs 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesDepotSectionsManager.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvBusiness2Manager.cs 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvItemMovesCDetailsManager.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/MesInvItemMovesManager.cs 522 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/Warehouse/OpeningReceiptServer.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/util/CollectionUtil.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Base/DemoController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Base/LoginController.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/MesDepotSectionsController.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/MesInvBusiness2Controller.cs 308 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/MesInvItemMovesCDetailsController.cs 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/MesInvItemMovesController.cs 306 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/Warehouse/OpeningReceiptController.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Filter/ActionFilter.cs 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Filter/ErrorLog.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/MESApplication.csproj 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Startup.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | 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 | 历史
MES.Service/Dto/service/InventoryItem.cs
@@ -16,4 +16,12 @@
    [SugarColumn(ColumnName = "QTY")]
    public decimal Qty { get; set; } // ä½¿ç”¨ decimal æ¥è¡¨ç¤ºæ•°é‡
    [SugarColumn(ColumnName = "sections_code")]
    public string SectionsCode { get; set; }
    [SugarColumn(ColumnName = "erp_item_no")]
    public string ErpItemNo { get; set; }
    [SugarColumn(ColumnName = "flist")] public string Flist { get; set; }
}
MES.Service/Dto/service/MovesDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using MES.Service.Modes;
namespace MES.Service.Dto.service;
public class MovesDto
{
    //出入单
    public List<MesInvItemMoves>? FromList { get; set; }
    public List<MesInvItemOutItems>? OutItems { get; set; }
    public List<MesInvItemMovesCDetails>? BarcodeList { get; set; }
    //入库单
    public bool? InAudit{ get; set; }
    public MesInvItemBarcodes? BarcodesInfo{ get; set; }
}
MES.Service/Dto/service/OutItemDto.cs
@@ -7,8 +7,7 @@
    public MesInvItemOuts? Form { get; set; }
    public List<MesInvItemOutItems>? SaveItems { get; set; }
    public List<MESInvItemOutItems>? SelectItems { get; set; }
    public string? ItemNo { get; set; }
    public decimal? Quantity { get; set; }
MES.Service/Dto/service/PurchaseInventory.cs
@@ -12,4 +12,6 @@
    public List<MesInvItemInCDetails>? InvItemInCDetails { get; set; }
    public List<MesInvItemInCItems>? ItemInDetails { get; set; }
    public List<MesInvItemStocks>? ItemStocks { get; set; }
}
MES.Service/Dto/service/WarehouseQuery.cs
@@ -19,4 +19,8 @@
    public string? Type { get; set; }
    public string? DepotCode { get; set; }
    public string? SuppNo { get; set; }
    public string? Factory { get; set; }
    public string? Company { get; set; }
}
MES.Service/Modes/MesDepotSections.cs
@@ -8,96 +8,108 @@
[SugarTable("MES_DEPOT_SECTIONS")]
public class MesDepotSections
{
 /// <summary>
 ///     ID(SEQ_INV_ID)(ERPID)
 /// </summary>
 [SugarColumn(ColumnName = "DEPOT_SECTION_ID", IsPrimaryKey = true)]
    /// <summary>
    ///     ID(SEQ_INV_ID)(ERPID)
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_SECTION_ID", IsPrimaryKey = true)]
    public decimal DepotSectionId { get; set; }
 /// <summary>
 ///     è´§ä½ç¼–码
 /// </summary>
 [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")]
    /// <summary>
    ///     è´§ä½ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")]
    public string DepotSectionCode { get; set; }
 /// <summary>
 ///     è´§ä½åç§°
 /// </summary>
 [SugarColumn(ColumnName = "DEPOT_SECTION_NAME")]
    /// <summary>
    ///     è´§ä½åç§°
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_SECTION_NAME")]
    public string DepotSectionName { get; set; }
 /// <summary>
 ///     ä»“库编码
 /// </summary>
 [SugarColumn(ColumnName = "DEPOT_ID")]
    /// <summary>
    ///     ä»“库编码
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_ID")]
    public decimal? DepotId { get; set; }
 /// <summary>
 ///     å‚与齐套校验(0:否,1:是)
 /// </summary>
 [SugarColumn(ColumnName = "COMPLETENESS_FLAG")]
    /// <summary>
    ///     å‚与齐套校验(0:否,1:是)
    /// </summary>
    [SugarColumn(ColumnName = "COMPLETENESS_FLAG")]
    public short? CompletenessFlag { get; set; }
 /// <summary>
 ///     å¤‡æ³¨
 /// </summary>
 [SugarColumn(ColumnName = "DESCRIPTION")]
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "DESCRIPTION")]
    public string Description { get; set; }
 /// <summary>
 ///     åˆ›å»ºäºº
 /// </summary>
 [SugarColumn(ColumnName = "CREATE_BY")]
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string CreateBy { get; set; }
 /// <summary>
 ///     åˆ›å»ºæ—¶é—´
 /// </summary>
 [SugarColumn(ColumnName = "CREATE_DATE")]
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
 /// <summary>
 ///     æœ€åŽæ›´æ–°äºº
 /// </summary>
 [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    /// <summary>
    ///     æœ€åŽæ›´æ–°äºº
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string LastupdateBy { get; set; }
 /// <summary>
 ///     æœ€åŽæ›´æ–°æ—¶é—´
 /// </summary>
 [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    /// <summary>
    ///     æœ€åŽæ›´æ–°æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
 /// <summary>
 /// </summary>
 [SugarColumn(ColumnName = "COMPANY")]
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string Company { get; set; }
 /// <summary>
 /// </summary>
 [SugarColumn(ColumnName = "FACTORY")]
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string Factory { get; set; }
 /// <summary>
 ///     å¡æ¿æ•°
 /// </summary>
 [SugarColumn(ColumnName = "KB_QTY")]
    /// <summary>
    ///     å¡æ¿æ•°
    /// </summary>
    [SugarColumn(ColumnName = "KB_QTY")]
    public decimal? KbQty { get; set; }
 /// <summary>
 ///     ä»“位组ID
 /// </summary>
 [SugarColumn(ColumnName = "ZUID")]
    /// <summary>
    ///     ä»“位组ID
    /// </summary>
    [SugarColumn(ColumnName = "ZUID")]
    public decimal? Zuid { get; set; }
 /// <summary>
 ///     ä»“位全名
 /// </summary>
 [SugarColumn(ColumnName = "DEPOT_SECTION_NAMET")]
    /// <summary>
    ///     ä»“位全名
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_SECTION_NAMET")]
    public string DepotSectionNamet { get; set; }
 /// <summary>
 /// </summary>
 [SugarColumn(ColumnName = "ERPID")]
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "ERPID")]
    public decimal? Erpid { get; set; }
    /// <summary>
    ///     ä»“库类别编码
    /// </summary>
    [SugarColumn(IsIgnore = true)]
    public string? DepotCode { get; set; }
    /// <summary>
    ///     ä»“库类别名称
    /// </summary>
    [SugarColumn(IsIgnore = true)]
    public string? DepotName { get; set; }
}
MES.Service/Modes/MesInvBusiness2.cs
@@ -1,194 +1,227 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace MES.Service.Modes
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     åº“存交易记录表
/// </summary>
[SugarTable("MES_INV_BUSINESS2")]
public class MesInvBusiness2
{
    /// <summary>
    /// åº“存交易记录表
    ///</summary>
    [SugarTable("MES_INV_BUSINESS2")]
    public class MesInvBusiness2
    {
        /// <summary>
        /// ID(seq_inv_id)
        ///</summary>
         [SugarColumn(ColumnName="ID",OracleSequenceName = "SEQ_ID",IsPrimaryKey = true   )]
         public decimal Id { get; set; }
        /// <summary>
        /// çŠ¶æ€|0-未交易1-已交易
        ///</summary>
         [SugarColumn(ColumnName="STATUS"    )]
         public decimal? Status { get; set; }
        /// <summary>
        /// å•据类型ID
        ///</summary>
         [SugarColumn(ColumnName="BILL_TYPE_ID"    )]
         public decimal? BillTypeId { get; set; }
        /// <summary>
        /// äº‹åŠ¡ç±»åž‹ç¼–ç 
        ///</summary>
         [SugarColumn(ColumnName="TRANSACTION_CODE"    )]
         public string TransactionCode { get; set; }
        /// <summary>
        /// äº¤æ˜“类型|1-入库0-转库-1出库
        ///</summary>
         [SugarColumn(ColumnName="BUSINESS_TYPE"    )]
         public decimal? BusinessType { get; set; }
        /// <summary>
        /// å•据ID
        ///</summary>
         [SugarColumn(ColumnName="BILL_ID"    )]
         public decimal? BillId { get; set; }
        /// <summary>
        /// å•据编码
        ///</summary>
         [SugarColumn(ColumnName="BILL_NO"    )]
         public string BillNo { get; set; }
        /// <summary>
        /// ç”Ÿäº§è®¢å•号
        ///</summary>
         [SugarColumn(ColumnName="TASK_NO"    )]
         public string TaskNo { get; set; }
        /// <summary>
        /// å®¢æˆ·ç¼–号
        ///</summary>
         [SugarColumn(ColumnName="CUSTOMER_NO"    )]
         public string CustomerNo { get; set; }
        /// <summary>
        /// å•据行ID
        ///</summary>
         [SugarColumn(ColumnName="BILL_LINE_ID"    )]
         public decimal? BillLineId { get; set; }
        /// <summary>
        /// ç‰©æ–™æ¡ç 
        ///</summary>
         [SugarColumn(ColumnName="ITEM_BARCODE"    )]
         public string ItemBarcode { get; set; }
        /// <summary>
        /// æœ¬å¸ç‰©æ–™ç¼–码
        ///</summary>
         [SugarColumn(ColumnName="ITEM_NO"    )]
         public string ItemNo { get; set; }
        /// <summary>
        /// å®¢æˆ·ç‰©æ–™ç¼–码
        ///</summary>
         [SugarColumn(ColumnName="C_ITEM_CODE"    )]
         public string CItemCode { get; set; }
        /// <summary>
        /// åŽ‚å®¶æ‰¹æ¬¡
        ///</summary>
         [SugarColumn(ColumnName="LOT_NO"    )]
         public string LotNo { get; set; }
        /// <summary>
        /// æ˜¯å¦çŽ¯ä¿(0:否,1:是)
        ///</summary>
         [SugarColumn(ColumnName="EP_FLAG"    )]
         public short? EpFlag { get; set; }
        /// <summary>
        /// æ•°é‡
        ///</summary>
         [SugarColumn(ColumnName="QUANTITY"    )]
         public decimal? Quantity { get; set; }
        /// <summary>
        /// æºå­åº“CODE
        ///</summary>
         [SugarColumn(ColumnName="FROM_INV_DEPOTS_CODE"    )]
         public string FromInvDepotsCode { get; set; }
        /// <summary>
        /// æºè´§ä½CODE
        ///</summary>
         [SugarColumn(ColumnName="FROM_INV_DEPOT_SECTIONS_CODE"    )]
         public string FromInvDepotSectionsCode { get; set; }
        /// <summary>
        /// ç›®çš„子库CODE
        ///</summary>
         [SugarColumn(ColumnName="TO_INV_DEPOTS_CODE"    )]
         public string ToInvDepotsCode { get; set; }
        /// <summary>
        /// ç›®çš„货位CODE
        ///</summary>
         [SugarColumn(ColumnName="TO_INV_DEPOT_SECTIONS_CODE"    )]
         public string ToInvDepotSectionsCode { get; set; }
        /// <summary>
        /// äº¤æ˜“异常信息
        ///</summary>
         [SugarColumn(ColumnName="DESCRIPTION"    )]
         public string Description { 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="ULLAGE_STAT_FLAG"    )]
         public short? UllageStatFlag { 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="ITEM_BARCODE2"    )]
         public string ItemBarcode2 { get; set; }
        /// <summary>
        /// å¡æ¿æ¡ç 
        ///</summary>
         [SugarColumn(ColumnName="ITEM_BARCODE3"    )]
         public string ItemBarcode3 { 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="LINE_NO"    )]
         public string LineNo { 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>
   ///     ID(seq_inv_id)
   /// </summary>
   [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_ID",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
   /// <summary>
   ///     çŠ¶æ€|0-未交易1-已交易
   /// </summary>
   [SugarColumn(ColumnName = "STATUS")]
    public decimal? Status { get; set; }
   /// <summary>
   ///     å•据类型ID
   /// </summary>
   [SugarColumn(ColumnName = "BILL_TYPE_ID")]
    public decimal? BillTypeId { get; set; }
   /// <summary>
   ///     äº‹åŠ¡ç±»åž‹ç¼–ç 
   /// </summary>
   [SugarColumn(ColumnName = "TRANSACTION_CODE")]
    public string TransactionCode { get; set; }
   /// <summary>
   ///     äº¤æ˜“类型|1-入库0-转库-1出库
   /// </summary>
   [SugarColumn(ColumnName = "BUSINESS_TYPE")]
    public decimal? BusinessType { get; set; }
   /// <summary>
   ///     å•据ID
   /// </summary>
   [SugarColumn(ColumnName = "BILL_ID")]
    public decimal? BillId { get; set; }
   /// <summary>
   ///     å•据编码
   /// </summary>
   [SugarColumn(ColumnName = "BILL_NO")]
    public string BillNo { get; set; }
   /// <summary>
   ///     ç”Ÿäº§è®¢å•号
   /// </summary>
   [SugarColumn(ColumnName = "TASK_NO")]
    public string TaskNo { get; set; }
   /// <summary>
   ///     å®¢æˆ·ç¼–号
   /// </summary>
   [SugarColumn(ColumnName = "CUSTOMER_NO")]
    public string CustomerNo { get; set; }
   /// <summary>
   ///     å•据行ID
   /// </summary>
   [SugarColumn(ColumnName = "BILL_LINE_ID")]
    public decimal? BillLineId { get; set; }
   /// <summary>
   ///     ç‰©æ–™æ¡ç 
   /// </summary>
   [SugarColumn(ColumnName = "ITEM_BARCODE")]
    public string ItemBarcode { get; set; }
   /// <summary>
   ///     æœ¬å¸ç‰©æ–™ç¼–码
   /// </summary>
   [SugarColumn(ColumnName = "ITEM_NO")]
    public string ItemNo { get; set; }
   /// <summary>
   ///     å®¢æˆ·ç‰©æ–™ç¼–码
   /// </summary>
   [SugarColumn(ColumnName = "C_ITEM_CODE")]
    public string CItemCode { get; set; }
   /// <summary>
   ///     åŽ‚å®¶æ‰¹æ¬¡
   /// </summary>
   [SugarColumn(ColumnName = "LOT_NO")]
    public string LotNo { get; set; }
   /// <summary>
   ///     æ˜¯å¦çŽ¯ä¿(0:否,1:是)
   /// </summary>
   [SugarColumn(ColumnName = "EP_FLAG")]
    public short? EpFlag { get; set; }
   /// <summary>
   ///     æ•°é‡
   /// </summary>
   [SugarColumn(ColumnName = "QUANTITY")]
    public decimal? Quantity { get; set; }
   /// <summary>
   ///     æºå­åº“CODE
   /// </summary>
   [SugarColumn(ColumnName = "FROM_INV_DEPOTS_CODE")]
    public string FromInvDepotsCode { get; set; }
   /// <summary>
   ///     æºè´§ä½CODE
   /// </summary>
   [SugarColumn(ColumnName = "FROM_INV_DEPOT_SECTIONS_CODE")]
    public string FromInvDepotSectionsCode { get; set; }
   /// <summary>
   ///     ç›®çš„子库CODE
   /// </summary>
   [SugarColumn(ColumnName = "TO_INV_DEPOTS_CODE")]
    public string ToInvDepotsCode { get; set; }
   /// <summary>
   ///     ç›®çš„货位CODE
   /// </summary>
   [SugarColumn(ColumnName = "TO_INV_DEPOT_SECTIONS_CODE")]
    public string ToInvDepotSectionsCode { get; set; }
   /// <summary>
   ///     äº¤æ˜“异常信息
   /// </summary>
   [SugarColumn(ColumnName = "DESCRIPTION")]
    public string Description { 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 = "ULLAGE_STAT_FLAG")]
    public short? UllageStatFlag { 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 = "ITEM_BARCODE2")]
    public string ItemBarcode2 { get; set; }
   /// <summary>
   ///     å¡æ¿æ¡ç 
   /// </summary>
   [SugarColumn(ColumnName = "ITEM_BARCODE3")]
    public string ItemBarcode3 { 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 = "LINE_NO")]
    public string LineNo { 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; }
}
MES.Service/Modes/MesInvItemInCDetails.cs
@@ -11,7 +11,8 @@
    /// <summary>
    ///     SEQ_OUT
    /// </summary>
    [SugarColumn(ColumnName = "ID",OracleSequenceName = "SEQ_INV_ID", IsPrimaryKey = true)]
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_INV_ID",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
MES.Service/Modes/MesInvItemMoves.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,178 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     ç‰©æ–™ç§»åº“主表
/// </summary>
[SugarTable("MES_INV_ITEM_MOVES")]
public class MesInvItemMoves
{
   /// <summary>
   ///     SEQ_INV_ID
   /// </summary>
   [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
    public decimal Id { get; set; }
   /// <summary>
   ///     ç§»åº“单号
   /// </summary>
   [SugarColumn(ColumnName = "BILL_NO")]
    public string BillNo { get; set; }
   /// <summary>
   ///     ç§»å…¥å­åº“id
   /// </summary>
   [SugarColumn(ColumnName = "INV_DEPOTS_ID")]
    public decimal? InvDepotsId { get; set; }
   /// <summary>
   ///     ç§»å…¥è´§ä½id
   /// </summary>
   [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_ID")]
    public decimal? InvDepotSectionsId { 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>
   ///     çŠ¶æ€|0-制单1-过账
   /// </summary>
   [SugarColumn(ColumnName = "STATUS")]
    public decimal? Status { get; set; }
   /// <summary>
   ///     å¤‡æ³¨
   /// </summary>
   [SugarColumn(ColumnName = "REMARK")]
    public string Remark { get; set; }
   /// <summary>
   ///     å•据类型ID
   /// </summary>
   [SugarColumn(ColumnName = "BILL_TYPE_ID")]
    public decimal? BillTypeId { get; set; }
   /// <summary>
   ///     äº‹åŠ¡ç±»åž‹ID
   /// </summary>
   [SugarColumn(ColumnName = "TRANSACTION_ID")]
    public decimal? TransactionId { get; set; }
   /// <summary>
   ///     å®¡æ ¸äºº
   /// </summary>
   [SugarColumn(ColumnName = "CHECKUSER")]
    public string Checkuser { get; set; }
   /// <summary>
   ///     å®¡æ ¸æ—¥æœŸ
   /// </summary>
   [SugarColumn(ColumnName = "CHECKDATE")]
    public DateTime? Checkdate { get; set; }
   /// <summary>
   ///     ç§»å…¥å­åº“code
   /// </summary>
   [SugarColumn(ColumnName = "INV_DEPOTS_CODE")]
    public string InvDepotsCode { get; set; }
   /// <summary>
   ///     ç§»å…¥è´§ä½code
   /// </summary>
   [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_CODE")]
    public string InvDepotSectionsCode { get; set; }
   /// <summary>
   ///     äº‹åŠ¡ç±»åž‹ç¼–ç 
   /// </summary>
   [SugarColumn(ColumnName = "TRANSACTION_NO")]
    public decimal? TransactionNo { get; set; }
   /// <summary>
   ///     ç§»å‡ºå­åº“code
   /// </summary>
   [SugarColumn(ColumnName = "FROM_DEPOTS_CODE")]
    public string FromDepotsCode { get; set; }
   /// <summary>
   ///     å·¥åŽ‚ç¼–ç 
   /// </summary>
   [SugarColumn(ColumnName = "FACTORY_CODE")]
    public string FactoryCode { 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 = "FACTORY")]
    public string Factory { get; set; }
   /// <summary>
   ///     å…¬å¸ä»£ç 
   /// </summary>
   [SugarColumn(ColumnName = "COMPANY")]
    public string Company { get; set; }
   /// <summary>
   ///     åå®¡æ ¸äº‹åŠ¡ç±»åž‹ç¼–ç 
   /// </summary>
   [SugarColumn(ColumnName = "MTRANSACTION_NO")]
    public decimal? MtransactionNo { get; set; }
   /// <summary>
   ///     è‡ªåŠ¨ä¿å­˜å­—æ®µ
   /// </summary>
   [SugarColumn(ColumnName = "ZD_NUM")]
    public decimal? ZdNum { get; set; }
   /// <summary>
   ///     æ˜¯å¦æŽ¨é€ERP1-是,2-否
   /// </summary>
   [SugarColumn(ColumnName = "TS")]
    public decimal? Ts { get; set; }
}
MES.Service/Modes/MesInvItemMovesCDetails.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,237 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     ç‰©æ–™ç§»åº“条码明细从表
/// </summary>
[SugarTable("MES_INV_ITEM_MOVES_C_DETAILS")]
public class MesInvItemMovesCDetails
{
    /// <summary>
    ///     seq_inv_id
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_INV_ID",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_MOVE_ID")]
    public decimal? ItemMoveId { get; set; }
    /// <summary>
    ///     ç‰©æ–™æ¡ç 
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_BARCODE")]
    public string? ItemBarcode { get; set; }
    /// <summary>
    ///     å®¢æˆ·ç‰©æ–™ç¼–码(无条码手工录入,有条码为冗余字段)
    /// </summary>
    [SugarColumn(ColumnName = "C_ITEM_CODE")]
    public string? CItemCode { get; set; }
    /// <summary>
    ///     ä¿¡åŽç‰©æ–™ç¼–码(无条码手工录入,有条码为冗余字段)
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_NO")]
    public string? ItemNo { get; set; }
    /// <summary>
    ///     åŽ‚å®¶æ‰¹æ¬¡
    /// </summary>
    [SugarColumn(ColumnName = "LOT_NO")]
    public string? LotNo { get; set; }
    /// <summary>
    ///     æ•°é‡ï¼ˆæ— æ¡ç æ‰‹å·¥å½•入,有条码为冗余字段)
    /// </summary>
    [SugarColumn(ColumnName = "QUANTITY")]
    public decimal? Quantity { get; set; }
    /// <summary>
    ///     å‡ºåº“方式(1:有条码,0:无条码)
    /// </summary>
    [SugarColumn(ColumnName = "BARCODE_FLAG")]
    public short? BarcodeFlag { get; set; }
    /// <summary>
    ///     çŽ¯ä¿æ ‡å¿—ï¼ˆæ— æ¡ç æ‰‹å·¥å½•å…¥ï¼Œæœ‰æ¡ç ä¸ºå†—ä½™å­—æ®µï¼‰
    /// </summary>
    [SugarColumn(ColumnName = "EP_FLAG")]
    public short? EpFlag { 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 = "INV_DEPOTS_ID")]
    public decimal? InvDepotsId { get; set; }
    /// <summary>
    ///     è´§ä½id
    /// </summary>
    [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_ID")]
    public decimal? InvDepotSectionsId { get; set; }
    /// <summary>
    ///     å®¢æˆ·ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "CUST_NO")]
    public string? CustNo { get; set; }
    /// <summary>
    ///     ä»»åŠ¡ä»¤å·
    /// </summary>
    [SugarColumn(ColumnName = "TASK_NO")]
    public string? TaskNo { get; set; }
    /// <summary>
    ///     ç§»å‡ºä»“库编号
    /// </summary>
    [SugarColumn(ColumnName = "FROM_DEPOTS_CODE")]
    public string? FromDepotsCode { get; set; }
    /// <summary>
    ///     ç§»å‡ºåº“位编号
    /// </summary>
    [SugarColumn(ColumnName = "FROM_DEPOT_SECTIONS_CODE")]
    public string? FromDepotSectionsCode { 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 = "BOX_NO")]
    public string? BoxNo { get; set; }
    /// <summary>
    ///     å¡æ¿å·
    /// </summary>
    [SugarColumn(ColumnName = "KO_NO")]
    public string? KoNo { get; set; }
    /// <summary>
    ///     ç§»å…¥ä»“库编号
    /// </summary>
    [SugarColumn(ColumnName = "INV_DEPOTS_CODE")]
    public string? InvDepotsCode { get; set; }
    /// <summary>
    ///     ç§»å…¥åº“位编号
    /// </summary>
    [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_CODE")]
    public string? InvDepotSectionsCode { get; set; }
    /// <summary>
    ///     è´¨æ£€ç»“æžœ
    /// </summary>
    [SugarColumn(ColumnName = "IQC_STATUS")]
    public string? IqcStatus { get; set; }
    /// <summary>
    ///     å°è½¦ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "FCAR")]
    public string? Fcar { get; set; }
    /// <summary>
    ///     å…¥åº“日期
    /// </summary>
    [SugarColumn(ColumnName = "INDEP_DATE")]
    public DateTime? IndepDate { get; set; }
    /// <summary>
    ///     å†»ç»“提交重检,0:冻结未提交重检,1:冻结并提交重检
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE_SUBMIT")]
    public short? VisableSubmit { get; set; }
    /// <summary>
    ///     æäº¤é‡æ£€äºº
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE_SUBMIT_BY")]
    public string? VisableSubmitBy { get; set; }
    /// <summary>
    ///     æäº¤é‡æ£€æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE_SUBMIT_DATE")]
    public DateTime? VisableSubmitDate { get; set; }
    /// <summary>
    ///     äº§å“åž‹å·
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_STYLE")]
    public string? BoardStyle { 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 = "MOVE_OK")]
    public decimal? MoveOk { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemName { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemModel { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemUnit { get; set; }
    [SugarColumn(IsIgnore = true)] public string? SuppName { get; set; }
}
MES.Service/Modes/MesInvItemOutItems.cs
@@ -207,4 +207,11 @@
    /// </summary>
    [SugarColumn(ColumnName = "TL_QTY")]
    public decimal? TlQty { get; set; }
    [SugarColumn(ColumnName = "ITEM_ID")] public decimal? ItemId { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemName { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemModel { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemUnit { get; set; }
    [SugarColumn(IsIgnore = true)] public string? QuantityOk { get; set; }
}
MES.Service/Modes/MesInvItemStocks.cs
@@ -9,7 +9,7 @@
public class MesInvItemStocks
{
    /// <summary>
    /// SEQ_ME_ID
    ///     SEQ_ME_ID
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_ME_ID",
        IsPrimaryKey = true)]
@@ -19,25 +19,25 @@
    ///     ç”Ÿäº§è®¢å•
    /// </summary>
    [SugarColumn(ColumnName = "TASK_NO")]
    public string TaskNo { get; set; }
    public string? TaskNo { get; set; }
    /// <summary>
    ///     ç‰©æ–™æ¡ç 
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_BARCODE")]
    public string ItemBarcode { get; set; }
    public string? ItemBarcode { get; set; }
    /// <summary>
    ///     å®¢æˆ·ç‰©æ–™ç¼–码(无条码手工录入,有条码为冗余字段)
    /// </summary>
    [SugarColumn(ColumnName = "C_ITEM_CODE")]
    public string CItemCode { get; set; }
    public string? CItemCode { get; set; }
    /// <summary>
    ///     æœ¬å¸ç‰©æ–™ç¼–码(无条码手工录入,有条码为冗余字段)
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_NO")]
    public string ItemNo { get; set; }
    public string? ItemNo { get; set; }
    /// <summary>
    ///     å­åº“id
@@ -55,7 +55,7 @@
    ///     åŽ‚å®¶æ‰¹æ¬¡
    /// </summary>
    [SugarColumn(ColumnName = "LOT_NO")]
    public string LotNo { get; set; }
    public string? LotNo { get; set; }
    /// <summary>
    ///     æ•°é‡
@@ -73,7 +73,7 @@
    ///     å®¢æˆ·ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "CUSTOMER_NO")]
    public string CustomerNo { get; set; }
    public string? CustomerNo { get; set; }
    /// <summary>
    ///     é‡é‡
@@ -85,13 +85,13 @@
    ///     å­åº“CODE
    /// </summary>
    [SugarColumn(ColumnName = "DEPOTS_CODE")]
    public string DepotsCode { get; set; }
    public string? DepotsCode { get; set; }
    /// <summary>
    ///     è´§ä½CODE
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_SECTIONS_CODE")]
    public string DepotSectionsCode { get; set; }
    public string? DepotSectionsCode { get; set; }
    /// <summary>
    ///     æ£€éªŒæ—¥æœŸ
@@ -115,25 +115,25 @@
    ///     å·¥åŽ‚ç¼–å·
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string Factory { get; set; }
    public string? Factory { get; set; }
    /// <summary>
    ///     å…¬å¸ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string Company { get; set; }
    public string? Company { get; set; }
    /// <summary>
    ///     è´¨æ£€çŠ¶æ€
    /// </summary>
    [SugarColumn(ColumnName = "IQC_STATUS")]
    public string IqcStatus { get; set; }
    public string? IqcStatus { get; set; }
    /// <summary>
    ///     å°è½¦æ¡ç 
    /// </summary>
    [SugarColumn(ColumnName = "FCAR")]
    public string Fcar { get; set; }
    public string? Fcar { get; set; }
    /// <summary>
    ///     å†»ç»“提交重检,0:冻结未提交重检,1:冻结并提交重检
@@ -145,7 +145,7 @@
    ///     æäº¤é‡æ£€äºº
    /// </summary>
    [SugarColumn(ColumnName = "VISABLE_SUBMIT_BY")]
    public string VisableSubmitBy { get; set; }
    public string? VisableSubmitBy { get; set; }
    /// <summary>
    ///     æäº¤é‡æ£€æ—¶é—´
@@ -157,13 +157,13 @@
    ///     äº§å“åž‹å·
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_STYLE")]
    public string BoardStyle { get; set; }
    public string? BoardStyle { get; set; }
    /// <summary>
    ///     ä»»åŠ¡å•å·
    /// </summary>
    [SugarColumn(ColumnName = "WORK_NO")]
    public string WorkNo { get; set; }
    public string? WorkNo { get; set; }
    /// <summary>
    ///     ä»»åŠ¡å•è¡Œå·
@@ -175,19 +175,19 @@
    ///     ä¾›åº”商
    /// </summary>
    [SugarColumn(ColumnName = "SUPP_NO")]
    public string SuppNo { get; set; }
    public string? SuppNo { get; set; }
    /// <summary>
    ///     ç”Ÿäº§çº¿
    /// </summary>
    [SugarColumn(ColumnName = "LINE_NO")]
    public string LineNo { get; set; }
    public string? LineNo { get; set; }
    /// <summary>
    ///     åŠæˆå“å…¥åº“单号
    /// </summary>
    [SugarColumn(ColumnName = "BILL_NO")]
    public string BillNo { get; set; }
    public string? BillNo { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•id
MES.Service/Modes/MesQaItemsDetectDetail5.cs
@@ -1,154 +1,174 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace MES.Service.Modes
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     æ¥æ–™æ£€éªŒä»Žè¡¨
/// </summary>
[SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
public class MesQaItemsDetectDetail5
{
    /// <summary>
    /// æ¥æ–™æ£€éªŒä»Žè¡¨
    ///</summary>
    [SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
    public class MesQaItemsDetectDetail5
    {
        /// <summary>
        ///
        ///</summary>
         [SugarColumn(ColumnName="ID" ,IsPrimaryKey = true   )]
         public decimal Id { get; set; }
        /// <summary>
        /// æ ‡å‡†å€¼ç±»åž‹
        ///</summary>
         [SugarColumn(ColumnName="FTEXT_TYPE"    )]
         public string FtextType { get; set; }
        /// <summary>
        /// æ ‡å‡†å€¼
        ///</summary>
         [SugarColumn(ColumnName="FSTAND"    )]
         public decimal? Fstand { get; set; }
        /// <summary>
        /// ä¸Šå…¬å·®
        ///</summary>
         [SugarColumn(ColumnName="FUP_ALLOW"    )]
         public string FupAllow { get; set; }
        /// <summary>
        /// ä¸‹å…¬å·®
        ///</summary>
         [SugarColumn(ColumnName="FDOWN_ALLOW"    )]
         public string FdownAllow { get; set; }
        /// <summary>
        /// æ£€éªŒæ°´å‡†
        ///</summary>
         [SugarColumn(ColumnName="SAMPLE_SIZE_NO"    )]
         public string SampleSizeNo { get; set; }
        /// <summary>
        /// æ£€éªŒæ°´å¹³
        ///</summary>
         [SugarColumn(ColumnName="FCHECK_LEVEL"    )]
         public string FcheckLevel { get; set; }
        /// <summary>
        /// æ‹’æ”¶æ°´å¹³
        ///</summary>
         [SugarColumn(ColumnName="FAC_LEVEL"    )]
         public string FacLevel { get; set; }
        /// <summary>
        /// æ£€éªŒé¡¹ç›®
        ///</summary>
         [SugarColumn(ColumnName="FCHECK_ITEM"    )]
         public string FcheckItem { get; set; }
        /// <summary>
        /// è§„格要求
        ///</summary>
         [SugarColumn(ColumnName="FSPEC_REQU"    )]
         public string FspecRequ { get; set; }
        /// <summary>
        /// æŠ½æ£€æ•°é‡
        ///</summary>
         [SugarColumn(ColumnName="CHECK_QYT"    )]
         public decimal? CheckQyt { get; set; }
        /// <summary>
        /// æ£€éªŒç»“æžœ
        ///</summary>
         [SugarColumn(ColumnName="FCHECK_RESU"    )]
         public string FcheckResu { get; set; }
        /// <summary>
        /// AC数量
        ///</summary>
         [SugarColumn(ColumnName="FAC_QTY"    )]
         public decimal? FacQty { get; set; }
        /// <summary>
        /// RE数量
        ///</summary>
         [SugarColumn(ColumnName="FRE_QTY"    )]
         public decimal? FreQty { get; set; }
        /// <summary>
        /// ä¸åˆæ ¼æ•°
        ///</summary>
         [SugarColumn(ColumnName="FNG_QTY"    )]
         public decimal? FngQty { get; set; }
        /// <summary>
        /// ä¸è‰¯çއ
        ///</summary>
         [SugarColumn(ColumnName="FNG_RATE"    )]
         public decimal? FngRate { get; set; }
        /// <summary>
        /// å·²å½•入数量
        ///</summary>
         [SugarColumn(ColumnName="FENTER_QTY"    )]
         public decimal? FenterQty { get; set; }
        /// <summary>
        ///
        ///</summary>
         [SugarColumn(ColumnName="RELEASE_NO"    )]
         public string ReleaseNo { get; set; }
        /// <summary>
        ///
        ///</summary>
         [SugarColumn(ColumnName="COMPANY"    )]
         public string Company { get; set; }
        /// <summary>
        ///
        ///</summary>
         [SugarColumn(ColumnName="FACTORY"    )]
         public string Factory { get; set; }
        /// <summary>
        /// æ£€éªŒé¡¹ç›®æè¿°
        ///</summary>
         [SugarColumn(ColumnName="FCHECK_ITEM_DESC"    )]
         public string FcheckItemDesc { get; set; }
        /// <summary>
        /// å·¥åºå·
        ///</summary>
         [SugarColumn(ColumnName="PROC_NO"    )]
         public string ProcNo { get; set; }
        /// <summary>
        /// å·¥ä½œä¸­å¿ƒç¼–码
        ///</summary>
         [SugarColumn(ColumnName="WORKSHOP_CENTER_CODE"    )]
         public string WorkshopCenterCode { get; set; }
        /// <summary>
        /// å•位
        ///</summary>
         [SugarColumn(ColumnName="FUNIT"    )]
         public string Funit { get; set; }
        /// <summary>
        /// ç‰¹å®šä¿®æ”¹
        ///</summary>
         [SugarColumn(ColumnName="GIVEN_MODIFY"    )]
         public short? GivenModify { get; set; }
        /// <summary>
        /// æ£€éªŒå·¥å…·
        ///</summary>
         [SugarColumn(ColumnName="FCHECK_TOOL"    )]
         public string FcheckTool { 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 = "ID", IsPrimaryKey = true)]
    public decimal Id { get; set; }
   /// <summary>
   ///     æ ‡å‡†å€¼ç±»åž‹
   /// </summary>
   [SugarColumn(ColumnName = "FTEXT_TYPE")]
    public string FtextType { get; set; }
   /// <summary>
   ///     æ ‡å‡†å€¼
   /// </summary>
   [SugarColumn(ColumnName = "FSTAND")]
    public decimal? Fstand { get; set; }
   /// <summary>
   ///     ä¸Šå…¬å·®
   /// </summary>
   [SugarColumn(ColumnName = "FUP_ALLOW")]
    public string FupAllow { get; set; }
   /// <summary>
   ///     ä¸‹å…¬å·®
   /// </summary>
   [SugarColumn(ColumnName = "FDOWN_ALLOW")]
    public string FdownAllow { get; set; }
   /// <summary>
   ///     æ£€éªŒæ°´å‡†
   /// </summary>
   [SugarColumn(ColumnName = "SAMPLE_SIZE_NO")]
    public string SampleSizeNo { get; set; }
   /// <summary>
   ///     æ£€éªŒæ°´å¹³
   /// </summary>
   [SugarColumn(ColumnName = "FCHECK_LEVEL")]
    public string FcheckLevel { get; set; }
   /// <summary>
   ///     æ‹’æ”¶æ°´å¹³
   /// </summary>
   [SugarColumn(ColumnName = "FAC_LEVEL")]
    public string FacLevel { get; set; }
   /// <summary>
   ///     æ£€éªŒé¡¹ç›®
   /// </summary>
   [SugarColumn(ColumnName = "FCHECK_ITEM")]
    public string FcheckItem { get; set; }
   /// <summary>
   ///     è§„格要求
   /// </summary>
   [SugarColumn(ColumnName = "FSPEC_REQU")]
    public string FspecRequ { get; set; }
   /// <summary>
   ///     æŠ½æ£€æ•°é‡
   /// </summary>
   [SugarColumn(ColumnName = "CHECK_QYT")]
    public decimal? CheckQyt { get; set; }
   /// <summary>
   ///     æ£€éªŒç»“æžœ
   /// </summary>
   [SugarColumn(ColumnName = "FCHECK_RESU")]
    public string FcheckResu { get; set; }
   /// <summary>
   ///     AC数量
   /// </summary>
   [SugarColumn(ColumnName = "FAC_QTY")]
    public decimal? FacQty { get; set; }
   /// <summary>
   ///     RE数量
   /// </summary>
   [SugarColumn(ColumnName = "FRE_QTY")]
    public decimal? FreQty { get; set; }
   /// <summary>
   ///     ä¸åˆæ ¼æ•°
   /// </summary>
   [SugarColumn(ColumnName = "FNG_QTY")]
    public decimal? FngQty { get; set; }
   /// <summary>
   ///     ä¸è‰¯çއ
   /// </summary>
   [SugarColumn(ColumnName = "FNG_RATE")]
    public decimal? FngRate { get; set; }
   /// <summary>
   ///     å·²å½•入数量
   /// </summary>
   [SugarColumn(ColumnName = "FENTER_QTY")]
    public decimal? FenterQty { get; set; }
   /// <summary>
   /// </summary>
   [SugarColumn(ColumnName = "RELEASE_NO")]
    public string ReleaseNo { get; set; }
   /// <summary>
   /// </summary>
   [SugarColumn(ColumnName = "COMPANY")]
    public string Company { get; set; }
   /// <summary>
   /// </summary>
   [SugarColumn(ColumnName = "FACTORY")]
    public string Factory { get; set; }
   /// <summary>
   ///     æ£€éªŒé¡¹ç›®æè¿°
   /// </summary>
   [SugarColumn(ColumnName = "FCHECK_ITEM_DESC")]
    public string FcheckItemDesc { get; set; }
   /// <summary>
   ///     å·¥åºå·
   /// </summary>
   [SugarColumn(ColumnName = "PROC_NO")]
    public string ProcNo { get; set; }
   /// <summary>
   ///     å·¥ä½œä¸­å¿ƒç¼–码
   /// </summary>
   [SugarColumn(ColumnName = "WORKSHOP_CENTER_CODE")]
    public string WorkshopCenterCode { get; set; }
   /// <summary>
   ///     å•位
   /// </summary>
   [SugarColumn(ColumnName = "FUNIT")]
    public string Funit { get; set; }
   /// <summary>
   ///     ç‰¹å®šä¿®æ”¹
   /// </summary>
   [SugarColumn(ColumnName = "GIVEN_MODIFY")]
    public short? GivenModify { get; set; }
   /// <summary>
   ///     æ£€éªŒå·¥å…·
   /// </summary>
   [SugarColumn(ColumnName = "FCHECK_TOOL")]
    public string FcheckTool { get; set; }
   /// <summary>
   ///     æ›´æ–°äºº
   /// </summary>
   [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string LastupdateBy { get; set; }
   /// <summary>
   ///     æ›´æ–°æ—¶é—´
   /// </summary>
   [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { 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/service/BasicData/MesStaffManager.cs
@@ -154,7 +154,7 @@
            Status = 0,
            Isdeparture = 0,
            CheckFlag = 0,
            ExpFiel12 = 0,
            ExpFiel12 = 0
        };
    }
MES.Service/service/QC/MesQaItemsDetectDetail5Manager.cs
@@ -1,78 +1,79 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using MES.Service.DB;
using MES.Service.DB;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.QC
namespace MES.Service.service.QC;
public class
    MesQaItemsDetectDetail5Manager : Repository<MesQaItemsDetectDetail5>
{
public class MesQaItemsDetectDetail5Manager : Repository<MesQaItemsDetectDetail5>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesQaItemsDetectDetail5Manager.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 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 p = new PageModel { PageIndex = 1, PageSize = 2 }; // åˆ†é¡µæŸ¥è¯¢
        var data5 = base.GetPageList(it => 1 == 1, p);
        Console.Write(p.TotalCount);//返回总数
        Console.Write(p.TotalCount); //返回总数
        var data6 = base.GetPageList(it => 1 == 1, p, it => SqlFunc.GetRandom(), OrderByType.Asc);// åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount);//返回总数
        List<IConditionalModel> conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel() { FieldName= typeof(MesQaItemsDetectDetail5).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc);
        var data6 =
            base.GetPageList(it => 1 == 1, p,
                it => SqlFunc.GetRandom()); // åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount); //返回总数
        base.AsQueryable().Where(x => 1 == 1).ToList();//支持了转换成queryable,我们可以用queryable实现复杂功能
        var conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel
        {
            FieldName = typeof(MesQaItemsDetectDetail5).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 MesQaItemsDetectDetail5() { };//测试参数
        var insertArray = new MesQaItemsDetectDetail5[] { insertData };
        base.Insert(insertData);//插入
        base.InsertRange(insertArray);//批量插入
        var id = base.InsertReturnIdentity(insertData);//插入返回自增列
        base.AsInsertable(insertData).ExecuteCommand();//我们可以转成 Insertable实现复杂插入
        var insertData = new MesQaItemsDetectDetail5(); //测试参数
        var insertArray = new[] { insertData };
        base.Insert(insertData); //插入
        base.InsertRange(insertArray); //批量插入
        var id = base.InsertReturnIdentity(insertData); //插入返回自增列
        AsInsertable(insertData).ExecuteCommand(); //我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new MesQaItemsDetectDetail5() {  };//测试参数
        var updateArray = new MesQaItemsDetectDetail5[] { updateData };//测试参数
        base.Update(updateData);//根据实体更新
        base.UpdateRange(updateArray);//批量更新
        /*********更新*********/
        var updateData = new MesQaItemsDetectDetail5(); //测试参数
        var updateArray = new[] { updateData }; //测试参数
        base.Update(updateData); //根据实体更新
        base.UpdateRange(updateArray); //批量更新
        //base.Update(it => new MesQaItemsDetectDetail5() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=1
        base.AsUpdateable(updateData).ExecuteCommand();  //转成Updateable可以实现复杂的插入
        AsUpdateable(updateData).ExecuteCommand(); //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new MesQaItemsDetectDetail5(); //测试参数
        base.Delete(deldata); //根据实体删除
        base.DeleteById(1); //根据主键删除
        base.DeleteById(new[] { 1, 2 }); //根据主键数组删除
        base.Delete(it => 1 == 2); //根据条件删除
        AsDeleteable().Where(it => 1 == 2)
            .ExecuteCommand(); //转成Deleteable实现复杂的操作
    }
        /*********删除*********/
        var deldata = new MesQaItemsDetectDetail5() {  };//测试参数
        base.Delete(deldata);//根据实体删除
        base.DeleteById(1);//根据主键删除
        base.DeleteById(new int[] { 1,2});//根据主键数组删除
        base.Delete(it=>1==2);//根据条件删除
        base.AsDeleteable().Where(it=>1==2).ExecuteCommand();//转成Deleteable实现复杂的操作
    }
    #endregion
 }
}
MES.Service/service/Warehouse/MesDepotSectionsManager.cs
@@ -8,7 +8,7 @@
public class MesDepotSectionsManager : Repository<MesDepotSections>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    public string GetSectionName(WarehouseQuery query)
    {
        var sectionName = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
@@ -17,10 +17,70 @@
            .Select((a, b) => a.DepotSectionName).Single();
        if (sectionName == null)
        {
            throw new Exception("库位编码 " + query.sectionCode + " ä¸å­˜åœ¨ï¼Œè¯·ç¡®è®¤ï¼");
        }
        return sectionName;
    }
    //库位变更
    public MesDepotSections ScanInDepotSectionsName(WarehouseQuery query)
    {
        if (string.IsNullOrEmpty(query.sectionCode))
            throw new Exception("请扫库位条码!");
        var mesDepotSections = Db.Queryable<MesDepotSections, MesDepots>(
                (a, b) =>
                    new JoinQueryInfos(JoinType.Inner, a.DepotId == b.DepotId))
            .Where((a, b) => a.DepotSectionCode == query.sectionCode)
            .Select((a, b) => new MesDepotSections
            {
                DepotSectionName = a.DepotSectionName,
                DepotCode = b.DepotCode,
                DepotName = b.DepotName
            }).First();
        if (mesDepotSections == null)
            throw new Exception("库位编码" + query.sectionCode + " ä¸å­˜åœ¨ï¼Œè¯·ç¡®è®¤!");
        return mesDepotSections;
    }
    //库位变更
    public MesInvItemStocks ScanEditBarcode(WarehouseQuery entity)
    {
        if (string.IsNullOrEmpty(entity.sectionCode))
            throw new Exception("请扫库位条码!");
        var mesDepotSections = Db.Queryable<MesDepotSections, MesDepots>(
                (a, b) =>
                    new JoinQueryInfos(JoinType.Inner,
                        a.Zuid.ToString() == b.Zuid))
            .Where((a, b) => a.DepotSectionCode == entity.sectionCode)
            .First();
        if (mesDepotSections == null)
            throw new Exception("库位编码" + entity.sectionCode + " ä¸å­˜åœ¨ï¼Œè¯·ç¡®è®¤ï¼");
        var mesInvItemStocks = Db.Queryable<MesInvItemStocks>()
            .Where(s => s.ItemBarcode == entity.barcode).First();
        if (mesInvItemStocks == null) throw new Exception("条码在仓库中不存在,请核对!");
        if (mesInvItemStocks.DepotsCode != mesDepotSections.DepotCode)
            throw new Exception(
                "条码原仓库:" + mesInvItemStocks.DepotsCode + " ä¸Žç›®æ ‡ä»“库:" +
                mesDepotSections.DepotCode + " ä¸ä¸€è‡´ï¼Œåº“位变更失败!");
        UseTransaction(db =>
        {
            return db.Updateable<MesInvItemStocks>()
                .SetColumns(s => s.DepotsCode == mesDepotSections.DepotCode)
                .SetColumns(s => s.DepotSectionsCode == entity.sectionCode)
                .Where(s => s.ItemBarcode == entity.barcode)
                .ExecuteCommand();
        });
        return mesInvItemStocks;
    }
    //调拨入库
}
MES.Service/service/Warehouse/MesInvBusiness2Manager.cs
@@ -1,78 +1,78 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using MES.Service.DB;
using MES.Service.DB;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.Warehouse
{
namespace MES.Service.service.Warehouse;
public class MesInvBusiness2Manager : Repository<MesInvBusiness2>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesInvBusiness2Manager.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 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 p = new PageModel { PageIndex = 1, PageSize = 2 }; // åˆ†é¡µæŸ¥è¯¢
        var data5 = base.GetPageList(it => 1 == 1, p);
        Console.Write(p.TotalCount);//返回总数
        Console.Write(p.TotalCount); //返回总数
        var data6 = base.GetPageList(it => 1 == 1, p, it => SqlFunc.GetRandom(), OrderByType.Asc);// åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount);//返回总数
        List<IConditionalModel> conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel() { FieldName= typeof(MesInvBusiness2).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc);
        var data6 =
            base.GetPageList(it => 1 == 1, p,
                it => SqlFunc.GetRandom()); // åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount); //返回总数
        base.AsQueryable().Where(x => 1 == 1).ToList();//支持了转换成queryable,我们可以用queryable实现复杂功能
        var conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel
        {
            FieldName = typeof(MesInvBusiness2).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 MesInvBusiness2() { };//测试参数
        var insertArray = new MesInvBusiness2[] { insertData };
        base.Insert(insertData);//插入
        base.InsertRange(insertArray);//批量插入
        var id = base.InsertReturnIdentity(insertData);//插入返回自增列
        base.AsInsertable(insertData).ExecuteCommand();//我们可以转成 Insertable实现复杂插入
        var insertData = new MesInvBusiness2(); //测试参数
        var insertArray = new[] { insertData };
        base.Insert(insertData); //插入
        base.InsertRange(insertArray); //批量插入
        var id = base.InsertReturnIdentity(insertData); //插入返回自增列
        AsInsertable(insertData).ExecuteCommand(); //我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new MesInvBusiness2() {  };//测试参数
        var updateArray = new MesInvBusiness2[] { updateData };//测试参数
        base.Update(updateData);//根据实体更新
        base.UpdateRange(updateArray);//批量更新
        /*********更新*********/
        var updateData = new MesInvBusiness2(); //测试参数
        var updateArray = new[] { updateData }; //测试参数
        base.Update(updateData); //根据实体更新
        base.UpdateRange(updateArray); //批量更新
        //base.Update(it => new MesInvBusiness2() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=1
        base.AsUpdateable(updateData).ExecuteCommand();  //转成Updateable可以实现复杂的插入
        AsUpdateable(updateData).ExecuteCommand(); //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new MesInvBusiness2(); //测试参数
        base.Delete(deldata); //根据实体删除
        base.DeleteById(1); //根据主键删除
        base.DeleteById(new[] { 1, 2 }); //根据主键数组删除
        base.Delete(it => 1 == 2); //根据条件删除
        AsDeleteable().Where(it => 1 == 2)
            .ExecuteCommand(); //转成Deleteable实现复杂的操作
    }
        /*********删除*********/
        var deldata = new MesInvBusiness2() {  };//测试参数
        base.Delete(deldata);//根据实体删除
        base.DeleteById(1);//根据主键删除
        base.DeleteById(new int[] { 1,2});//根据主键数组删除
        base.Delete(it=>1==2);//根据条件删除
        base.AsDeleteable().Where(it=>1==2).ExecuteCommand();//转成Deleteable实现复杂的操作
    }
    #endregion
 }
}
MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs
@@ -59,8 +59,8 @@
        // æŸ¥è¯¢
        var result = Db
            .Queryable<MesQaItemsDetect01, MesInvItemArn, MesInvItemArnDetail,
                MesItems, MesUnit,MesQaItemsDetectDetail5>(
                (a, d, b, c, t,z) => new object[]
                MesItems, MesUnit, MesQaItemsDetectDetail5>(
                (a, d, b, c, t, z) => new object[]
                {
                    JoinType.Inner, d.BillNo == a.LotNo,
                    JoinType.Inner, d.Id == b.Mid && b.ItemNo == a.ItemNo,
@@ -70,9 +70,9 @@
                    JoinType.Inner, c.Fpurchaseunitid == t.Id,
                    JoinType.Inner, z.ReleaseNo == a.ReleaseNo
                })
            .Where((a, d, b, c, t,z) => a.FngHandle == "退货" &&
                      z.FcheckResu == "不合格" &&
                                      query.ItemArnDetailIds.Contains(b.Id))
            .Where((a, d, b, c, t, z) => a.FngHandle == "退货" &&
                                         z.FcheckResu == "不合格" &&
                                         query.ItemArnDetailIds.Contains(b.Id))
            .Select((a, d, b, c, t) => new Material
            {
                FmrMode = a.Fmrmode,
MES.Service/service/Warehouse/MesInvItemMovesCDetailsManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
using MES.Service.DB;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.Warehouse;
public class
    MesInvItemMovesCDetailsManager : Repository<MesInvItemMovesCDetails>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesInvItemMovesCDetailsManager.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(MesInvItemMovesCDetails).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 MesInvItemMovesCDetails(); //测试参数
        var insertArray = new[] { insertData };
        base.Insert(insertData); //插入
        base.InsertRange(insertArray); //批量插入
        var id = base.InsertReturnIdentity(insertData); //插入返回自增列
        AsInsertable(insertData).ExecuteCommand(); //我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new MesInvItemMovesCDetails(); //测试参数
        var updateArray = new[] { updateData }; //测试参数
        base.Update(updateData); //根据实体更新
        base.UpdateRange(updateArray); //批量更新
        //base.Update(it => new MesInvItemMovesCDetails() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=1
        AsUpdateable(updateData).ExecuteCommand(); //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new MesInvItemMovesCDetails(); //测试参数
        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/MesInvItemMovesManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,522 @@
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
namespace MES.Service.service.Warehouse;
public class MesInvItemMovesManager : Repository<MesInvItemMoves>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesInvItemMovesManager.cs
    public MovesDto ScanInBarcode(WarehouseQuery query)
    {
        if (string.IsNullOrEmpty(query.sectionCode))
        {
            throw new Exception("请扫库位条码!");
        }
        int pBillTypeId = 300;
        int pTransctionNo = 301;
        var depotQuery = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
                new JoinQueryInfos(
                    JoinType.Inner, a.Zuid.ToString() == b.Zuid))
            .Where((a, b) => a.DepotSectionCode == query.sectionCode)
            .Select((a, b) => new { b.DepotCode })
            .First();
        if (depotQuery == null)
        {
            throw new Exception($"002[库位编码 {query.sectionCode} ä¸å­˜åœ¨ï¼Œè¯·ç¡®è®¤ï¼");
        }
        var cDepotCode = depotQuery.DepotCode;
        // æŸ¥è¯¢è°ƒæ‹”入库信息
        var itemMoveQuery = Db
            .Queryable<MesInvItemMoves, MesInvItemMovesCDetails>((a, b) =>
                new JoinQueryInfos(
                    JoinType.Inner, a.Id == b.ItemMoveId))
            .Where((a, b) => b.ItemBarcode == query.barcode &&
                             a.BillTypeId == pBillTypeId &&
                             a.TransactionNo == pTransctionNo &&
                             a.Status == 1 && SqlFunc.IsNull(b.MoveOk, 0) != 1)
            .Select((a, b) => new { a.Id, a.BillNo, a.InvDepotsCode })
            .First();
        if (itemMoveQuery == null)
        {
            throw new Exception("条码未做调拔出库扫码,请核对!");
        }
        var cBillNo = itemMoveQuery.BillNo;
        var iDepotCode = itemMoveQuery.InvDepotsCode;
        // éªŒè¯åº“区与仓库
        var depotValidationQuery = Db.Queryable<MesDepotSections, MesDepots>(
                (a, b) => new JoinQueryInfos(
                    JoinType.Inner, a.Zuid.ToString() == b.Zuid))
            .Where((a, b) => a.DepotSectionCode == query.sectionCode &&
                             b.DepotCode == iDepotCode)
            .Select((a, b) => new { b.DepotCode })
            .First();
        if (depotValidationQuery == null)
        {
            throw new Exception($"002[库位编码 {query.sectionCode} ä¸å­˜åœ¨ï¼Œè¯·ç¡®è®¤ï¼");
        }
        if (iDepotCode != depotValidationQuery.DepotCode)
        {
            throw new Exception("实际仓库与申请调入仓库不符,请核对!");
        }
        var barcodeCount = Db.Queryable<MesInvItemMovesCDetails>()
            .Where(b =>
                b.ItemBarcode == query.barcode &&
                b.ItemMoveId == itemMoveQuery.Id && b.MoveOk == 1)
            .Count();
        if (barcodeCount > 0)
        {
            throw new Exception("条码调拔已完成,请核对!");
        }
        var barcodeInfo = Db.Queryable<MesInvItemBarcodes>()
            .Where(t => t.ItemBarcode == query.barcode)
            .First();
        if (barcodeInfo == null)
        {
            throw new Exception("条码不存在,请核对!");
        }
        var isAudit = UseTransaction(db =>
        {
            // æ›´æ–°ä¸šåŠ¡ã€åº“å­˜å’Œæ¡ç æ•°æ®
            db.Updateable<MesInvBusiness2>()
                .SetColumns(b => new MesInvBusiness2
                {
                    ToInvDepotsCode = cDepotCode,
                    ToInvDepotSectionsCode = query.sectionCode
                })
                .Where(b =>
                    b.BillNo == cBillNo && b.BillTypeId == pBillTypeId &&
                    b.TransactionCode == pTransctionNo.ToString() &&
                    b.ItemBarcode == query.barcode)
                .ExecuteCommand();
            db.Updateable<MesInvItemStocks>()
                .SetColumns(b => new MesInvItemStocks
                {
                    DepotsCode = cDepotCode,
                    DepotSectionsCode = query.sectionCode
                })
                .Where(b => b.ItemBarcode == query.barcode)
                .ExecuteCommand();
            db.Updateable<MesInvItemMovesCDetails>()
                .SetColumns(b => new MesInvItemMovesCDetails
                {
                    MoveOk = 1,
                    InvDepotsCode = cDepotCode,
                    InvDepotSectionsCode = query.sectionCode
                })
                .Where(b =>
                    b.ItemBarcode == query.barcode &&
                    b.ItemMoveId == itemMoveQuery.Id)
                .ExecuteCommand();
            // æ£€æŸ¥æ˜¯å¦æ‰€æœ‰æ¡ç å·²æ‰«ç ç§»åº“
            var totalQuantity = db.Queryable<MesInvItemOutItems>()
                .Where(a => a.ItemOutId == itemMoveQuery.Id)
                .Sum(a => SqlFunc.IsNull(a.Quantity, 0));
            var scannedQuantity = db.Queryable<MesInvItemMovesCDetails>()
                .Where(a => a.ItemMoveId == itemMoveQuery.Id && a.MoveOk == 1)
                .Sum(a => SqlFunc.IsNull(a.Quantity, 0));
            if (totalQuantity == scannedQuantity)
            {
                return 1;
            }
            return 0;
        });
        MovesDto dto = new MovesDto();
        dto.InAudit = isAudit == 1;
        dto.BarcodesInfo = barcodeInfo;
        return dto;
    }
    public List<MesInvItemMoves> GetBillNo(WarehouseQuery query)
    {
        query.Factory = "1000";
        query.Company = "1000";
        return Db.Queryable<MesInvItemMoves>()
            .Where(it =>
                SqlFunc.IsNull(it.Status, 0) == 1 &&
                SqlFunc.IsNull(it.Ts, 0) != 1)
            .Where(it =>
                it.Factory == query.Factory && it.Company == query.Company)
            .OrderBy(it => it.Id, OrderByType.Desc).ToList();
    }
    public List<MesInvItemMoves> GetPage(WarehouseQuery query)
    {
        return Db.Queryable<MesInvItemMoves>()
            .WhereIF(!string.IsNullOrEmpty(query.billNo),
                s => s.BillNo == query.billNo)
            .OrderByDescending(s => s.Id)
            .ToPageList(query.PageIndex, query.Limit);
    }
    public MovesDto GetItems(WarehouseQuery query)
    {
        MovesDto dto = new MovesDto();
        dto.BarcodeList = GetItemMovesCDetails(query);
        dto.OutItems = GetItemOutItems(query);
        return dto;
    }
    private List<MesInvItemOutItems> GetItemOutItems(WarehouseQuery query)
    {
        var sql = string.Format(
            "SELECT C.ITEM_NO, C.QUANTITY, C.REMARK,         C.REMARK,         S.ITEM_NAME, S.ITEM_MODEL, U.FNAME ITEM_UNIT, D.QUANTITY_OK,         NVL(ST.QUANTITY, 0)      WLKC  FROM MES_INV_ITEM_OUT_ITEMS C           JOIN MES_ITEMS S ON C.ITEM_ID = S.ID           LEFT JOIN MES_UNIT U                     ON U.ID = S.ITEM_UNIT           LEFT JOIN MES_DEPOTS P ON P.DEPOT_CODE = C.DEPOT_CODE           LEFT JOIN MES_DEPOT_SECTIONS E ON E.DEPOT_SECTION_CODE = C.DEPOT_SECTION_CODE           LEFT JOIN (SELECT ITEM_MOVE_ID, ITEM_NO, SUM(QUANTITY) QUANTITY_OK                      FROM MES_INV_ITEM_MOVES_C_DETAILS                   GROUP BY ITEM_MOVE_ID, ITEM_NO) D ON D.ITEM_MOVE_ID = C.ITEM_OUT_ID AND D.ITEM_NO = C.ITEM_NO         LEFT JOIN MES_INV_ITEM_MOVES A         ON A.ID = C.ITEM_OUT_ID       left join (SELECT ITEM_ID, SUM(QUANTITY) QUANTITY, DEPOTS_CODE                 FROM MES_INV_ITEM_STOCKS GROUP BY ITEM_ID, DEPOTS_CODE) ST ON C.ITEM_ID = ST.ITEM_ID AND ST.DEPOTS_CODE = A.FROM_DEPOTS_CODE where C.ITEM_OUT_ID = {0}",
            query.id);
        return Db.Ado.SqlQuery<MesInvItemOutItems>(sql);
    }
    private List<MesInvItemMovesCDetails> GetItemMovesCDetails(
        WarehouseQuery query)
    {
        return Db.Queryable<MesInvItemMovesCDetails, MesItems, MesSupplier>(
                (b, c, f) => new JoinQueryInfos(
                    JoinType.Left,
                    b.ItemNo == c.ItemNo && b.Company == c.Company &&
                    b.Factory == c.Factory,
                    JoinType.Left, b.SuppNo == f.SuppNo
                ))
            .Where((b, c, f) => b.ItemMoveId == query.id)
            .Select((b, c, f) => new MesInvItemMovesCDetails
            {
                FromDepotSectionsCode = b.FromDepotSectionsCode,
                BoardStyle = b.BoardStyle,
                FromDepotsCode = b.FromDepotsCode,
                InvDepotSectionsCode = b.InvDepotSectionsCode,
                InvDepotsCode = b.InvDepotsCode,
                Quantity = b.Quantity,
                LotNo = b.LotNo,
                ItemNo = b.ItemNo,
                ItemBarcode = b.ItemBarcode,
                ItemName = c.ItemName,
                ItemModel = c.ItemModel,
                ItemUnit = c.ItemUnit,
                SuppName = f.SuppName,
                MoveOk =
                    SqlFunc.IsNull(b.MoveOk, 0) // ä½¿ç”¨ SqlFunc.IsNull å®žçް NVL çš„æ•ˆæžœ
            }).ToList();
    }
    public OutItemDto ScanMoveBarcode(WarehouseQuery query)
    {
        var BillTypeId = 300;
        var TransctionNo = 301;
        query.Factory = "1000";
        query.Company = "1000";
        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("请选单据号!");
        var mesInvItemStocks = Db.Queryable<MesInvItemStocks>()
            .Where(s => s.ItemBarcode == query.barcode &&
                        s.Quantity > 0 && s.DepotsCode != null).First();
        if (mesInvItemStocks == null)
            throw new Exception("库存中无此条码,请核对!" + query.barcode);
        var mesInvItemMoves = Db.Queryable<MesInvItemMoves>()
            .Where(d => d.TransactionNo == TransctionNo
                        && SqlFunc.IsNull(d.Status, 0) == 1).First();
        if (mesInvItemMoves == null)
            throw new Exception("出库单 " + query.billNo + "不存在,请确认!");
        var count = Db.Queryable<MesInvItemMoves, MesInvItemMovesCDetails>(
                (a, b) =>
                    new JoinQueryInfos(JoinType.Inner, a.Id == b.ItemMoveId))
            .Where((a, b) => b.ItemBarcode == query.barcode
                             && a.TransactionNo == TransctionNo &&
                             SqlFunc.IsNull(a.Status, 0) == 0).Count();
        if (count > 0) throw new Exception("条码重复扫描,请核对!");
        count = Db.Queryable<MesInvItemMoves, MesInvItemMovesCDetails>((a, b) =>
                new JoinQueryInfos(JoinType.Inner, a.Id == b.ItemMoveId))
            .Where((a, b) => b.ItemBarcode == query.barcode
                             && a.TransactionNo == TransctionNo &&
                             SqlFunc.IsNull(b.MoveOk, 0) == 0).Count();
        if (count > 0) throw new Exception("条码重复扫描,请核对!");
        if (mesInvItemMoves.FromDepotsCode != mesInvItemStocks.DepotsCode)
            throw new Exception("条码现存仓库与申请出货仓库不一致,请核对!");
        var quantity = Db.Queryable<MesInvItemOutItems>()
            .Where(b => b.ItemNo == mesInvItemStocks.ItemNo
                        && b.ItemOutId == mesInvItemMoves.Id)
            .Sum(b => b.Quantity);
        if (quantity == null)
            throw new Exception("扫码物料非本次申请物料,请核对!" + query.barcode);
        var sum = Db.Queryable<MesInvItemMovesCDetails>()
            .Where(b => b.ItemNo == mesInvItemStocks.ItemNo
                        && b.ItemMoveId == mesInvItemMoves.Id)
            .Sum(b => b.Quantity) ?? 0;
        var sumqty = sum + (mesInvItemStocks.Quantity ?? 0);
        if (sumqty > quantity)
            throw new Exception(
                "已扫条码数量或本次扫码数量:" + sumqty + " å¤§äºŽç”³è¯·æ•°é‡ï¼š" + quantity + ",请核对!");
        UseTransaction(db =>
        {
            SaveMesInvItemMovesCDetails(db, query, mesInvItemMoves,
                mesInvItemStocks);
            // Insert into mes_inv_business2
            SaveMesInvBusiness2(db, query, BillTypeId, TransctionNo,
                mesInvItemStocks, mesInvItemMoves);
            if (TransctionNo == 303)
                db.Updateable<MesInvItemStocks>()
                    .SetColumns(s =>
                        s.DepotSectionsCode == mesInvItemMoves.InvDepotsCode)
                    .SetColumns(s =>
                        s.DepotsCode == mesInvItemMoves.InvDepotsCode)
                    .Where(s => s.Id == mesInvItemStocks.Id)
                    .ExecuteCommand();
            else
                db.Updateable<MesInvItemStocks>()
                    .SetColumns(s => s.DepotSectionsCode == null)
                    .SetColumns(s => s.DepotsCode == null)
                    .Where(s => s.Id == mesInvItemStocks.Id)
                    .ExecuteCommand();
            var scanOutShowDb = ScanOutShowDb(query);
            if (CollectionUtil.IsNullOrEmpty(scanOutShowDb))
                db.Updateable<MesInvItemMoves>()
                    .SetColumns(s => s.Status == 1)
                    .SetColumns(s => s.Checkdate == DateTime.Now)
                    .SetColumns(s => s.Checkuser == query.userName)
                    .Where(s => s.BillNo == query.billNo).ExecuteCommand();
            return 1;
        });
        var itemDto = new OutItemDto();
        //itemDto.SumItem = scanOutShowDb;
        if (TransctionNo == 201) itemDto.Quantity = mesInvItemStocks.Quantity;
        itemDto.ItemNo = mesInvItemStocks.ItemNo;
        return itemDto;
    }
    private void SaveMesInvBusiness2(SqlSugarScope Db, WarehouseQuery query,
        int BillTypeId,
        int TransctionNo, MesInvItemStocks mesInvItemStocks,
        MesInvItemMoves mesInvItemMoves)
    {
        var executeCommand = Db.Insertable(new MesInvBusiness2
        {
            Status = 1,
            BillTypeId = BillTypeId,
            TransactionCode = TransctionNo.ToString(),
            BusinessType = 1,
            ItemBarcode = query.barcode,
            ItemNo = mesInvItemStocks.ItemNo,
            LotNo = mesInvItemStocks.LotNo,
            EpFlag = 1,
            Quantity = mesInvItemStocks.Quantity,
            FromInvDepotsCode = mesInvItemStocks.DepotsCode,
            FromInvDepotSectionsCode = mesInvItemStocks.DepotSectionsCode,
            ToInvDepotsCode = TransctionNo == 303
                ? mesInvItemMoves.InvDepotsCode
                : null,
            ToInvDepotSectionsCode = TransctionNo == 303
                ? mesInvItemMoves.InvDepotsCode
                : null,
            CreateBy = query.userName,
            CreateDate = DateTime.Now,
            LastupdateBy = query.userName,
            LastupdateDate = DateTime.Now,
            Factory = query.Factory,
            Company = query.Company,
            TaskNo = mesInvItemStocks.TaskNo,
            BillNo = query.billNo,
            WorkNo = mesInvItemStocks.WorkNo,
            WorkLine = mesInvItemStocks.WorkLine,
            SuppNo = mesInvItemStocks.SuppNo
        }).ExecuteCommand();
        if (executeCommand <= 0) throw new Exception("写入MesInvBusiness2表失败");
    }
    private void SaveMesInvItemMovesCDetails(SqlSugarScope Db,
        WarehouseQuery query,
        MesInvItemMoves mesInvItemMoves, MesInvItemStocks mesInvItemStocks)
    {
        var executeCommand = Db.Insertable(new MesInvItemMovesCDetails
        {
            ItemMoveId = mesInvItemMoves.Id,
            ItemBarcode = query.barcode,
            CItemCode = mesInvItemStocks.CItemCode,
            ItemNo = mesInvItemStocks.ItemNo,
            LotNo = mesInvItemStocks.LotNo,
            Quantity = mesInvItemStocks.Quantity,
            EpFlag = mesInvItemStocks.EpFlag,
            CreateBy = query.userName,
            CreateDate = DateTime.Now,
            LastupdateBy = query.userName,
            LastupdateDate = DateTime.Now,
            CustNo = mesInvItemStocks.CustomerNo,
            TaskNo = mesInvItemStocks.TaskNo,
            FromDepotsCode = mesInvItemStocks.DepotsCode,
            FromDepotSectionsCode = mesInvItemStocks.DepotSectionsCode,
            Factory = mesInvItemStocks.Factory,
            Company = mesInvItemStocks.Company,
            IqcStatus = mesInvItemStocks.IqcStatus,
            Fcar = mesInvItemStocks.Fcar,
            IndepDate = mesInvItemStocks.IndepDate,
            VisableSubmit = mesInvItemStocks.VisableSubmit,
            VisableSubmitBy = mesInvItemStocks.VisableSubmitBy,
            VisableSubmitDate = mesInvItemStocks.VisableSubmitDate,
            BoardStyle = mesInvItemStocks.BoardStyle,
            WorkNo = mesInvItemStocks.WorkNo,
            WorkLine = mesInvItemStocks.WorkLine,
            SuppNo = mesInvItemStocks.SuppNo
        }).ExecuteCommand();
        if (executeCommand <= 0)
            throw new Exception("写入MesInvItemMovesCDetails表失败");
    }
    //scan_out_show_DB
    private List<InventoryItem> ScanOutShowDb(WarehouseQuery query)
    {
        var BillTypeId = 300;
        var TransctionNo = 301;
        query.Factory = "1000";
        query.Company = "1000";
        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("请选单据号!");
        var sql = string.Format(
            "select f_get_sections_code({0}, {1}, b.item_no)                       sections_code , s.erp_item_no , S.ITEM_MODEL , to_char(nvl(b.quantity, 0) - nvl(quantity_ok, 0), 'FM9999999990.00') flist from mes_inv_item_moves a join mes_inv_item_out_items b on b.item_out_id = a.id join mes_items s on b.item_no = s.item_no left join (select ITEM_MOVE_ID, item_no, sum(quantity) quantity_ok             from MES_INV_ITEM_MOVES_C_DETAILS group by ITEM_MOVE_ID, item_no) c                    on c.ITEM_MOVE_ID = a.id and b.item_no = c.item_no where 1 = 1 and a.bill_type_id = {2} and a.transaction_no = {3} and a.bill_no = {4} and nvl(b.quantity, 0) - nvl(quantity_ok, 0) > 0   and rownum < 500   AND A.STATUS = 1 order by f_get_sections_code({0}, {1}, b.item_no), s.erp_item_no ",
            query.Factory, query.Company, BillTypeId, TransctionNo,
            query.billNo);
        var results = Db.Ado.SqlQuery<InventoryItem>(sql);
        return results;
    }
    public bool Audit(WarehouseQuery query)
    {
        return Db.Updateable<MesInvItemMoves>()
            .SetColumns(a => new MesInvItemMoves { Ts = 1 })
            .Where(a => a.Id == query.id)
            .ExecuteCommand() > 0;
    }
    public MessageCenter SaveMessageCenter(WarehouseQuery query)
    {
        var message = MesToErpParam(query);
        var executeReturnIdentity =
            Db.Insertable(message).ExecuteReturnIdentity();
        if (executeReturnIdentity > 0)
        {
            message.Id = executeReturnIdentity;
            message.Pid = executeReturnIdentity;
            return message;
        }
        throw new Exception("获取数据失败");
    }
    public MessageCenter MesToErpParam(WarehouseQuery query)
    {
        var erpParameters = "";
        var title = "";
        var tableName = "MES_INV_ITEM_MOVES_" + query.Type;
        if ("A".Equals(query.Type))
        {
            erpParameters = GetErpParameters(query.billNo);
            title = "调拨入库单" + query.billNo + "审核";
        }
        else if ("B".Equals(query.Type))
        {
            erpParameters = GetDeApprovePam(query.id);
            title = "调拨入库单" + query.billNo + "反审核";
        }
        var ErpUrl = AppsettingsUtility.Settings.ProductionErpUrl;
        var message = new MessageCenter
        {
            TableName = tableName,
            Url = ErpUrl,
            Status = 1,
            CreateBy = query.userName,
            Route = query.billNo,
            Title = title,
            PageName = "Allocation/Add?id=" + query.id +
                       "&billNo=" + query.billNo,
            CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
            Method = "POST",
            Seq = 1,
            Data = erpParameters,
            IsMessage = 0,
            ContentType = "application/x-www-form-urlencoded"
        };
        return message;
    }
    private string GetErpParameters(string? billNo)
    {
        // var invItemIns = Db.Queryable<MesInvItemOuts>()
        //     .Single(x => x.ItemOutNo == billNo);
        //
        // //调用function函数
        // var sql =
        //     $"SELECT F_GENERATE_DATA_INSERTED('{billNo}') FROM DUAL;";
        // var jsonString = Db.Ado.SqlQuerySingle<string>(sql);
        //
        // var encodedUrl = "taskname=CGTL&mesid=" + invItemIns.Id +
        //                  "&optype=create&datajson=" + jsonString;
        //
        // return encodedUrl;
        return null;
    }
    private string GetDeApprovePam(decimal? id)
    {
        // var sid = (int)id;
        // var encodedUrl = "taskname=CGTL&mesid=" + sid +
        //                  "&optype=delete&datajson={}";
        //
        // return encodedUrl;
        return null;
    }
}
MES.Service/service/Warehouse/OpeningReceiptServer.cs
@@ -1,55 +1,43 @@
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
namespace MES.Service.service.Warehouse;
public class OpeningReceiptServer :RepositoryNoEntity
public class OpeningReceiptServer : RepositoryNoEntity
{
    private const string Factory = "1000";
    private const string Company = "1000";
    private const int billTypeId = 100;
    private const int transactionNo = 601;
    public MesInvItemBarcodes ScanInBarcodeQC(WarehouseQuery query)
    {
        if (string.IsNullOrWhiteSpace(query.sectionCode))
        {
            throw new Exception("请扫库位条码!");
        }
        var depotCode = GetDepotCode(query.sectionCode);
        if (depotCode == null)
        {
            throw new Exception($"002[库位编码 {query.sectionCode} ä¸å­˜åœ¨ï¼Œè¯·ç¡®è®¤ï¼");
        }
        int billTypeId = 100;
        int transactionNo = 601;
        var checkBarcodeAlreadyReceived =
            CheckBarcodeAlreadyReceived(query.barcode);
        if (checkBarcodeAlreadyReceived > 0)
        {
            throw new Exception("条码重复扫描,请核对!");
        }
        if (checkBarcodeAlreadyReceived > 0) throw new Exception("条码重复扫描,请核对!");
        if (CheckBarcodeInStock(query.barcode) > 0)
        {
            throw new Exception("条码已在库存中,请核对!");
        }
        var barcodeInfo = GetBarcodeInfo(query.barcode);
        if (barcodeInfo == null || barcodeInfo.ComeFlg != 0)
        {
            throw new Exception("条码不是期初条码,无法用期初入库!");
        }
        var inventoryItemInId = GetOrCreateInventoryItemInId(barcodeInfo,
            depotCode, query.userName, transactionNo, out string billNo);
            depotCode, query.userName, out var billNo);
        UseTransaction(db =>
        {
@@ -64,8 +52,53 @@
            return 1;
        });
        return barcodeInfo;
    }
    public PurchaseInventory GetForm(WarehouseQuery query)
    {
        var mesInvItemBarcodes = Db.Queryable<MesInvItemBarcodes>()
            .Where(s => s.ItemBarcode == query.barcode).Count();
        if (mesInvItemBarcodes <= 0) throw new Exception("条码不存在");
        var mesInvItemInCDetails = Db.Queryable<MesInvItemInCDetails>()
            .Where(s => s.ItemBarcode == query.barcode).Single();
        var entity = new PurchaseInventory
        {
            ItemIns = GetMesInvItemIns(mesInvItemInCDetails.ItemInId),
            InvItemInCDetails =
                GetMesInvItemInCDetailsList(mesInvItemInCDetails.ItemInId),
            ItemStocks = Db.Queryable<MesInvItemStocks>()
                .Where(s => s.ItemBarcode == query.barcode).ToList()
        };
        return entity;
    }
    public MesInvItemIns GetMesInvItemIns(decimal id)
    {
        return Db.Queryable<MesInvItemIns>()
            .Where(s => s.Id == id).Single();
    }
    public List<MesInvItemInCDetails> GetMesInvItemInCDetailsList(decimal id)
    {
        return Db.Queryable<MesInvItemInCDetails, MesUnit>((a, b) =>
                new JoinQueryInfos(JoinType.Inner, a.Unit == b.Id.ToString()))
            .Where((a, b) => a.ItemInId == id)
            .Select((a, b) => new MesInvItemInCDetails
            {
                ItemBarcode = a.ItemBarcode,
                ItemNo = a.ItemNo,
                ItemSname = a.ItemSname,
                DepotSectionCode = a.DepotSectionCode,
                Quantity = a.Quantity,
                Unit = b.Fname,
                Remark = a.Remark
            })
            .ToList();
    }
    private void InsertInventoryDetails(decimal itemInId, string billNo,
@@ -106,14 +139,11 @@
            TaskNo = barcodeInfo.TaskNo
        }).ExecuteCommand();
        if (executeCommand <= 0)
        {
            throw new Exception("写入失败");
        }
        if (executeCommand <= 0) throw new Exception("写入失败");
    }
    private decimal GetOrCreateInventoryItemInId(MesInvItemBarcodes barcodeInfo,
        string depotCode, string userName, int transactionNo, out string billNo)
        string depotCode, string userName, out string billNo)
    {
        var inventory = Db.Queryable<MesInvItemIns>()
            .Where(d => d.InsDate >= DateTime.Today &&
@@ -125,7 +155,6 @@
                        d.SuppNo == barcodeInfo.SuppNo &&
                        d.DepotsCode == depotCode)
            .First();
        if (inventory != null)
        {
            billNo = inventory.BillNo;
@@ -139,7 +168,7 @@
        var executeReturnIdentity = Db.Insertable(new MesInvItemIns
        {
            BillNo = billNo,
            BillTypeId = 100,
            BillTypeId = billTypeId,
            InsDate = DateTime.Now,
            DepotsCode = depotCode,
            TransctionNo = transactionNo.ToString(),
@@ -218,10 +247,7 @@
            SuppNo = barcodeInfo.SuppNo
        }).ExecuteCommand();
        if (executeCommand <= 0)
        {
            throw new Exception("写入失败");
        }
        if (executeCommand <= 0) throw new Exception("写入失败");
    }
    private void InsertBusinessRecord(MesInvItemBarcodes barcodeInfo,
@@ -231,7 +257,7 @@
        var executeCommand = Db.Insertable(new MesInvBusiness2
        {
            Status = 1,
            BillTypeId = 100,
            BillTypeId = billTypeId,
            TransactionCode = "601",
            BusinessType = 1,
            ItemBarcode = barcodeInfo.ItemBarcode,
@@ -254,9 +280,6 @@
            SuppNo = barcodeInfo.SuppNo
        }).ExecuteCommand();
        if (executeCommand <= 0)
        {
            throw new Exception("写入失败");
        }
        if (executeCommand <= 0) throw new Exception("写入失败");
    }
}
MES.Service/util/CollectionUtil.cs
@@ -8,7 +8,7 @@
     */
    public static bool IsNullOrEmpty<T>(List<T> list)
    {
        return list == null || !list.Any();
        return list == null || list.Count == 0;
    }
    /**
MESApplication/Controllers/Base/DemoController.cs
@@ -3,7 +3,6 @@
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace MESApplication.Controllers.Base;
[Route("api/[controller]")]
@@ -28,6 +27,7 @@
        }
        catch (Exception ex)
        {
            throw ex;
            return ResponseResult.ResponseError(ex);
        }
    }
MESApplication/Controllers/Base/LoginController.cs
@@ -7,10 +7,18 @@
namespace MESApplication.Controllers.Base;
/// <summary>
/// ç”¨æˆ·
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class LoginController : ControllerBase
{
    /// <summary>
    /// ç™»å½•
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [HttpPost("login")]
    public ResponseResult login([FromBody] LoginModel model)
    {
@@ -34,6 +42,11 @@
        }
    }
    /// <summary>
    /// é‡è®¾å¯†ç 
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    [HttpPost("resetPassword")]
    public ResponseResult resetPassword([FromBody] JObject data)
    {
@@ -66,7 +79,11 @@
        }
    }
    /// <summary>
    /// ç”¨æˆ·èœå•
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    [HttpPost("getUserMenu")]
    public ResponseResult getUserMenu([FromBody] JObject data)
    {
MESApplication/Controllers/Warehouse/MesDepotSectionsController.cs
@@ -16,6 +16,48 @@
    /***进入模版管理可以修改模版***/
    //ScanInDepotSectionsName
    [HttpPost("ScanInDepotSectionsName")]
    public ResponseResult ScanInDepotSectionsName(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.ScanInDepotSectionsName(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //ScanEditBarcode
    [HttpPost("ScanEditBarcode")]
    public ResponseResult ScanEditBarcode(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.ScanEditBarcode(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //GetSectionName
    [HttpPost("GetSectionName")]
    public ResponseResult GetSectionName(WarehouseQuery query)
MESApplication/Controllers/Warehouse/MesInvBusiness2Controller.cs
@@ -1,170 +1,162 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Dynamic;
using System.Dynamic;
using MES.Service.Modes;
using MES.Service.service;
using MES.Service.service.Warehouse;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
namespace MESApplication.Controllers.Warehouse
namespace MESApplication.Controllers.Warehouse;
[ApiController]
[Route("api/[controller]")]
public class MesInvBusiness2Controller : ControllerBase
{
    [ApiController]
    [Route("api/[controller]")]
    public class MesInvBusiness2Controller : ControllerBase
    private readonly MesInvBusiness2Manager m = new();
    /***进入模版管理可以修改模版***/
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList()
    {
        private MesInvBusiness2Manager m = new MesInvBusiness2Manager();
        /***进入模版管理可以修改模版***/
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        /// <returns></returns>
        [HttpPost("GetList")]
        public ResponseResult GetList()
        try
        {
            try
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetList();
            return new ResponseResult
            {
                dynamic resultInfos = new ExpandoObject();
                resultInfos.tbBillList = m.GetList();
                return new ResponseResult
                {
                    status = 0,
                    message = "OK",
                    data = resultInfos
                };
            }
            catch (Exception ex)
            {
                return ResponseResult.ResponseError(ex);
            }
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        /// <summary>
        /// æ ¹æ®ä¸»é”®èŽ·å–
        /// </summary>
        /// <returns></returns>
        [HttpPost("GetById")]
        public ResponseResult GetById(int id)
        catch (Exception ex)
        {
            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] MesInvBusiness2 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] MesInvBusiness2 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] MesInvBusiness2 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);
            }
            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] MesInvBusiness2 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] MesInvBusiness2 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] MesInvBusiness2 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/MesInvItemMovesCDetailsController.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 MesInvItemMovesCDetailsController : ControllerBase
{
    private readonly MesInvItemMovesCDetailsManager 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] MesInvItemMovesCDetails 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] MesInvItemMovesCDetails 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] MesInvItemMovesCDetails 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/MesInvItemMovesController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,306 @@
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 MesInvItemMovesController : ControllerBase
{
    private readonly MesInvItemMovesManager m = new();
    //ScanInBarcode
    [HttpPost("ScanInBarcode")]
    public ResponseResult ScanInBarcode(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.ScanInBarcode(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    [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);
        }
    }
    [HttpPost("SaveMessageCenter")]
    public ResponseResult SaveMessageCenter(WarehouseQuery entity)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.SaveMessageCenter(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //GetPage
    [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);
        }
    }
    //ScanMoveBarcode
    [HttpPost("ScanMoveBarcode")]
    public ResponseResult ScanMoveBarcode(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.ScanMoveBarcode(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    // GetBillNo
    [HttpPost("GetBillNo")]
    public ResponseResult GetBillNo(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetBillNo(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] MesInvItemMoves 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] MesInvItemMoves 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] MesInvItemMoves 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/OpeningReceiptController.cs
@@ -31,4 +31,24 @@
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("GetForm")]
    public ResponseResult GetForm(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetForm(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
MESApplication/Filter/ActionFilter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,160 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Mvc.Filters;
using Newtonsoft.Json;
using System.Diagnostics;
using System.Text;
namespace MESApplication
{
    /// <summary>
    /// æ–¹æ³•过滤器
    /// </summary>
    public class ActionFilter : IActionFilter
    {
        /// <summary>
        /// ç›‘控日志
        /// </summary>
        public static ILogger LoggerMonitor { get; set; }
        /// <summary>
        /// é”™è¯¯æ—¥å¿—
        /// </summary>
        public static ILogger LoggerError { get; set; }
        private Stopwatch _stopwatch;
        /// <summary>
        /// åˆ›å»ºè¯·æ±‚日志文本
        /// </summary>
        /// <param name="method"></param>
        /// <param name="controllerName"></param>
        /// <param name="actionName"></param>
        /// <param name="actionArgs"></param>
        /// <returns></returns>
        private static string CreateRequestLogText(string method, string controllerName, string actionName, string requestHead, string requestBody)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} è¯·æ±‚{method}/{controllerName}/{actionName}接口,请求Head:{requestHead}\n");
            sb.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} è¯·æ±‚{method}/{controllerName}/{actionName}接口,请求Body:{requestBody}\n");
            return sb.ToString();
        }
        /// <summary>
        /// åˆ›å»ºå“åº”日志文本
        /// </summary>
        /// <param name="method"></param>
        /// <param name="controllerName"></param>
        /// <param name="actionName"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        private static string CreateResponseLogText(string method, string controllerName, string actionName, object result)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} å®Œæˆè¯·æ±‚{method}/{controllerName}/{actionName}接口,返回结果:");
            if (result != null)
            {
                sb.Append($"{JsonConvert.SerializeObject(result)}");
            }
            else
            {
                sb.Append($"无");
            }
            return sb.ToString();
        }
        /// <summary>
        /// æ–¹æ³•执行前
        /// </summary>
        /// <param name="context"></param>
        /// <exception cref="NotImplementedException"></exception>
        public async void OnActionExecuting(ActionExecutingContext context)
        {
            // ErrorLog.Write("==================================================================================================================================");
            _stopwatch = new Stopwatch();
            _stopwatch.Start();
            //throw new NotImplementedException();
            if (LoggerMonitor != null)
            {
                //记录请求参数日志
                ControllerActionDescriptor desc = context.ActionDescriptor as ControllerActionDescriptor;
                if (desc != null)
                {
                    Dictionary<string, object> headers = new Dictionary<string, object>();
                    var requestHeaders = context.HttpContext.Request.Headers;
                    // è®¿é—®è¯·æ±‚中的 header ä¿¡æ¯
                    foreach (var header in requestHeaders)
                    {
                        headers.Add(header.Key, header.Value);
                    }
                    var requestHead = JsonConvert.SerializeObject(headers);
                    Dictionary<string, object> bodys = new Dictionary<string, object>();
                    var actionArguments = context.ActionArguments;
                    // è®¿é—®è¯·æ±‚中的参数
                    foreach (var argument in actionArguments)
                    {
                        //dic.Add(argument.Key, argument.Value);
                        var parameter = JsonConvert.DeserializeObject<Dictionary<string, object>>(argument.Value.ToString());
                        foreach (var item in parameter)
                        {
                            bodys.Add(item.Key, item.Value);
                        }
                    }
                    var requestBody = JsonConvert.SerializeObject(bodys);
                    var logText = CreateRequestLogText(context.HttpContext.Request.Method, desc.ControllerName, desc.ActionName, requestHead, requestBody);
                    //LoggerMonitor.LogDebug(logText);
                    //ErrorLog.Write(logText);
                }
            }
        }
        public void OnActionExecuted(ActionExecutedContext context)
        {
            //throw new NotImplementedException();
            _stopwatch.Stop();
            long elaspsedMillisedconds = _stopwatch.ElapsedMilliseconds;
            string msg = "";
            //string msg = $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} æŽ¥å£æ‰§è¡Œæ—¶é—´ï¼š{elaspsedMillisedconds}毫秒";
            //ErrorLog.Write(msg);
            if (context.Exception != null)
            {
                // è®°å½•异常日志
                if (LoggerError != null)
                {
                    LoggerError.LogError(context.Exception, context.Exception.Message);
                    ErrorLog.Write($@"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} æŽ¥å£å¼‚常:{JsonConvert.SerializeObject(context.Exception)}");
                    ErrorLog.Write($@"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} å¼‚常提示信息:{JsonConvert.SerializeObject(context.Exception.Message)}");
                    ErrorLog.Write("==================================================================================================================================");
                }
            }
            if (LoggerMonitor != null)
            {
                // è®°å½•请求结果日志
                ControllerActionDescriptor desc = context.ActionDescriptor as ControllerActionDescriptor;
                if (desc != null)
                {
                    ObjectResult rst = context.Result as ObjectResult;
                    object rstValue = rst != null ? rst.Value : null;
                    var logText = CreateResponseLogText(
                        context.HttpContext.Request.Method,
                        desc.ControllerName,
                        desc.ActionName,
                        rstValue);
                    LoggerMonitor.LogDebug(logText);
                    ErrorLog.Write(logText);
                }
            }
            //  ErrorLog.Write(msg);
            //  ErrorLog.Write("==================================================================================================================================");
        }
    }
}
MESApplication/Filter/ErrorLog.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
namespace MESApplication
{
    public class ErrorLog
    {
        private static string DirectoryPath = AppDomain.CurrentDomain.BaseDirectory;
        /// <summary>
        /// å†™å…¥æ“ä½œæ—¥å¿—到文件中
        /// </summary>
        /// <param name="moduleName">模块名字</param>
        /// <param name="message">错误文本信息</param>
        /// <param name="ex">异常</param>
        public static void Write(string moduleName, string message, Exception ex)
        {
            //string directoryPath = $@"C:\至简科技\MyDemoData\.NetCore接口过滤器项目\FilterText\FilterText\Logger\{DateTime.Now.ToString("yyyyMMdd")}"; // ç›®æ ‡ç›®å½•路径
            string directoryPath = $@"{DirectoryPath}{"log"}"; // ç›®æ ‡ç›®å½•路径
            if (!Directory.Exists(directoryPath))
            {
                // å¦‚果目录不存在,则新建文件夹
                Directory.CreateDirectory(directoryPath);
            }
            string filePath = directoryPath + $@"\{DateTime.Now.ToString("yyyyMMddHH")}.log"; // ç›®æ ‡æ–‡ä»¶è·¯å¾„
            if (!File.Exists(filePath))
            {
                // å¦‚果文件不存在,则创建文件
                using (File.Create(filePath))
                {
                    //Console.WriteLine("文件已创建");
                }
            }
            LogToFile(filePath, message);
        }
        /// <summary>
        /// å†™å…¥æ“ä½œæ—¥å¿—到文件中
        /// </summary>
        /// <param name="moduleName">模块名字</param>
        /// <param name="ex">异常</param>
        public static void Write(string moduleName, Exception ex)
        {
            Write(moduleName, moduleName, ex);
        }
        /// <summary>
        /// å†™å…¥è¿‡ç¨‹æ•°æ®æˆ–说明到文件中,以便跟踪
        /// </summary>
        /// <param name="moduleName">模块名字</param>
        /// <param name="ex">异常</param>
        public static void Write(string message)
        {
            Write(String.Empty, message, null);
        }
        /// <summary>
        /// æ–‡æœ¬å†™å…¥
        /// </summary>
        /// <param name="logMessage"></param>
        private static void LogToFile(string logFilePath, string logMessage)
        {
            using (StreamWriter sw = File.AppendText(logFilePath))
            {
                sw.WriteLine($"{logMessage}");
            }
        }
    }
}
MESApplication/MESApplication.csproj
@@ -5,10 +5,11 @@
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
        <InvariantGlobalization>true</InvariantGlobalization>
        <GenerateDocumentationFile>True</GenerateDocumentationFile>
    </PropertyGroup>
    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0"/>
        <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.1">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -17,12 +18,12 @@
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="Oracle.EntityFrameworkCore" Version="8.21.121"/>
        <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0"/>
        <PackageReference Include="Oracle.EntityFrameworkCore" Version="8.21.121" />
        <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
    </ItemGroup>
    <ItemGroup>
        <ProjectReference Include="..\MES.Service\MES.Service.csproj"/>
        <ProjectReference Include="..\MES.Service\MES.Service.csproj" />
    </ItemGroup>
</Project>
MESApplication/Startup.cs
@@ -4,6 +4,7 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Swashbuckle.AspNetCore.SwaggerUI;
using System.Reflection;
namespace MESApplication;
@@ -35,6 +36,9 @@
            c.SwaggerDoc("v1",
                new OpenApiInfo
                    { Title = "MESApplication.Api", Version = "v1" });
            var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
            var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
            c.IncludeXmlComments(xmlPath, true);
        });
        //配置JSON.NET
@@ -66,6 +70,14 @@
                        "OPTIONS")
            );
        });
        #region æŽ¥å£è¡ŒåŠ¨è¿‡æ»¤å™¨
        services.AddControllers(options => {
            options.Filters.Add(new ActionFilter());
        });
        var serviceProvider = services.BuildServiceProvider();
        ActionFilter.LoggerError = serviceProvider.GetRequiredService<ILogger<ActionFilter>>();
        #endregion
    }
    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
@@ -92,5 +104,10 @@
        app.UseAuthorization();
        app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
        //////////////////////////
        ///////////////////////////
    }
}
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