zjh
21 小时以前 da3b2cfb3a34a7b1f83dcd9fc762b1d2459547dc
添加退货申请单接口
已添加13个文件
已修改2个文件
1751 ■■■■■ 文件已修改
StandardPda/MES.Service/Dto/service/ItemOut.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/service/ItemOutFrom.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/service/ItemOutList.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/DeliveryDetail.cs 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesInvItemArnDetail.cs 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesInvItemIns.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesInvItemOutItems.cs 259 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesInvItemOuts.cs 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemArnManager.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemInsManager.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemOutItemsManager.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs 369 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/Warehouse/MesInvItemOutsController.cs 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/MESApplication.csproj 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/service/ItemOut.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
namespace MES.Service.Dto.service;
public class ItemOut
{
    public ItemOutFrom from { get; set; }
    public List<ItemOutList> items { get; set; }
}
StandardPda/MES.Service/Dto/service/ItemOutFrom.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
namespace MES.Service.Dto.service;
public class ItemOutFrom
{
    public string Type { get; set; }
    public string? CreateBy { get; set; }
    public string? FMRMODE { get; set; }
    public string? RtnNo{ get; set; }
    public string DepotId { get; set; }
    public string SupperId { get; set; }
    //public string? AsnNo { get; set; }
    public string? MesNo { get; set; }
    public string? SqNo { get; set; }
}
StandardPda/MES.Service/Dto/service/ItemOutList.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
namespace MES.Service.Dto.service;
public class ItemOutList
{
    public string SrcDocNo { get; set; }
    public string SrcDocLineNo { get; set; }
    public string AsnLineNo { get; set; }
    public string itemId { get; set; }
    public string qty { get; set; }
    public string SqNo { get; set; }
    public string MesNo { get; set; }
    //public string? AsnNo { get; set; }
}
StandardPda/MES.Service/Modes/DeliveryDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,230 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace MES.Service.Modes
{
    /// <summary>
    ///
    ///</summary>
    [SugarTable("DELIVERY_DETAIL")]
    public class DeliveryDetail
    {
        /// <summary>
        /// SEQ_DELIVERY_DETAIL
        ///</summary>
        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
        public decimal Id { get; set; }
        /// <summary>
        /// DELIVERY_MAIN的id
        ///</summary>
        [SugarColumn(ColumnName = "PID")]
        public decimal? Pid { get; set; }
        /// <summary>
        /// é€è´§å•号(主业务标识)
        ///</summary>
        [SugarColumn(ColumnName = "ZZASN")]
        public string? Zzasn { get; set; }
        /// <summary>
        /// é€è´§å•行号
        ///</summary>
        [SugarColumn(ColumnName = "ZZITEM_ID")]
        public string? ZzitemId { get; set; }
        /// <summary>
        /// é‡‡è´­å‡­è¯å·ï¼ˆPO单号)
        ///</summary>
        [SugarColumn(ColumnName = "ZZPO_NO")]
        public string? ZzpoNo { get; set; }
        /// <summary>
        /// é‡‡è´­è®¢å•行项目
        ///</summary>
        [SugarColumn(ColumnName = "ZZPO_ITEM_ID")]
        public string? ZzpoItemId { get; set; }
        /// <summary>
        /// å°ç±³é€€æ¢è´§å•号
        ///</summary>
        [SugarColumn(ColumnName = "ZZREQNR")]
        public string? Zzreqnr { get; set; }
        /// <summary>
        /// é€€æ¢è´§ç”³è¯·å•行号
        ///</summary>
        [SugarColumn(ColumnName = "ZZREQLN")]
        public string? Zzreqln { get; set; }
        /// <summary>
        /// å°ç±³å†…部物料编码
        ///</summary>
        [SugarColumn(ColumnName = "ZZPRODUCT_ID")]
        public string? ZzproductId { get; set; }
        /// <summary>
        /// å·¥åŽ‚å®žé™…ä½¿ç”¨æ–™å·
        ///</summary>
        [SugarColumn(ColumnName = "ZZVPRODUCT_ID")]
        public string? ZzvproductId { get; set; }
        /// <summary>
        /// åº“存单位编码
        ///</summary>
        [SugarColumn(ColumnName = "ZZSKU")]
        public string? Zzsku { get; set; }
        /// <summary>
        /// ç‰©æ–™æè¿°ï¼ˆå¦‚:手机屏幕组件)
        ///</summary>
        [SugarColumn(ColumnName = "MAKTX")]
        public string? Maktx { get; set; }
        /// <summary>
        /// äº§å“åž‹å·ï¼ˆç¤ºä¾‹ï¼šXiaomi 14 Ultra)
        ///</summary>
        [SugarColumn(ColumnName = "MODELNUMBER")]
        public string? Modelnumber { get; set; }
        /// <summary>
        /// è®¢å•需求数量
        ///</summary>
        [SugarColumn(ColumnName = "ZZQUANTITY")]
        public string? Zzquantity { get; set; }
        /// <summary>
        /// è®¡é‡å•位(如:个/箱)
        ///</summary>
        [SugarColumn(ColumnName = "ZZUNIT")]
        public string? Zzunit { get; set; }
        /// <summary>
        /// æœªå®Œæˆæ•°é‡ï¼ˆå¾…补货量)
        ///</summary>
        [SugarColumn(ColumnName = "ZZOPEN_QTY")]
        public string? ZzopenQty { get; set; }
        /// <summary>
        /// å®žé™…收货数量
        ///</summary>
        [SugarColumn(ColumnName = "ACT_GR_QTY")]
        public string? ActGrQty { get; set; }
        /// <summary>
        /// Shipment批次数量
        ///</summary>
        [SugarColumn(ColumnName = "SHIPMENTID_NUM")]
        public string? ShipmentidNum { get; set; }
        /// <summary>
        /// å“ç‰Œåç§°ï¼ˆå¦‚:Xiaomi)
        ///</summary>
        [SugarColumn(ColumnName = "BRAND")]
        public string? Brand { get; set; }
        /// <summary>
        /// ç”Ÿäº§åœ°ï¼ˆç¤ºä¾‹ï¼šä¸­å›½æ·±åœ³ï¼‰
        ///</summary>
        [SugarColumn(ColumnName = "PLACE")]
        public string? Place { get; set; }
        /// <summary>
        /// å“ç‰Œç±»åž‹ï¼ˆè‡ªæœ‰/ODM/OEM)
        ///</summary>
        [SugarColumn(ColumnName = "BRAND_TYPE")]
        public string? BrandType { get; set; }
        /// <summary>
        /// ç‰©æµæ‰¹æ¬¡å”¯ä¸€æ ‡è¯†
        ///</summary>
        [SugarColumn(ColumnName = "ZSHIPMENT_ID")]
        public string? ZshipmentId { get; set; }
        /// <summary>
        /// è¯¦ç»†é…é€åœ°å€ï¼ˆçœå¸‚区街道门牌号)
        ///</summary>
        [SugarColumn(ColumnName = "ADDRESS_DETAIL")]
        public string? AddressDetail { get; set; }
        /// <summary>
        /// è°ƒå‡ºé¡¹ç›®å·ï¼ˆè°ƒæ‹¨æ¥æºæ ‡è¯†ï¼‰
        ///</summary>
        [SugarColumn(ColumnName = "BEDNR")]
        public string? Bednr { get; set; }
        /// <summary>
        /// è°ƒå‡ºä»“类型(成品仓/原料仓)
        ///</summary>
        [SugarColumn(ColumnName = "WARE_TYPE_FROM")]
        public string? WareTypeFrom { get; set; }
        /// <summary>
        /// è°ƒå…¥ä»“类型
        ///</summary>
        [SugarColumn(ColumnName = "WARE_TYPE_TO")]
        public string? WareTypeTo { get; set; }
        /// <summary>
        /// ç‰©æŽ§è°ƒæ‹¨å•号
        ///</summary>
        [SugarColumn(ColumnName = "XMSTO_NO")]
        public string? XmstoNo { get; set; }
        /// <summary>
        /// è°ƒæ‹¨å•行项
        ///</summary>
        [SugarColumn(ColumnName = "XMSTO_ITEM_NO")]
        public string? XmstoItemNo { get; set; }
        /// <summary>
        /// æœ€åŽä¿®æ”¹æ—¶é—´ï¼ˆæ ¼å¼ï¼šyyyyMMddHHmmss)
        ///</summary>
        [SugarColumn(ColumnName = "CHANGED_AT")]
        public string? ChangedAt { get; set; }
        /// <summary>
        /// æ•°æ®åˆ›å»ºæ—¶é—´ï¼ˆæ ¼å¼ï¼šyyyyMMddHHmmss)
        ///</summary>
        [SugarColumn(ColumnName = "CREATED_AT")]
        public string? CreatedAt { get; set; }
        /// <summary>
        /// å…³è”项目机型(多值逗号分隔)
        ///</summary>
        [SugarColumn(ColumnName = "APP_MODELS")]
        public string? AppModels { get; set; }
        /// <summary>
        /// å¤–部系统凭证号(如ERP单号)
        ///</summary>
        [SugarColumn(ColumnName = "EXT_DOC_NO")]
        public string? ExtDocNo { get; set; }
        /// <summary>
        /// å¤–部凭证行项目
        ///</summary>
        [SugarColumn(ColumnName = "EXT_DOC_ITEM")]
        public string? ExtDocItem { get; set; }
        /// <summary>
        /// æµ·å…³HS编码(进出口报关用)
        ///</summary>
        [SugarColumn(ColumnName = "BATCH_ID")]
        public string? BatchId { get; set; }
        /// <summary>
        /// ä¼˜å…ˆé‡‡è´­æ ‡è¯†ï¼ˆç´§æ€¥å¤‡æ–™æ ‡è®°ï¼‰
        ///</summary>
        [SugarColumn(ColumnName = "BATCH_ROW")]
        public string? BatchRow { get; set; }
        /// <summary>
        /// ä¸²å·ç®¡ç†æ ‡è¯†ï¼ˆY/N,控制序列号采集)
        ///</summary>
        [SugarColumn(ColumnName = "IS_IDENTIFICATION")]
        public string? IsIdentification { get; set; }
    }
}
StandardPda/MES.Service/Modes/MesInvItemArnDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,291 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
/// </summary>
[SugarTable("MES_INV_ITEM_ARN_DETAIL")]
public class MesInvItemArnDetail
{
    /// <summary>
    ///     SEQ_INV_ID
    /// </summary>
    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     ä¸»è¡¨ID
    /// </summary>
    [SugarColumn(ColumnName = "MID")]
    public decimal? Mid { get; set; }
    /// <summary>
    ///     é‡‡è´­å•号
    /// </summary>
    [SugarColumn(ColumnName = "EBELN")]
    public string? Ebeln { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•行号
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_LINE")]
    public decimal? EbelnLine { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•数量
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_QTY")]
    public decimal? EbelnQty { get; set; }
    /// <summary>
    ///     ç‰©æ–™ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_NO")]
    public string? ItemNo { get; set; }
    /// <summary>
    ///     æ”¶è´§æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "QUANTITY")]
    public decimal? Quantity { get; set; }
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string? CreateBy { get; set; }
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    ///     æœ€åŽæ›´æ–°äºº
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string? LastupdateBy { get; set; }
    /// <summary>
    ///     æœ€åŽæ›´æ–°æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
    /// <summary>
    ///     åˆ†åŽ‚ç¼–ç 
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string? Factory { get; set; }
    /// <summary>
    ///     å…¬å¸ä»£ç 
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string? Company { get; set; }
    /// <summary>
    ///     é‡‡è´­å•ID
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_K3ID")]
    public string? EbelnK3id { get; set; }
    /// <summary>
    ///     é‡‡è´­å•行ID
    /// </summary>
    [SugarColumn(ColumnName = "LINE_K3ID")]
    public string? LineK3id { get; set; }
    /// <summary>
    ///     æœ¬æ¬¡åº”收数量
    /// </summary>
    [SugarColumn(ColumnName = "SUB_QTY")]
    public decimal? SubQty { get; set; }
    /// <summary>
    ///     ä½™é‡
    /// </summary>
    [SugarColumn(ColumnName = "MARGIN_QTY")]
    public decimal? MarginQty { get; set; }
    /// <summary>
    ///     ä»»åŠ¡å•å·
    /// </summary>
    [SugarColumn(ColumnName = "WORK_NO")]
    public string? WorkNo { get; set; }
    /// <summary>
    ///     æ€¥æ–™æ ‡è¯†
    /// </summary>
    [SugarColumn(ColumnName = "URGENT_FLAG")]
    public decimal? UrgentFlag { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "MEMO")]
    public string? Memo { get; set; }
    /// <summary>
    ///     æ£€éªŒç»“æžœ
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_RES")]
    public string? CheckRes { get; set; }
    /// <summary>
    ///     æ£€éªŒçŠ¶æ€  ï¼ˆå¾…检、分选、特采、已检)
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_STATES")]
    public string? CheckStates { get; set; }
    /// <summary>
    ///     æ”¶è´§ä½™é‡
    /// </summary>
    [SugarColumn(ColumnName = "QUANTITY_M")]
    public decimal? QuantityM { get; set; }
    /// <summary>
    ///     æœ¬æ¬¡åº”收余量
    /// </summary>
    [SugarColumn(ColumnName = "SUB_MQTY")]
    public decimal? SubMqty { get; set; }
    /// <summary>
    ///     æ£€éªŒæ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_DATE")]
    public DateTime? CheckDate { get; set; }
    /// <summary>
    ///     æ˜¯å¦æ£€éªŒ
    /// </summary>
    [SugarColumn(ColumnName = "ISCHECK")]
    public short? Ischeck { get; set; }
    /// <summary>
    ///     å·²æ”¶æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "OK_QTY")]
    public decimal? OkQty { get; set; }
    /// <summary>
    ///     å·²æ”¶ä½™é‡
    /// </summary>
    [SugarColumn(ColumnName = "OK_MQTY")]
    public decimal? OkMqty { get; set; }
    /// <summary>
    ///     äº§å“åž‹å·
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_STYLE")]
    public string? BoardStyle { get; set; }
    /// <summary>
    ///     ä»»åŠ¡å•è¡Œå·
    /// </summary>
    [SugarColumn(ColumnName = "WORK_LINE")]
    public decimal? WorkLine { get; set; }
    /// <summary>
    ///     0、采购单,1、委外单
    /// </summary>
    [SugarColumn(ColumnName = "F_TYPE")]
    public decimal? FType { get; set; }
    /// <summary>
    ///     æ˜¯å¦å…¥åº“
    /// </summary>
    [SugarColumn(ColumnName = "ISDEPS_IN")]
    public short? IsdepsIn { get; set; }
    /// <summary>
    ///     åˆ°è´§å•号
    /// </summary>
    [SugarColumn(ColumnName = "DHA001")]
    public string? Dha001 { get; set; }
    /// <summary>
    ///     å·²å…¥åº“数量
    /// </summary>
    [SugarColumn(ColumnName = "OK_RKQTY")]
    public decimal? OkRkqty { get; set; }
    /// <summary>
    ///     åˆ°è´§å•号
    /// </summary>
    [SugarColumn(ColumnName = "CBILL_NO")]
    public string? CbillNo { get; set; }
    /// <summary>
    ///     é‡‡è´­å…¥åº“数量
    /// </summary>
    [SugarColumn(ColumnName = "CG_RKQTY")]
    public decimal? CgRkqty { get; set; }
    /// <summary>
    ///     ç‰©æ–™ID
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_ID")]
    public decimal? ItemId { get; set; }
    /// <summary>
    ///     é€€è´§æ ‡è¯†
    /// </summary>
    [SugarColumn(ColumnName = "RETURN_FLAG")]
    public decimal? ReturnFlag { get; set; }
    /// <summary>
    ///     é”€å”®è®¢å•号
    /// </summary>
    [SugarColumn(ColumnName = "SALES_ORDER")]
    public string? SalesOrder { get; set; }
    /// <summary>
    ///     ä¸“用物料标识
    /// </summary>
    [SugarColumn(ColumnName = "IS_ZY")]
    public decimal? IsZy { get; set; }
    /// <summary>
    ///     å…¥åº“完成时间
    /// </summary>
    [SugarColumn(ColumnName = "RK_DATE")]
    public DateTime? RkDate { get; set; }
    /// <summary>
    ///     è®¡åˆ’跟踪号
    /// </summary>
    [SugarColumn(ColumnName = "FMTONO")]
    public string? Fmtono { get; set; }
    /// <summary>
    ///     ä¾›åå•号
    /// </summary>
    [SugarColumn(ColumnName = "DELIVERY_NO")]
    public string? DeliveryNo { get; set; }
    /// <summary>
    ///     ä¾›ååˆ†å½•内码
    /// </summary>
    [SugarColumn(ColumnName = "DELIVERY_LINE")]
    public decimal? DeliveryLine { get; set; }
    /// <summary>
    ///     æ‰¹å·
    /// </summary>
    [SugarColumn(ColumnName = "LOT_NO")]
    public string? LotNo { get; set; }
    /// <summary>
    ///     æ ‡è¯†è¯¥ç‰©æ–™æ˜¯å¦å·²å®Œæˆé€€è¡¥æŽ¨é€æ“ä½œï¼ŒN-未推送,Y-已推送
    /// </summary>
    [SugarColumn(ColumnName = "REPLENISHMENT_FLAG")]
    public string? ReplenishmentFlag { get; set; }
    /// <summary>
    ///     è®¡åˆ’行号
    /// </summary>
    [SugarColumn(ColumnName = "PLAN_LINE_NO")]
    public string? PlanLineNo { get; set; }
}
StandardPda/MES.Service/Modes/MesInvItemIns.cs
@@ -312,8 +312,8 @@
    /// <summary>
    ///     æŠ¥å·¥äºº
    /// </summary>
    [SugarColumn(ColumnName = "BGR")]
    public string Bgr { get; set; }
    //[SugarColumn(ColumnName = "BGR")]
    //public string Bgr { get; set; }
    //在数据库查询时忽略这个字段
    [SugarColumn(IsIgnore = true)] public string? DepotName { get; set; }
StandardPda/MES.Service/Modes/MesInvItemOutItems.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,259 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     å‡ºåº“申请物料表
/// </summary>
[SugarTable("MES_INV_ITEM_OUT_ITEMS")]
public class MesInvItemOutItems
{
    /// <summary>
    ///     SEQ_ITEM_ID
    /// </summary>
    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_OUT_ID",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     å‡ºåº“ID
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_OUT_ID")]
    public decimal? ItemOutId { get; set; }
    /// <summary>
    ///     ç‰©æ–™ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_NO")]
    public string? ItemNo { get; set; }
    /// <summary>
    ///     ç”³è¯·æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "QUANTITY")]
    public decimal? Quantity { get; set; }
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string? CreateBy { get; set; }
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    ///     ä¿®æ”¹äºº
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string? LastupdateBy { get; set; }
    /// <summary>
    ///     ä¿®æ”¹æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
    /// <summary>
    ///     å¤‡æ³¨ä¿¡æ¯
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string? Remark { get; set; }
    /// <summary>
    ///     å·¥åŽ‚
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string? Factory { get; set; }
    /// <summary>
    ///     å…¬å¸
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string? Company { get; set; }
    /// <summary>
    ///     æŽ¨ä»‹ä»“库
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_CODE")]
    public string? DepotCode { get; set; }
    /// <summary>
    ///     æŽ¨ä»‹åº“位
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_SECTION_CODE")]
    public string? DepotSectionCode { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "TASK_NO")]
    public string? TaskNo { get; set; }
    /// <summary>
    ///     åˆ°è´§å•号
    /// </summary>
    [SugarColumn(ColumnName = "WORK_NO")]
    public string? WorkNo { get; set; }
    /// <summary>
    ///     åˆ°è´§å•行号
    /// </summary>
    [SugarColumn(ColumnName = "WORK_LINE")]
    public decimal? WorkLine { get; set; }
    /// <summary>
    ///     ERP ä¸»è¡¨ID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_ID")]
    public decimal? ErpId { get; set; }
    /// <summary>
    ///     ERP ä»Žè¡¨ID
    /// </summary>
    [SugarColumn(ColumnName = "ERP_AUTOID")]
    public decimal? ErpAutoid { get; set; }
    /// <summary>
    ///     ERP_料号
    /// </summary>
    [SugarColumn(ColumnName = "ERP_ITEM_NO")]
    public string? ErpItemNo { get; set; }
    /// <summary>
    ///     é¢œè‰²
    /// </summary>
    [SugarColumn(ColumnName = "COLOR_NAME")]
    public string? ColorName { get; set; }
    /// <summary>
    ///     æœ€æ–°ä¸‹è½½æ›´æ–°æ ‡è¯†
    /// </summary>
    [SugarColumn(ColumnName = "UPDATE_FLG")]
    public decimal? UpdateFlg { get; set; }
    /// <summary>
    ///     é‡‡è´­å•ID
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_K3ID")]
    public decimal? EbelnK3id { get; set; }
    /// <summary>
    ///     é‡‡è´­å•行ID
    /// </summary>
    [SugarColumn(ColumnName = "LINE_K3ID")]
    public decimal? LineK3id { get; set; }
    /// <summary>
    ///     é‡‡è´­å•号
    /// </summary>
    [SugarColumn(ColumnName = "EBELN")]
    public string? Ebeln { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•行号
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_LINE")]
    public decimal? EbelnLine { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•数量
    /// </summary>
    [SugarColumn(ColumnName = "EBELN_QTY")]
    public decimal? EbelnQty { get; set; }
    /// <summary>
    ///     äº§å“ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_ITEM")]
    public string? BoardItem { get; set; }
    /// <summary>
    ///     æ˜¯å¦å§”外
    /// </summary>
    [SugarColumn(ColumnName = "F_TYPE")]
    public decimal? FType { get; set; }
    /// <summary>
    ///     æ˜¯å¦å®Œç»“
    /// </summary>
    [SugarColumn(ColumnName = "STATUS")]
    public decimal? Status { get; set; }
    /// <summary>
    ///     å­å­è¡¨ID
    /// </summary>
    [SugarColumn(ColumnName = "ALLOCATEID")]
    public decimal? Allocateid { get; set; }
    /// <summary>
    ///     é¢†æ–™ç¼–号/生产工单
    /// </summary>
    [SugarColumn(ColumnName = "PBILL_NO")]
    public string? PbillNo { get; set; }
    /// <summary>
    ///     erp接口返回
    /// </summary>
    [SugarColumn(ColumnName = "ERP_MARK")]
    public string? ErpMark { get; set; }
    /// <summary>
    ///     å…¥åº“单号
    /// </summary>
    [SugarColumn(ColumnName = "RK_NO")]
    public string? RkNo { get; set; }
    /// <summary>
    ///     å…¥åº“单数量
    /// </summary>
    [SugarColumn(ColumnName = "RK_QTY")]
    public decimal? RkQty { get; set; }
    /// <summary>
    ///     å·²æ‰«æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "TL_QTY")]
    public decimal? TlQty { get; set; }
    /// <summary>
    ///     ç‰©æ–™ID
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_ID")]
    public decimal? ItemId { get; set; }
    /// <summary>
    ///     ç‰©æ–™æŠ•料单ID(发料扫码使用)
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_DABID")]
    public decimal? ItemDabid { get; set; }
    /// <summary>
    ///     å•位
    /// </summary>
    [SugarColumn(ColumnName = "UNIT")]
    public string? Unit { get; set; }
    /// <summary>
    ///     å…¥åº“单行内码
    /// </summary>
    [SugarColumn(ColumnName = "RK_LINE")]
    public decimal? RkLine { get; set; }
    /// <summary>
    ///     è®¡åˆ’跟踪号
    /// </summary>
    [SugarColumn(ColumnName = "FMTONO")]
    public string? Fmtono { get; set; }
    // <summary>
    ///     ç”³è¯·è¡Œå·
    /// </summary>
    //[SugarColumn(ColumnName = "SQ_NO")]
    //public string? SqNo { get; set; }
    //[SugarColumn(ColumnName = "ZZITEM_ID")]
    //public string? ZzitemId{ get; set; }
}
StandardPda/MES.Service/Modes/MesInvItemOuts.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,305 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     ç‰©æ–™å‡ºåº“表
/// </summary>
[SugarTable("MES_INV_ITEM_OUTS")]
public class MesInvItemOuts
{
    /// <summary>
    ///     SEQ_INV_ID
    /// </summary>
    [SugarColumn(ColumnName = "ID",
        IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     å‡ºåº“单号
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_OUT_NO")]
    public string? ItemOutNo { get; set; }
    /// <summary>
    ///     ç”Ÿäº§è®¢å•
    /// </summary>
    [SugarColumn(ColumnName = "TASK_NO")]
    public string? TaskNo { get; set; }
    /// <summary>
    ///     å·¥åºå·
    /// </summary>
    [SugarColumn(ColumnName = "PROC_NO")]
    public string? ProcNo { get; set; }
    /// <summary>
    ///     çŠ¶æ€|0-未审核1-审核
    /// </summary>
    [SugarColumn(ColumnName = "STATUS")]
    public decimal? Status { get; set; }
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string? CreateBy { get; set; }
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    ///     æœ€åŽæ›´æ–°äºº
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string? LastupdateBy { get; set; }
    /// <summary>
    ///     æœ€åŽæ›´æ–°æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
    /// <summary>
    ///     å•据类型ID
    /// </summary>
    [SugarColumn(ColumnName = "BILL_TYPE_ID")]
    public decimal? BillTypeId { get; set; }
    /// <summary>
    ///     äº‹åŠ¡ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "TRANSACTION_NO")]
    public decimal? TransactionNo { get; set; }
    /// <summary>
    ///     å¤‡æ³¨ä¿¡æ¯
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string? Remark { get; set; }
    /// <summary>
    ///     å‡ºåº“原因
    /// </summary>
    [SugarColumn(ColumnName = "REASON")]
    public string? Reason { get; set; }
    /// <summary>
    ///     ç”Ÿäº§çº¿ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "PRODUCE_LINE_NO")]
    public string? ProduceLineNo { get; set; }
    /// <summary>
    ///     å®¡æ ¸äºº
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_USER")]
    public string? CheckUser { get; set; }
    /// <summary>
    ///     å®¡æ ¸æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_DATE")]
    public DateTime? CheckDate { get; set; }
    /// <summary>
    ///     é¢†æ–™æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "OUT_DATE")]
    public DateTime? OutDate { get; set; }
    /// <summary>
    ///     é¢†æ–™å·¥æ®µ
    /// </summary>
    [SugarColumn(ColumnName = "MMLIST")]
    public string? Mmlist { get; set; }
    /// <summary>
    ///     å­åº“CODE
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_CODE")]
    public string? DepotCode { get; set; }
    /// <summary>
    ///     SAP返回单据
    /// </summary>
    [SugarColumn(ColumnName = "SAPNO")]
    public string? Sapno { get; set; }
    /// <summary>
    ///     æ˜¯å¦å·²å›žå†™SAP
    /// </summary>
    [SugarColumn(ColumnName = "SAPSTATUS")]
    public short? Sapstatus { get; set; }
    /// <summary>
    ///     SAP返回年份
    /// </summary>
    [SugarColumn(ColumnName = "SAPYEAR")]
    public short? Sapyear { get; set; }
    /// <summary>
    ///     SAP返回信息
    /// </summary>
    [SugarColumn(ColumnName = "SAPTEXT")]
    public string? Saptext { get; set; }
    /// <summary>
    ///     å·¥åºçº¿ä½“
    /// </summary>
    [SugarColumn(ColumnName = "PROC_LINE_NO")]
    public string? ProcLineNo { get; set; }
    /// <summary>
    ///     é¢†æ–™éƒ¨é—¨
    /// </summary>
    [SugarColumn(ColumnName = "OUT_PART")]
    public string? OutPart { get; set; }
    /// <summary>
    ///     0 ç”Ÿäº§,1 å§”外
    /// </summary>
    [SugarColumn(ColumnName = "F_TYPE")]
    public long? FType { get; set; }
    /// <summary>
    ///     å½•入提交
    /// </summary>
    [SugarColumn(ColumnName = "OUT_STATUS")]
    public decimal? OutStatus { get; set; }
    /// <summary>
    ///     æ˜¯å¦å¯è§
    /// </summary>
    [SugarColumn(ColumnName = "IS_VISUAL")]
    public decimal? IsVisual { get; set; }
    /// <summary>
    ///     æŽ¥æ”¶äºº
    /// </summary>
    [SugarColumn(ColumnName = "RECEIVER")]
    public string? Receiver { get; set; }
    /// <summary>
    ///     å·¥åŽ‚ç¼–å·
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string? Factory { get; set; }
    /// <summary>
    ///     å…¬å¸ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string? Company { get; set; }
    /// <summary>
    ///     å†²é”€äº‹åŠ¡ç±»åž‹ç¼–ç 
    /// </summary>
    [SugarColumn(ColumnName = "MTRANSCTION_NO")]
    public decimal? MtransctionNo { get; set; }
    /// <summary>
    ///     ä»»åŠ¡å•å·
    /// </summary>
    [SugarColumn(ColumnName = "WORK_NO")]
    public string? WorkNo { get; set; }
    /// <summary>
    ///     ä»»åŠ¡å•å·è¡Œå·
    /// </summary>
    [SugarColumn(ColumnName = "WORK_LINE")]
    public decimal? WorkLine { get; set; }
    /// <summary>
    ///     ä¾›åº”商编号
    /// </summary>
    [SugarColumn(ColumnName = "SUPP_NO")]
    public string? SuppNo { get; set; }
    /// <summary>
    ///     è®¢å•号
    /// </summary>
    [SugarColumn(ColumnName = "CMPOCODE")]
    public string? Cmpocode { get; set; }
    /// <summary>
    ///     åŽŸç‰©æ–™å‡ºè´§æ ‡è¯†
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_FLAG")]
    public decimal? ItemFlag { get; set; }
    /// <summary>
    ///     1=半成品出货
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_FLAG")]
    public decimal? BoardFlag { get; set; }
    /// <summary>
    ///     å‡ºåº“类别
    /// </summary>
    [SugarColumn(ColumnName = "OUT_TYPE")]
    public string? OutType { get; set; }
    /// <summary>
    ///     ä¸šåŠ¡ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "BUSINESS_TYPE")]
    public string? BusinessType { get; set; }
    /// <summary>
    ///     äº§å“ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "BOARD_ITEM")]
    public string? BoardItem { get; set; }
    /// <summary>
    ///     äº§é‡
    /// </summary>
    [SugarColumn(ColumnName = "PLAN_QTY")]
    public decimal? PlanQty { get; set; }
    /// <summary>
    ///     é¢†æ–™ç¼–号/委外订单
    /// </summary>
    [SugarColumn(ColumnName = "PBILL_NO")]
    public string? PbillNo { get; set; }
    /// <summary>
    ///     è¡¥æ–™ç”³è¯·å•号
    /// </summary>
    [SugarColumn(ColumnName = "BBILL_NO")]
    public string? BbillNo { get; set; }
    /// <summary>
    ///     æ ‡è¯† /1已推送
    /// </summary>
    [SugarColumn(ColumnName = "NFLAG")]
    public short? Nflag { get; set; }
    /// <summary>
    ///     é€€æ–™æ–¹å¼
    /// </summary>
    [SugarColumn(ColumnName = "FMRMODE")]
    public string? Fmrmode { get; set; }
    /// <summary>
    ///     erp返回信息
    /// </summary>
    [SugarColumn(ColumnName = "MSG")]
    public string? Msg { get; set; }
    /// <summary>
    ///     çŠ¶æ€
    /// </summary>
    [SugarColumn(ColumnName = "STATES")]
    public string? States { get; set; }
    /// <summary>
    ///     ç»„织ID
    /// </summary>
    [SugarColumn(ColumnName = "ORGANIZEID")]
    public string? Organizeid { get; set; }
}
StandardPda/MES.Service/service/Warehouse/MesInvItemArnDetailManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
using MES.Service.DB;
using MES.Service.Modes;
namespace MES.Service.service.Warehouse;
public class MesInvItemArnDetailManager : Repository<MesInvItemArnDetail>
{
}
StandardPda/MES.Service/service/Warehouse/MesInvItemArnManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
using MES.Service.DB;
using MES.Service.Modes;
namespace MES.Service.service.Warehouse;
public class MesInvItemArnManager : Repository<MesInvItemArn>
{
}
StandardPda/MES.Service/service/Warehouse/MesInvItemInsManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
using MES.Service.DB;
using MES.Service.Modes;
namespace MES.Service.service.Warehouse;
public class MesInvItemInsManager : Repository<MesInvItemIns>
{
}
StandardPda/MES.Service/service/Warehouse/MesInvItemOutItemsManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
using MES.Service.DB;
using MES.Service.Modes;
namespace MES.Service.service.Warehouse;
public class MesInvItemOutItemsManager : Repository<MesInvItemOutItems>
{
}
StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,369 @@
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
namespace MES.Service.service.Warehouse;
public class MesInvItemOutsManager : Repository<MesInvItemOuts>
{
    private readonly int BILL_TYPE_ID = 200;
    private readonly int TRANSACTION_NO = 203;
    public bool ReturnRequest(ItemOut oItemOut)
    {
        var itemOutFrom = oItemOut.from;
        var itemOutLists = oItemOut.items;
        // æ ¹æ®AsnNo和MesNo对明细进行分组
        var groupedItems = itemOutLists
            .GroupBy(item => new {   item.MesNo, item.SqNo })
            .ToList();
        bool result = true;
        foreach (var group in groupedItems)
        {
            //if (group.Key.AsnNo == null)
            //{
            //    throw new NotImplementedException("AsnNo不能为空");
            //}
            if (group.Key.MesNo == null)
            {
                throw new NotImplementedException("入库单单号不能为空");
            }
            if (group.Key.SqNo == null)
            {
                throw new NotImplementedException("退货申请单行号不能为空");
            }
            // åˆ›å»ºä¸€ä¸ªä¸´æ—¶çš„itemOutFrom对象,使用分组的Key作为主要属性
            var tempItemOutFrom = new ItemOutFrom
            {
                MesNo = group.Key.MesNo,
                SqNo = group.Key.SqNo,
                // ç»§æ‰¿åŽŸå§‹itemOutFrom的其他属性
                RtnNo = itemOutFrom.RtnNo,
                Type = itemOutFrom.Type,
                CreateBy = itemOutFrom.CreateBy,
                FMRMODE = itemOutFrom.FMRMODE,
                DepotId = itemOutFrom.DepotId,
                SupperId = itemOutFrom.SupperId
            };
            // æ ¹æ®Type执行不同的逻辑
            switch (tempItemOutFrom.Type)
            {
                case "1":
                {
                    var mesInvItemOuts = Db.Queryable<MesInvItemOuts>()
                        .Where(s => s.BillTypeId == BILL_TYPE_ID
                                    && s.TransactionNo == TRANSACTION_NO
                                    && s.ItemOutNo == tempItemOutFrom.RtnNo
                        )
                        .Count();
                    if (mesInvItemOuts > 0)
                    {
                        throw new NotImplementedException(
                            tempItemOutFrom.RtnNo +
                            "的退料申请单已经存在");
                    }
                    // ä¸ºå½“前分组保存数据
                    var groupResult = Save(tempItemOutFrom, group.ToList());
                    if (!groupResult)
                    {
                        result = false;
                    }
                    break;
                }
                case "4":
                    var removeResult = Remove(tempItemOutFrom);
                    if (!removeResult)
                    {
                        result = false;
                    }
                    break;
                default:
                    result = false;
                    break;
            }
        }
        return result;
    }
    private bool Save(ItemOutFrom from, List<ItemOutList> items)
    {
        var mesInvItemIns = Db.Queryable<MesInvItemIns>()
            .Where(s => s.BillTypeId == 100
                        && s.TransctionNo == "101"
                        && s.BillNo == from.MesNo
            ).First();
        if (mesInvItemIns == null)
        {
            throw new NotImplementedException("采购入库不存在");
        }
        var mesDepots = Db.Queryable<MesDepots>()
            .Where(s => s.DepotId == Decimal.Parse(from.DepotId)).First();
        var mesLinkU9 = Db.Queryable<MesLinkU9>()
            .Where(s => s.TableType == "MES_SUPPLIER"
                        && s.U9Id == from.SupperId).First();
        if (mesLinkU9 == null)
        {
            throw new NotImplementedException("供应商ID不存在或未同步于U9");
        }
        var mesSupplier = Db.Queryable<MesSupplier>()
            .Where(s => s.Id == Decimal.Parse(mesLinkU9.MesId))
            .First();
        if (mesDepots == null)
        {
            throw new NotImplementedException("[" + from.DepotId +
                                              "]仓库不存在,请同步给MES");
        }
        if (mesSupplier == null)
        {
            throw new NotImplementedException("[" + from.SupperId +
                                              "]供应商不存在,请同步给MES");
        }
        var nextSequenceValue =
            Db.Ado.SqlQuery<decimal>("SELECT SEQ_OUT_ID.NEXTVAL FROM DUAL")
                .First();
        // var billCode =
        //     Db.Ado.SqlQuery<string>(
        //             "SELECT GETBILLCODE1('1000', '1000', 'TLSQ') FROM DUAL")
        //         .First();
        var billCode = from.RtnNo;
        // åˆ›å»ºé‡‡è´­é€€æ–™å•记录
        var mesInvItemOuts = new MesInvItemOuts
        {
            Id = nextSequenceValue,
            ItemOutNo = billCode,
            Status = 0,
            CreateBy = "PL017",
            CreateDate = DateTime.Now,
            BillTypeId = 200,
            TransactionNo = 203,
            DepotCode = mesDepots.DepotCode,
            FType = 0,
            OutStatus = 0,
            IsVisual = 1,
            Factory = "1000",
            Company = "1000",
            SuppNo = mesSupplier.SuppNo,
            ItemFlag = 0,
            BoardFlag = 0,
            OutType = "采购退料",
            Nflag = 0,
            Fmrmode = from.FMRMODE,
            Sapno = from.SqNo,
            Organizeid = "1002503270000079",
        };
        // åˆ›å»ºé‡‡è´­é€€æ–™å•记录
        var mesInvItemOutItems = new List<MesInvItemOutItems>();
        foreach (var itemOutList in items)
        {
            // æ£€æŸ¥å¿…要字段是否为空
            if (string.IsNullOrEmpty(itemOutList.SrcDocNo))
            {
                throw new NotImplementedException("采购订单号不能为空");
            }
            if (string.IsNullOrEmpty(itemOutList.SrcDocLineNo))
            {
                throw new NotImplementedException("采购订单行号不能为空");
            }
            //if (string.IsNullOrEmpty(itemOutList.AsnLineNo))
            //{
            //    throw new NotImplementedException("ASN行号不能为空");
            //}
            if (string.IsNullOrEmpty(itemOutList.itemId))
            {
                throw new NotImplementedException("物料ID不能为空");
            }
            var mesRohInData = Db.Queryable<MesRohInData>()
                .Where(s => s.BillNo == itemOutList.SrcDocNo
                            && s.OrderLineId == itemOutList.SrcDocLineNo)
                .First();
            if (mesRohInData == null)
            {
                throw new NotImplementedException("采购订单不存在");
            }
            //var deliveryDetail = Db.Queryable<DeliveryDetail>()
            //    .Where(a =>  Int32.Parse(a.ZzitemId) ==
            //                Int32.Parse(itemOutList.AsnLineNo))
            //    .Count();
            //if (deliveryDetail <= 0)
            //{
            //    throw new NotImplementedException("[" + from.AsnNo + "]的明细行[" +
            //                                      itemOutList.AsnLineNo +
            //                                      "]不存在");
            //}
            var itemIdLinkU9 = Db.Queryable<MesLinkU9>()
                .Where(s => s.TableType == "MES_ITEMS"
                            && s.U9Id == itemOutList.itemId).First();
            if (mesLinkU9 == null)
            {
                throw new NotImplementedException("供应商ID不存在或未同步于U9");
            }
            var mesItems = Db.Queryable<MesItems>()
                .Where(s => s.Id == Decimal.Parse(itemIdLinkU9.MesId))
                .First();
            if (mesItems == null)
            {
                throw new NotImplementedException("[" + itemOutList.itemId +
                                                  "]物料不存在,请同步给MES");
            }
            var mesInvItemInCItems = Db.Queryable<MesInvItemInCItems>()
                .Where(s => s.ItemInId == mesInvItemIns.Id
                            && s.ItemNo == mesItems.ItemNo
                            && s.Ebeln == itemOutList.SrcDocNo
                            && s.EbelnLineNo ==
                            Decimal.Parse(itemOutList.SrcDocLineNo)
                            && s.SuppNo == mesSupplier.SuppNo
                            ).First();
            if (mesInvItemInCItems == null)
            {
                throw new NotImplementedException("没有对应的入库明细");
            }
            // ç¡®ä¿CbillNo不为空
            if (string.IsNullOrEmpty(mesInvItemIns.CbillNo))
            {
                throw new NotImplementedException("入库单关联的采购单号不能为空");
            }
            mesInvItemOutItems.Add(new MesInvItemOutItems
            {
                ItemOutId = nextSequenceValue,
                ItemNo = mesItems.ItemNo,
                Quantity = Decimal.Parse(itemOutList.qty),
                CreateBy = "PL017",
                CreateDate = DateTime.Now,
                Factory = "1000",
                Company = "1000",
                DepotCode = mesDepots.DepotCode,
                WorkNo = itemOutList.SrcDocNo, // ç¡®ä¿WorkNo有值
                WorkLine =
                    Decimal.Parse(itemOutList.SrcDocLineNo), // ç¡®ä¿WorkLine有值
                EbelnK3id = Decimal.Parse(mesRohInData.ErpId),
                LineK3id = Decimal.Parse(mesRohInData.EbelnK3id),
                FType = 0,
                Status = 0,
                PbillNo = mesInvItemIns.CbillNo, // ç¡®ä¿PbillNo有值
                RkNo = from.MesNo, // ç¡®ä¿RkNo有值
                RkLine = mesInvItemInCItems.Id, // ç¡®ä¿RkLine有值
                RkQty = mesInvItemInCItems.Quantity,
                TlQty = 0,
                ItemId = Decimal.Parse(itemIdLinkU9.MesId), // ç¡®ä¿ItemId有值
                //SqNo = itemOutList.SqNo, // ç¡®ä¿ItemId有值
                //ZzitemId = itemOutList.AsnLineNo, // ç¡®ä¿ItemId有值
                // Unit = item.Unit,
            });
        }
        var outItemCommand = Db.Insertable(mesInvItemOutItems)
            .PageSize(1).IgnoreColumnsNull().ExecuteCommand();
        if (outItemCommand <= 0)
        {
            throw new Exception("创建采购退料单子表失败");
        }
        // æ’入采购退料单记录
        var insertResult = Db.Insertable(mesInvItemOuts).IgnoreColumns(true)
            .ExecuteCommand();
        if (insertResult <= 0)
        {
            throw new Exception("创建采购退料单失败");
        }
        return outItemCommand + insertResult >= 2;
    }
    private bool Remove(ItemOutFrom from)
    {
        // æŸ¥æ‰¾è¦åˆ é™¤çš„采购退料单
        var mesInvItemOuts = Db.Queryable<MesInvItemOuts>()
            .Where(s => s.BillTypeId == BILL_TYPE_ID
                        && s.TransactionNo == TRANSACTION_NO
                        && s.ItemOutNo == from.RtnNo).ToList();
        if (mesInvItemOuts == null || mesInvItemOuts.Count == 0)
        {
            throw new NotImplementedException("找不到对应的采购退料单: " + from.RtnNo);
        }
        // æ£€æŸ¥æ˜¯å¦æœ‰å·²å®¡æ ¸çš„单据,如果存在已审核(Status=1)则不允许删除
        if (mesInvItemOuts.Any(item => item.Status == 1))
        {
            throw new NotImplementedException("存在已审核的采购退料单,不允许删除");
        }
        // åˆ é™¤æ‰€æœ‰ç›¸å…³å•据
        foreach (var itemOut in mesInvItemOuts)
        {
            // æŸ¥æ‰¾è¦åˆ é™¤çš„采购退料单明细
            var mesInvItemOutItems = Db.Queryable<MesInvItemOutItems>()
                .Where(s => s.ItemOutId == itemOut.Id)
                .ToList();
            if (mesInvItemOutItems == null || mesInvItemOutItems.Count == 0)
            {
                throw new NotImplementedException(
                    $"找不到采购退料单[{itemOut.ItemOutNo}]对应的明细");
            }
            // åˆ é™¤é‡‡è´­é€€æ–™å•明细
            var deleteItemsResult = Db.Deleteable<MesInvItemOutItems>()
                .Where(s => s.ItemOutId == itemOut.Id)
                .ExecuteCommand();
            if (deleteItemsResult <= 0)
            {
                throw new Exception($"删除采购退料单[{itemOut.ItemOutNo}]明细失败");
            }
            // åˆ é™¤é‡‡è´­é€€æ–™å•
            var deleteResult = Db.Deleteable<MesInvItemOuts>()
                .Where(s => s.Id == itemOut.Id)
                .ExecuteCommand();
            if (deleteResult <= 0)
            {
                throw new Exception($"删除采购退料单[{itemOut.ItemOutNo}]失败");
            }
        }
        return true;
    }
}
StandardPda/MESApplication/Controllers/Warehouse/MesInvItemOutsController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,213 @@
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.service;
using MES.Service.service.Warehouse;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using System.Dynamic;
using System.Threading;
namespace MESApplication.Controllers.Warehouse;
[ApiController]
[Route("api/[controller]")]
public class MesInvItemOutsController : ControllerBase
{
    private readonly MesInvItemOutsManager m = new();
    private readonly MessageCenterManager _manager = new();
    private readonly string METHOD = "POST";
    private readonly string TableName = "MesInvItemOuts";
    private readonly string URL = "http://localhost:10054/api/MesInvItemOuts/";
    /// <summary>
    ///     é‡‡è´­é€€è´§ç”³è¯·å•
    /// </summary>
    /// <returns></returns>
    [HttpPost("ReturnRequest")]
    public ResponseResult ReturnRequest(ItemOut oItemOut)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "ReturnRequest";
        entity.Method = METHOD;
        entity.Data = Newtonsoft.Json.JsonConvert.SerializeObject(oItemOut);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var result = m.ReturnRequest(oItemOut);
            resultInfos.tbBillList = result;
            entity.Result = 0;
            if (result) entity.Result = 1;
            entity.DealWith = 1;
            _manager.save(entity);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            entity.Result = 0;
            entity.DealWith = 0;
            entity.ResultData = ex.Message;
            _manager.save(entity);
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetList();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®èŽ·å–
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetById")]
    public ResponseResult GetById(int id)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetById(id);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®åˆ é™¤
    /// </summary>
    /// <returns></returns>
    [HttpPost("DeleteByIds")]
    public ResponseResult DeleteByIds([FromBody] object[] ids)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.DeleteByIds(ids);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ 
    /// </summary>
    /// <returns></returns>
    [HttpPost("Insert")]
    public ResponseResult Add([FromBody] MesInvItemOuts data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Insert(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ è¿”å›žè‡ªå¢ž
    /// </summary>
    /// <returns></returns>
    [HttpPost("InsertReturnIdentity")]
    public ResponseResult InsertReturnIdentity([FromBody] MesInvItemOuts data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.InsertReturnIdentity(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ä¿®æ”¹
    /// </summary>
    /// <returns></returns>
    [HttpPost("Update")]
    public ResponseResult Update([FromBody] MesInvItemOuts data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Update(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
StandardPda/MESApplication/MESApplication.csproj
@@ -9,7 +9,7 @@
    </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>
@@ -18,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>