hao
2025-06-03 a2dc4c688ed5e98dcaae0768d20d4ba0e5730a84
调拨出库测试
已添加14个文件
已修改4个文件
1436 ■■■■■ 文件已修改
StandardInterface/MES.Service/Dto/webApi/ERPCGTH.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/webApi/ERPDBCK.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/webApi/ErpCGTHA.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/webApi/ErpCGTHB.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/webApi/ErpProductionOrderDto.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/webApi/ErpProductionOrderSubDto.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/CgthSq.cs 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/CgthSqDetail.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/Dbcka.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/Dbckb.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/Womcaa.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/BasicData/Production/ProductionOrderManager.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/CgthSqDetailManager.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/CgthSqManager.cs 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/DbckaManager.cs 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MESApplication/Controllers/CgthSqController.cs 266 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MESApplication/Controllers/CgthSqDetailController.cs 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MESApplication/Controllers/DbckaController.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/webApi/ERPCGTH.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
namespace MES.Service.Dto.webApi;
public class ERPCGTH
{
    public ErpCGTHA ErpCgtha { get; set; }
    public List<ErpCGTHB> ErpCgthB { get; set; }
}
StandardInterface/MES.Service/Dto/webApi/ERPDBCK.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MES.Service.Dto.webApi
{
    public class ERPDBCK
    {
        public ErpDBCKA erpDbcka { get; set; }
        public List<ErpDBCKB> erpDbckB { get; set; }
    }
    public class ErpDBCKA
    {
        public string billno { get; set; }
        public string dj_lx { get; set; }
        public string db_lx1 { get; set; }
        public string db_fx { get; set; }
        public string db_lx { get; set; }
        public string yw_lx { get; set; }
        public string dj_zt { get; set; }
        public string sq_bm { get; set; }
        public string sq_zz { get; set; }
        public string sq_time { get; set; }
        public string dc_hz { get; set; }
        public string bz { get; set; }
        public string type { get; set; }
        public string erpid { get; set; }
    }
    public class ErpDBCKB
    {
        public string itemid { get; set; }
        public string unit { get; set; }
        public string quantity { get; set; }
        public string dc_org { get; set; }
        public string dc_depot { get; set; }
        public string dr_org { get; set; }
        public string dr_depot { get; set; }
        public string dc_hz { get; set; }
        public string dr_hz { get; set; }
        public string bz { get; set; }
        public string erpid { get; set; }
        public string eid { get; set; }
    }
}
StandardInterface/MES.Service/Dto/webApi/ErpCGTHA.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
namespace MES.Service.Dto.webApi;
public class ErpCGTHA
{
    public string? Type { get; set; }
    public string? BillNo { get; set; }         //单据编号
    public string? Suppid { get; set; }          //供应商ID
    public string? SuppNo { get; set; }           //供应商编码
    public string? BillNo_type { get; set; }      //单据类型
    public string? Yw_lx { get; set; }              //业务类型
    public string? th_fs { get; set; }              //退货方式
    public string? th_yy { get; set; }              //退货原因
    public string? is_ww { get; set; }              //是否委外
    public string? createby { get; set; }              //创建人名称
    public string? cg_org { get; set; }              //采购组织
    public string? tl_org { get; set; }              //退料组织
    public string? xq_org { get; set; }              //需求组织
    public string? cg_bm { get; set; }              //采购部门
    public string? tl_bm { get; set; }              //退料部门
    public string? cgy { get; set; }              //仓管员名称
    public string? cg { get; set; }              //采购员名称
    public string? kc_dpot { get; set; }              //库存组名称
    public string? cg_depot { get; set; }              //采购组名称
    public string? Ys_fs { get; set; }              //验收方式
    public string? bz { get; set; }              //备注
    public string? ERPID { get; set; }              //单据头id
}
StandardInterface/MES.Service/Dto/webApi/ErpCGTHB.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
namespace MES.Service.Dto.webApi;
public class ErpCGTHB
{
    public string? ebeln { get; set; }  //采购订单
  public string? itemid { get; set; }            //待退物料ID
  public string? unit { get; set; }            //单位
  public string? ebeln_id { get; set; }            //采购订单id
  public string? line_id { get; set; }            //采购订单行id
  public string? depot_id { get; set; }            //仓库ID
  public string? depot_code { get; set; }            //仓库编码
  public string? erpid { get; set; }            //单据体id
  public string? eid { get; set; }            //单据头id
  public string? flot { get; set; }            //批号
  public string? fmoto { get; set; }            //计划跟踪号
    public string? quantity { get; set; }            //数量
}
StandardInterface/MES.Service/Dto/webApi/ErpProductionOrderDto.cs
@@ -51,12 +51,8 @@
    //public string? FReqSrc { get; set; }
    public string? TypeA { get; set; }
    // public string? FSUPPLIERID { get; set; } // ä¾›åº”商ID
    public string? FSUPPLIERID { get; set; } // ä¾›åº”商ID
    //沃尔自定义字段
    public string? F_WWDD_SCTZD { get; set; }
    public string? F_WWDD_XH { get; set; }
    public string? F_XIFG_Text_tzk { get; set; }
    public string? ppbombillno { get; set; }
    public string? WW_ZZ { get; set; } //委外组织
    public string? CG_ZZ { get; set; }  //采购组织
}
StandardInterface/MES.Service/Dto/webApi/ErpProductionOrderSubDto.cs
@@ -41,6 +41,6 @@
    public string? TypeB { get; set; }
    public string? F_XIFG_Base_re5 { get; set; }
    public string? F_XIFG_Base_apv { get; set; }
 /*   public string? F_XIFG_Base_re5 { get; set; }
    public string? F_XIFG_Base_apv { get; set; }*/
}
StandardInterface/MES.Service/Modes/CgthSq.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,164 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace MES.Service.Modes
{
    /// <summary>
    /// é‡‡è´­é€€è´§ç”³è¯·ä¸»è¡¨
    ///</summary>
    [SugarTable("CGTH_SQ")]
    public class CgthSq
    {
        /// <summary>
        /// å•据编码
        ///</summary>
         [SugarColumn(ColumnName="BILL_NO"    )]
         public string BillNo { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        ///</summary>
         [SugarColumn(ColumnName="CREATE_DATE"    )]
         public DateTime? CreateDate { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        ///</summary>
         [SugarColumn(ColumnName="CREATE_BY"    )]
         public string CreateBy { get; set; }
        /// <summary>
        /// å®¡æ ¸æ—¶é—´
        ///</summary>
         [SugarColumn(ColumnName="CHECK_DATE"    )]
         public DateTime? CheckDate { get; set; }
        /// <summary>
        /// å®¡æ ¸äºº
        ///</summary>
         [SugarColumn(ColumnName="CHECK_USER"    )]
         public string CheckUser { get; set; }
        /// <summary>
        /// å®¡æ ¸çŠ¶æ€
        ///</summary>
         [SugarColumn(ColumnName="STATUS"    )]
         public decimal? Status { get; set; }
        /// <summary>
        /// ä»“库编码
        ///</summary>
         [SugarColumn(ColumnName="DEPOT_CODE"    )]
         public string DepotCode { get; set; }
        /// <summary>
        /// æ˜¯å¦å§”外
        ///</summary>
         [SugarColumn(ColumnName="F_TYPE"    )]
         public decimal? FType { get; set; }
        /// <summary>
        /// ä¾›åº”商编码
        ///</summary>
         [SugarColumn(ColumnName="SUPP_NO"    )]
         public string SuppNo { get; set; }
        /// <summary>
        /// ç»„织id
        ///</summary>
         [SugarColumn(ColumnName="ORG_ID"    )]
         public decimal? OrgId { get; set; }
        /// <summary>
        /// é€€è´§æ–¹å¼
        ///</summary>
         [SugarColumn(ColumnName="TH_FS"    )]
         public string ThFs { get; set; }
        /// <summary>
        /// é€€è´§åŽŸå› 
        ///</summary>
         [SugarColumn(ColumnName="TH_YY"    )]
         public string ThYy { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        ///</summary>
         [SugarColumn(ColumnName="BZ"    )]
         public string Bz { get; set; }
        /// <summary>
        ///
        ///</summary>
         [SugarColumn(ColumnName="ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_CGTH_SQ")]
         public decimal? Id { get; set; }
        /// <summary>
        /// æ˜¯å¦å®Œæˆ
        ///</summary>
         [SugarColumn(ColumnName="IS_WC"    )]
         public decimal? IsWc { get; set; }
        /// <summary>
        /// ä¾›åº”商ID
        ///</summary>
         [SugarColumn(ColumnName="SUPP_ID"    )]
         public string SuppId { get; set; }
        /// <summary>
        /// å•据类型
        ///</summary>
         [SugarColumn(ColumnName="DJ_LX"    )]
         public string DjLx { get; set; }
        /// <summary>
        /// ä¸šåŠ¡ç±»åž‹
        ///</summary>
         [SugarColumn(ColumnName="YW_FS"    )]
         public string YwFs { get; set; }
        /// <summary>
        /// ERP创建人
        ///</summary>
         [SugarColumn(ColumnName="ERP_CREATE_BY"    )]
         public string ErpCreateBy { get; set; }
        /// <summary>
        /// é‡‡è´­ç»„织
        ///</summary>
         [SugarColumn(ColumnName="CG_ORG"    )]
         public string CgOrg { get; set; }
        /// <summary>
        /// é€€æ–™ç»„织
        ///</summary>
         [SugarColumn(ColumnName="TL_ORG"    )]
         public string TlOrg { get; set; }
        /// <summary>
        /// éœ€æ±‚组织
        ///</summary>
         [SugarColumn(ColumnName="XQ_ORG"    )]
         public string XqOrg { get; set; }
        /// <summary>
        /// é‡‡è´­éƒ¨é—¨
        ///</summary>
         [SugarColumn(ColumnName="CG_BM"    )]
         public string CgBm { get; set; }
        /// <summary>
        /// é€€æ–™éƒ¨é—¨
        ///</summary>
         [SugarColumn(ColumnName="TL_BM"    )]
         public string TlBm { get; set; }
        /// <summary>
        /// ä»“管员名称
        ///</summary>
         [SugarColumn(ColumnName="CGY_MC"    )]
         public string CgyMc { get; set; }
        /// <summary>
        /// é‡‡è´­å‘˜åç§°
        ///</summary>
         [SugarColumn(ColumnName="CG_MC"    )]
         public string CgMc { get; set; }
        /// <summary>
        /// åº“存组名称
        ///</summary>
         [SugarColumn(ColumnName="KC_DEPOT"    )]
         public string KcDepot { get; set; }
        /// <summary>
        /// é‡‡è´­ç»„名称
        ///</summary>
         [SugarColumn(ColumnName="CG_DEPOT"    )]
         public string CgDepot { get; set; }
        /// <summary>
        /// éªŒæ”¶æ–¹å¼
        ///</summary>
         [SugarColumn(ColumnName="YS_FS"    )]
         public string YsFs { get; set; }
        /// <summary>
        /// ERPID
        ///</summary>
         [SugarColumn(ColumnName="ERPID"    )]
         public string Erpid { get; set; }
    }
}
StandardInterface/MES.Service/Modes/CgthSqDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,119 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace MES.Service.Modes
{
    /// <summary>
    /// é‡‡è´­é€€è´§ç”³è¯·æ˜Žç»†
    ///</summary>
    [SugarTable("CGTH_SQ_DETAIL")]
    public class CgthSqDetail
    {
        /// <summary>
        ///
        ///</summary>
         [SugarColumn(ColumnName="ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_CGTH_SQ_DETAIL")]
         public decimal? Id { get; set; }
        /// <summary>
        ///
        ///</summary>
         [SugarColumn(ColumnName="PID"    )]
         public decimal? Pid { get; set; }
        /// <summary>
        /// é‡‡è´­å•号
        ///</summary>
         [SugarColumn(ColumnName="WORK_NO"    )]
         public string WorkNo { 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="QUANTITY"    )]
         public decimal? Quantity { 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>
        /// mes行id
        ///</summary>
         [SugarColumn(ColumnName="RK_LINE"    )]
         public decimal? RkLine { 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>
        /// ERPID
        ///</summary>
        [SugarColumn(ColumnName = "ERPID")]
            public string? Erpid { get; set; }
        /// <summary>
        /// EID
        ///</summary>
        [SugarColumn(ColumnName= "EID")]
         public string? Eid { get; set; }
        /// <summary>
        /// è¡Œå·
        ///</summary>
        [SugarColumn(ColumnName="WORK_LINE"    )]
         public decimal? WorkLine { get; set; }
        /// <summary>
        /// å•位
        ///</summary>
         [SugarColumn(ColumnName="UNIT"    )]
         public string Unit { get; set; }
        /// <summary>
        /// åˆ°è´§å•号
        ///</summary>
         [SugarColumn(ColumnName="PBILL_NO"    )]
         public string PbillNo { get; set; }
        /// <summary>
        /// å®Œæˆæ ‡è¯†
        ///</summary>
         [SugarColumn(ColumnName="STATUS"    )]
         public decimal? Status { get; set; }
        /// <summary>
        /// ä»“库id
        ///</summary>
         [SugarColumn(ColumnName="DEPOT_ID"    )]
         public string DepotId { get; set; }
        /// <summary>
        /// ä»“库编码
        ///</summary>
        [SugarColumn(ColumnName = "DEPOT_CODE")]
        public string DepotCode { get; set; }
        /// <summary>
        /// æ‰¹å·
        ///</summary>
        [SugarColumn(ColumnName="FLOT"    )]
         public string Flot { get; set; }
        /// <summary>
        /// è®¡åˆ’跟踪号
        ///</summary>
         [SugarColumn(ColumnName="FMTO"    )]
         public string Fmto { get; set; }
    }
}
StandardInterface/MES.Service/Modes/Dbcka.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
using SqlSugar;
using System;
namespace MES.Service.Modes
{
    [SugarTable("DBCKA")]
    public class Dbcka
    {
        [SugarColumn(IsPrimaryKey = true)]
        public decimal? Id { get; set; }
        public string Billno { get; set; }
        public string DjLx { get; set; }
        public string DbLx1 { get; set; }
        public string DbFx { get; set; }
        public string DbLx { get; set; }
        public string YwLx { get; set; }
        public string DjZt { get; set; }
        public string SqBm { get; set; }
        public string SqZz { get; set; }
        public DateTime? SqTime { get; set; }
        public string DcHz { get; set; }
        public string Bz { get; set; }
        public string Type { get; set; }
        public string Erpid { get; set; }
        public DateTime? CreateDate { get; set; }
    }
}
StandardInterface/MES.Service/Modes/Dbckb.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
using SqlSugar;
namespace MES.Service.Modes
{
    [SugarTable("DBCKB")]
    public class Dbckb
    {
        [SugarColumn(IsPrimaryKey = true)]
        public decimal? Id { get; set; }
        public decimal? Pid { get; set; }
        public string Itemid { get; set; }
        public string Unit { get; set; }
        public decimal? Quantity { get; set; }
        public string DcOrg { get; set; }
        public string DcDepot { get; set; }
        public string DrOrg { get; set; }
        public string DrDepot { get; set; }
        public string DcHz { get; set; }
        public string DrHz { get; set; }
        public string Bz { get; set; }
        public string Erpid { get; set; }
        public string Eid { get; set; }
    }
}
StandardInterface/MES.Service/Modes/Womcaa.cs
@@ -425,5 +425,23 @@
        ///</summary>
         [SugarColumn(ColumnName= "CG_LINE_ID")]
         public string Cglineid { get; set; }
        /// <summary>
        /// å§”外组织
        ///</summary>
        [SugarColumn(ColumnName = "WW_ORG")]
        public string WwOrg { get; set; }
        /// <summary>
        /// é‡‡è´­ç»„织
        ///</summary>
        [SugarColumn(ColumnName = "CG_ORG")]
        public string CgOrg { get; set; }
        /// <summary>
        /// ä¾›åº”商id
        ///</summary>
        [SugarColumn(ColumnName = "SUPP_ID")]
        public string SuppId { get; set; }
    }
}
StandardInterface/MES.Service/service/BasicData/Production/ProductionOrderManager.cs
@@ -113,7 +113,7 @@
        var entity = new Womcaa
        {
            Caa001 = erpDto.ppbombillno, ///     å•号
            Caa001 = erpDto.FBillNo, ///     å•号
            //Caa001 = erpDto.FBillNo,
            DepotCode = erpDto.FStockID,
            CreateDate = erpDto.FDate, // ParseDateTime(erpDto.FDate) ?? null,
@@ -171,6 +171,10 @@
          //  F_WWDD_SCTZD = erpDto.F_WWDD_SCTZD,
          //  F_WWDD_XH = erpDto.F_WWDD_XH,
            //F_XIFG_TEXT_TZK = erpDto.F_XIFG_Text_tzk
            WwOrg=erpDto.WW_ZZ,
            CgOrg=erpDto.CG_ZZ,
            SuppId=erpDto.FSUPPLIERID,
        };
        var single = base.GetSingle(it => it.Erpid == entity.Erpid);
StandardInterface/MES.Service/service/CgthSqDetailManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using MES.Service.DB;
using MES.Service.Modes;
namespace MES.Service.service
{
public class CgthSqDetailManager : Repository<CgthSqDetail>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 CgthSqDetailManager.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(), OrderByType.Asc);// åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount);//返回总数
        List<IConditionalModel> conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel() { FieldName= typeof(CgthSqDetail).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc);
        base.AsQueryable().Where(x => 1 == 1).ToList();//支持了转换成queryable,我们可以用queryable实现复杂功能
        /*********插入*********/
        var insertData = new CgthSqDetail() { };//测试参数
        var insertArray = new CgthSqDetail[] { insertData };
        base.Insert(insertData);//插入
        base.InsertRange(insertArray);//批量插入
        var id = base.InsertReturnIdentity(insertData);//插入返回自增列
        base.AsInsertable(insertData).ExecuteCommand();//我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new CgthSqDetail() {  };//测试参数
        var updateArray = new CgthSqDetail[] { updateData };//测试参数
        base.Update(updateData);//根据实体更新
        base.UpdateRange(updateArray);//批量更新
        //base.Update(it => new CgthSqDetail() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=1
        base.AsUpdateable(updateData).ExecuteCommand();  //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new CgthSqDetail() {  };//测试参数
        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
 }
}
StandardInterface/MES.Service/service/CgthSqManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,220 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using MES.Service.DB;
using MES.Service.Modes;
using MES.Service.Dto.webApi;
namespace MES.Service.service
{
public class CgthSqManager : Repository<CgthSq>
{
        private readonly CgthSqDetailManager _CgthSqManager = new();
        public bool SaveList(List<ERPCGTH> rohIns)
        {
            var result = rohIns.Select(Save).ToList();
            return result.All(b => b);
        }
        public bool Save(ERPCGTH wom)
        {
            var ErpCgtha = wom.ErpCgtha;
            var mesWomCgth = MapErpCgthatoCGTHA(ErpCgtha);
            var mesWomcabs =
                MapErpCgthBtoCGTHA(wom.ErpCgthB);
            return UseTransaction(db =>
            {
                switch (ErpCgtha.Type)
                {
                    case "3":
                        return UpdateData(db, mesWomCgth, mesWomcabs) ? 1 : 0;
                    case "2":
                    case "4":
                    case "5":
                        return SaveOrUpdateData(db, mesWomCgth, mesWomcabs)
                            ? 1
                            : 0;
                    default:
                        throw new NotImplementedException(
                            $"type没有{ErpCgtha.Type}这个类型");
                }
            }) > 0;
        }
        private CgthSq MapErpCgthatoCGTHA(ErpCGTHA dto)
        {
            var entity = new CgthSq
            {
                BillNo = dto.BillNo,         //单据编号
                SuppId = dto.Suppid,          //供应商ID
                SuppNo = dto.SuppNo,          //供应商编码
                DjLx = dto.BillNo_type,        //单据类型
                YwFs = dto.Yw_lx,              //业务类型
                ThFs = dto.th_fs,           //退货方式
                ThYy = dto.th_yy,         //退货原因
                FType = decimal.TryParse(dto.is_ww, out var itemIdVal) ? itemIdVal : null,  //是否委外
                ErpCreateBy = dto.createby,               //创建人名称
                CgOrg = dto.cg_org,             //采购组织
                TlOrg = dto.tl_org,                               //退料组织
                XqOrg = dto.xq_org,                            //需求组织
                CgBm = dto.cg_bm,                              //采购部门
                TlBm = dto.tl_bm,                //退料部门
                CgMc = dto.cg,                   //仓管员名称
                CgyMc = dto.cgy,               //采购员名称
                KcDepot = dto.kc_dpot,        //库存组名称
                CgDepot = dto.cg_depot,               //采购组名称
                YsFs = dto.Ys_fs,                               //验收方式
                Bz = dto.bz,                                 //备注
                Erpid = dto.ERPID,                              //单据头id
                CreateDate=DateTime.Now,
            };
            var single = base.GetSingle(it => it.Erpid == entity.Erpid);
            if (single != null) entity.Id = single.Id;
            return entity;
        }
        private List<CgthSqDetail> MapErpCgthBtoCGTHA(List<ErpCGTHB> dtoList)
        {
            var CgthSqDetailList = new List<CgthSqDetail>();
            foreach (var dto in dtoList)
            {
                var CgthSqDetail = new CgthSqDetail
                {
                   WorkNo=dto.ebeln,             //采购订单
                    ItemId = decimal.TryParse(dto.itemid, out var itemIdVal) ? itemIdVal : null,         //待退物料ID
                    Unit =dto.unit,             //单位
                    EbelnK3id = decimal.TryParse(dto.ebeln_id, out var ebelnIdVal) ? ebelnIdVal : null,  //采购订单id
                    LineK3id = decimal.TryParse(dto.line_id, out var lineIdVal) ? lineIdVal : null,         //采购订单行id
                    DepotId =dto.depot_id,                    //仓库ID
                    DepotCode=dto.depot_code,                   //仓库编码
                     Erpid=dto.erpid,                           //单据体id
                     Eid  = dto.eid,                 //单据头id
                     Flot=dto.flot,                           //批号
                     Fmto=dto.fmoto,                           //计划跟踪号
                    Quantity = decimal.TryParse(dto.quantity, out var qtyVal) ? qtyVal : null,        //数量
                };
                var entity = Db.Queryable<CgthSqDetail>()
                    .Where(s => s.Erpid == CgthSqDetail.Erpid).Single();
                if (entity != null)
                {
                    // åˆ é™¤å·²æœ‰çš„ Erpid ç›¸å…³çš„ Womcab æ•°æ®
                    //  Db.Deleteable<Womcab>().Where(s => s.Erpid == womcab.Erpid).ExecuteCommand();
                    CgthSqDetail.Id = entity.Id;
                }
                CgthSqDetailList.Add(CgthSqDetail);
            }
            return CgthSqDetailList;
        }
   private bool UpdateData(SqlSugarScope db, CgthSq mesWomCgth,
      List<CgthSqDetail> mesWomcabs)
        {
            var decimals = mesWomcabs.Select(s => s.Id).ToArray();
            var update = base.DeleteById(mesWomCgth.Id);
            var insertOrUpdate = db
                .Deleteable<CgthSqDetail>().In(decimals)
                .ExecuteCommand() > 0;
            if (update && insertOrUpdate) return true;
            throw new NotImplementedException("更新失败");
        }
   private bool SaveOrUpdateData(SqlSugarScope db, CgthSq mesWomcaa,
      List<CgthSqDetail> mesWomcabs)
        {
            if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id);
            if (mesWomcabs.Count > 0)
                db.Deleteable<CgthSqDetail>()
                    .Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand();
            //单条插入忽略空字段
            /*  var orUpdate = db.Insertable(mesWomcaa)
                  .IgnoreColumns(true).ExecuteCommand() > 0;*/
            // æ’入主表并返回完整实体(含主键 Id)
            var insertedId = db.Insertable(mesWomcaa)
      .IgnoreColumns(true)
      .ExecuteReturnBigIdentity(); // è¿”回 decimal ç±»åž‹ ID
            mesWomcaa.Id = insertedId; // å¡«å…¥ä¸»è¡¨å®žä½“
            // èµ‹å€¼æ¯æ¡æ˜Žç»†çš„ Pid = ä¸»è¡¨.Id
            foreach (var detail in mesWomcabs)
            {
                detail.Pid = insertedId;
            }
            //批量插入忽略空字段
            var baOrUpdate = db.Insertable(mesWomcabs).PageSize(10)
                .IgnoreColumnsNull()
                .ExecuteCommand() > 0;
            //if (orUpdate && baOrUpdate) return true;
            if (insertedId != null && baOrUpdate) return true;
            throw new NotImplementedException("插入或更新失败");
        }
        #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(), OrderByType.Asc);// åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount);//返回总数
        List<IConditionalModel> conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel() { FieldName= typeof(CgthSq).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc);
        base.AsQueryable().Where(x => 1 == 1).ToList();//支持了转换成queryable,我们可以用queryable实现复杂功能
        /*********插入*********/
        var insertData = new CgthSq() { };//测试参数
        var insertArray = new CgthSq[] { insertData };
        base.Insert(insertData);//插入
        base.InsertRange(insertArray);//批量插入
        var id = base.InsertReturnIdentity(insertData);//插入返回自增列
        base.AsInsertable(insertData).ExecuteCommand();//我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new CgthSq() {  };//测试参数
        var updateArray = new CgthSq[] { updateData };//测试参数
        base.Update(updateData);//根据实体更新
        base.UpdateRange(updateArray);//批量更新
        //base.Update(it => new CgthSq() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=1
        base.AsUpdateable(updateData).ExecuteCommand();  //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new CgthSq() {  };//测试参数
        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
 }
}
StandardInterface/MES.Service/service/DbckaManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,131 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
namespace MES.Service.service
{
    public class DbckaManager : Repository<Dbcka>
    {
        public bool SaveList(List<ERPDBCK> list)
        {
            var result = list.Select(Save).ToList();
            return result.All(b => b);
        }
        public bool Save(ERPDBCK data)
        {
            var head = MapErpDbckaToDbcka(data.erpDbcka);
            var details = MapErpDbckbToDbckb(data.erpDbckB);
            return UseTransaction(db =>
            {
                switch (data.erpDbcka.type)
                {
                    case "3":
                        return UpdateData(db, head, details) ? 1 : 0;
                    case "2":
                    case "4":
                    case "5":
                        return SaveOrUpdateData(db, head, details) ? 1 : 0;
                    default:
                        throw new NotImplementedException($"type没有 {data.erpDbcka.type} è¿™ä¸ªç±»åž‹");
                }
            }) > 0;
        }
        private Dbcka MapErpDbckaToDbcka(ErpDBCKA dto)
        {
            var entity = new Dbcka
            {
                Billno = dto.billno,
                DjLx = dto.dj_lx,
                DbLx1 = dto.db_lx1,
                DbFx = dto.db_fx,
                DbLx = dto.db_lx,
                YwLx = dto.yw_lx,
                DjZt = dto.dj_zt,
                SqBm = dto.sq_bm,
                SqZz = dto.sq_zz,
                SqTime = DateTime.TryParse(dto.sq_time, out var d) ? d : null,
                DcHz = dto.dc_hz,
                Bz = dto.bz,
                Type = dto.type,
                Erpid = dto.erpid,
                CreateDate = DateTime.Now
            };
            var single = base.GetSingle(it => it.Erpid == entity.Erpid);
            if (single != null) entity.Id = single.Id;
            return entity;
        }
        private List<Dbckb> MapErpDbckbToDbckb(List<ErpDBCKB> list)
        {
            var result = new List<Dbckb>();
            foreach (var dto in list)
            {
                var item = new Dbckb
                {
                    Itemid = dto.itemid,
                    Unit = dto.unit,
                    Quantity = decimal.TryParse(dto.quantity, out var qty) ? qty : null,
                    DcOrg = dto.dc_org,
                    DcDepot = dto.dc_depot,
                    DrOrg = dto.dr_org,
                    DrDepot = dto.dr_depot,
                    DcHz = dto.dc_hz,
                    DrHz = dto.dr_hz,
                    Bz = dto.bz,
                    Erpid = dto.erpid,
                    Eid = dto.eid
                };
                var existing = Db.Queryable<Dbckb>().Where(s => s.Erpid == item.Erpid).Single();
                if (existing != null) item.Id = existing.Id;
                result.Add(item);
            }
            return result;
        }
        private bool SaveOrUpdateData(SqlSugarScope db, Dbcka head, List<Dbckb> details)
        {
            if (head.Id != null)
                base.DeleteById(head.Id);
            db.Deleteable<Dbckb>()
              .Where(d => d.Eid == head.Erpid)
              .ExecuteCommand();
            var insertedHead = db.Insertable(head)
                .IgnoreColumns(true)
                .ExecuteReturnEntity();
            foreach (var item in details)
                item.Pid = Convert.ToDecimal(insertedHead.Id);
            var success = db.Insertable(details)
                .PageSize(10)
                .IgnoreColumnsNull()
                .ExecuteCommand() > 0;
            return insertedHead.Id != null && success;
        }
        private bool UpdateData(SqlSugarScope db, Dbcka head, List<Dbckb> details)
        {
            var ids = details.Select(d => d.Id).ToArray();
            var deletedHead = base.DeleteById(head.Id);
            var deletedDetails = db.Deleteable<Dbckb>().In(ids).ExecuteCommand() > 0;
            return deletedHead && deletedDetails;
        }
    }
}
StandardInterface/MESApplication/Controllers/CgthSqController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,266 @@
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 MES.Service.Modes;
using MES.Service.service;
using MES.Service.util;
using MES.Service.Dto.webApi;
using Newtonsoft.Json;
namespace MESApplication.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class CgthSqController : ControllerBase
    {
        private CgthSqManager m = new CgthSqManager();
        private readonly MessageCenterManager _manager = new();
        private readonly CgthSqManager Tz = new();
        private readonly string METHOD = "POST";
        private readonly string TableName = "CgthSq";
        private readonly string URL = "http://localhost:10054/api/CgthSq/";
        [HttpPost("Save")]
        public ResponseResult Save(ERPCGTH CGTH)
        {
            var entity = new MessageCenter();
            entity.TableName = TableName;
            entity.Url = URL + "Save";
            entity.Method = METHOD;
            entity.Data = JsonConvert.SerializeObject(CGTH);
            entity.Status = 1;
            entity.CreateBy = "PL017";
            entity.Route = CGTH.ErpCgtha.BillNo;
            try
            {
                dynamic resultInfos = new ExpandoObject();
                var save = m.Save(CGTH);
                resultInfos.tbBillList = save;
                entity.Result = 0;
                if (save) 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);
            }
        }
        [HttpPost("SaveList")]
        public ResponseResult SaveList(List<ERPCGTH> units)
        {
            var entity = new MessageCenter();
            entity.TableName = TableName;
            entity.Url = URL + "SaveList";
            entity.Method = METHOD;
            entity.Data = JsonConvert.SerializeObject(units);
            entity.Status = 1;
            entity.CreateBy = "PL017";
            try
            {
                dynamic resultInfos = new ExpandoObject();
                var save = m.SaveList(units);
                resultInfos.tbBillList = save;
                entity.Result = 0;
                if (save) 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] CgthSq 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] CgthSq 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] CgthSq 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);
            }
        }
    }
}
StandardInterface/MESApplication/Controllers/CgthSqDetailController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
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 MES.Service.Modes;
using MES.Service.service;
using MES.Service.util;
namespace MESApplication.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class CgthSqDetailController : ControllerBase
    {
        private CgthSqDetailManager m = new CgthSqDetailManager();
        /***进入模版管理可以修改模版***/
        /// <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] CgthSqDetail 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] CgthSqDetail 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] CgthSqDetail 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);
            }
        }
    }
}
StandardInterface/MESApplication/Controllers/DbckaController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Dynamic;
using MES.Service.service;
using MES.Service.Dto.webApi;
using MES.Service.util;
using Newtonsoft.Json;
using MES.Service.Modes;
namespace MESApplication.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class DbckaController : ControllerBase
    {
        private readonly DbckaManager _manager = new();
        private readonly MessageCenterManager _messageManager = new();
        private const string METHOD = "POST";
        private const string TableName = "Dbcka";
        private const string URL = "http://localhost:10054/api/Dbcka/";
        [HttpPost("Save")]
        public ResponseResult Save([FromBody] ERPDBCK data)
        {
            var msg = new MessageCenter
            {
                TableName = TableName,
                Url = URL + "Save",
                Method = METHOD,
                Data = JsonConvert.SerializeObject(data),
                Status = 1,
                CreateBy = "PL017",
                Route = data.erpDbcka.billno
            };
            try
            {
                dynamic resultInfos = new ExpandoObject();
                var success = _manager.Save(data);
                resultInfos.tbBillList = success;
                msg.Result = success ? (short?)1 : (short?)0;
                msg.DealWith = 1;
                _messageManager.save(msg);
                return new ResponseResult { status = 0, message = "OK", data = resultInfos };
            }
            catch (Exception ex)
            {
                msg.Result = 0;
                msg.DealWith = 0;
                msg.ResultData = ex.Message;
                _messageManager.save(msg);
                return ResponseResult.ResponseError(ex);
            }
        }
        [HttpPost("SaveList")]
        public ResponseResult SaveList([FromBody] List<ERPDBCK> dataList)
        {
            var msg = new MessageCenter
            {
                TableName = TableName,
                Url = URL + "SaveList",
                Method = METHOD,
                Data = JsonConvert.SerializeObject(dataList),
                Status = 1,
                CreateBy = "PL017"
            };
            try
            {
                dynamic resultInfos = new ExpandoObject();
                var success = _manager.SaveList(dataList);
                resultInfos.tbBillList = success;
                msg.Result = success ? (short?)1 : (short?)0;
                msg.DealWith = 1;
                _messageManager.save(msg);
                return new ResponseResult { status = 0, message = "OK", data = resultInfos };
            }
            catch (Exception ex)
            {
                msg.Result = 0;
                msg.DealWith = 0;
                msg.ResultData = ex.Message;
                _messageManager.save(msg);
                return ResponseResult.ResponseError(ex);
            }
        }
    }
}