hao
2025-06-04 d7bf5fce0a442c858d02675a2c71a8af49937ae2
分布式调拨
已添加2个文件
已修改1个文件
440 ■■■■■ 文件已修改
StandardInterface/MES.Service/Modes/MesInvItemDbsq.cs 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/MesInvItemDbsqItems.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/DbckaManager.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Modes/MesInvItemDbsq.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,215 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace MES.Service.Modes
{
    /// <summary>
    /// è°ƒæ‹¨ç”³è¯·å•
    ///</summary>
    [SugarTable("MES_INV_ITEM_DBSQ")]
    public class MesInvItemDbsq
    {
        /// <summary>
        /// SEQ_INV_ID
        ///</summary>
        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_DBSQ")]
        //[SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
        public decimal Id { get; set; }
        /// <summary>
        /// è°ƒæ‹¨ç”³è¯·å•号
        ///</summary>
        [SugarColumn(ColumnName = "BILL_NO")]
        public string? BillNo { get; set; }
        /// <summary>
        /// ç§»å…¥å­åº“id
        ///</summary>
        [SugarColumn(ColumnName = "INV_DEPOTS_ID")]
        public decimal? InvDepotsId { get; set; }
        /// <summary>
        /// ç§»å…¥è´§ä½id
        ///</summary>
        [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_ID")]
        public decimal? InvDepotSectionsId { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        ///</summary>
        [SugarColumn(ColumnName = "CREATE_BY")]
        public string? CreateBy { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        ///</summary>
        [SugarColumn(ColumnName = "CREATE_DATE")]
        public DateTime? CreateDate { get; set; }
        /// <summary>
        /// æœ€åŽæ›´æ–°äºº
        ///</summary>
        [SugarColumn(ColumnName = "LASTUPDATE_BY")]
        public string? LastupdateBy { get; set; }
        /// <summary>
        /// æœ€åŽæ›´æ–°æ—¶é—´
        ///</summary>
        [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
        public DateTime? LastupdateDate { get; set; }
        /// <summary>
        /// çŠ¶æ€|0-制单1-审核2-过账
        ///</summary>
        [SugarColumn(ColumnName = "STATUS")]
        public decimal? Status { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        ///</summary>
        [SugarColumn(ColumnName = "REMARK")]
        public string? Remark { get; set; }
        /// <summary>
        /// å•据类型ID
        ///</summary>
        [SugarColumn(ColumnName = "BILL_TYPE_ID")]
        public decimal? BillTypeId { get; set; }
        /// <summary>
        /// äº‹åŠ¡ç±»åž‹ID
        ///</summary>
        [SugarColumn(ColumnName = "TRANSACTION_ID")]
        public decimal? TransactionId { get; set; }
        /// <summary>
        /// å®¡æ ¸äºº
        ///</summary>
        [SugarColumn(ColumnName = "CHECKUSER")]
        public string? Checkuser { get; set; }
        /// <summary>
        /// å®¡æ ¸æ—¥æœŸ
        ///</summary>
        [SugarColumn(ColumnName = "CHECKDATE")]
        public DateTime? Checkdate { get; set; }
        /// <summary>
        /// ç§»å…¥å­åº“code
        ///</summary>
        [SugarColumn(ColumnName = "INV_DEPOTS_CODE")]
        public string? InvDepotsCode { get; set; }
        /// <summary>
        /// ç§»å…¥è´§ä½code
        ///</summary>
        [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_CODE")]
        public string? InvDepotSectionsCode { get; set; }
        /// <summary>
        /// äº‹åŠ¡ç±»åž‹ç¼–ç 
        ///</summary>
        [SugarColumn(ColumnName = "TRANSACTION_NO")]
        public decimal? TransactionNo { get; set; }
        /// <summary>
        /// ç§»å‡ºå­åº“code
        ///</summary>
        [SugarColumn(ColumnName = "FROM_DEPOTS_CODE")]
        public string? FromDepotsCode { get; set; }
        /// <summary>
        /// å·¥åŽ‚ç¼–ç 
        ///</summary>
        [SugarColumn(ColumnName = "FACTORY_CODE")]
        public string? FactoryCode { get; set; }
        /// <summary>
        /// SAP返回单据
        ///</summary>
        [SugarColumn(ColumnName = "SAPNO")]
        public string? Sapno { get; set; }
        /// <summary>
        /// å·²å›žå†™SAP
        ///</summary>
        [SugarColumn(ColumnName = "SAPSTATUS")]
        public short? Sapstatus { get; set; }
        /// <summary>
        /// SAP返回年份
        ///</summary>
        [SugarColumn(ColumnName = "SAPYEAR")]
        public short? Sapyear { get; set; }
        /// <summary>
        /// SAP返回信息
        ///</summary>
        [SugarColumn(ColumnName = "SAPTEXT")]
        public string? Saptext { get; set; }
        /// <summary>
        /// åˆ†åŽ‚ç¼–ç 
        ///</summary>
        [SugarColumn(ColumnName = "FACTORY")]
        public string? Factory { get; set; }
        /// <summary>
        /// å…¬å¸ä»£ç 
        ///</summary>
        [SugarColumn(ColumnName = "COMPANY")]
        public string? Company { get; set; }
        /// <summary>
        /// æ˜¯å¦æŽ¨é€ERP1-是,2-否
        ///</summary>
        [SugarColumn(ColumnName = "TS")]
        public decimal? Ts { get; set; }
        /// <summary>
        /// 0未调拨1已调拨
        ///</summary>
        [SugarColumn(ColumnName = "DB_STATUS")]
        public string? DbStatus { get; set; }
        /// <summary>
        /// è°ƒå‡ºç»„织
        ///</summary>
        [SugarColumn(ColumnName = "FSTOCKOUTORGID")]
        public decimal? Fstockoutorgid { get; set; }
        /// <summary>
        /// è°ƒå…¥ç»„织
        ///</summary>
        [SugarColumn(ColumnName = "FSTOCKORGID")]
        public decimal? Fstockorgid { get; set; }
        /// <summary>
        /// å•据类型
        ///</summary>
        [SugarColumn(ColumnName = "DJ_LX")]
        public string? Djlx { get; set; }
        /// <summary>
        /// è°ƒæ‹¨ç±»åž‹
        ///</summary>
        [SugarColumn(ColumnName = "DB_LX1")]
        public string? DbLx1 { get; set; }
        /// <summary>
        /// è°ƒæ‹¨æ–¹å‘
        ///</summary>
        [SugarColumn(ColumnName = "DB_FX")]
        public string? DbFx { get; set; }
        /// <summary>
        /// è°ƒæ‹¨ç±»åž‹
        ///</summary>
        [SugarColumn(ColumnName = "DB_LX")]
        public string? DbLx { get; set; }
        /// <summary>
        /// ä¸šåŠ¡ç±»åž‹
        ///</summary>
        [SugarColumn(ColumnName = "YW_LX")]
        public string? YwLx { get; set; }
        /// <summary>
        /// å•据状态
        ///</summary>
        [SugarColumn(ColumnName = "DJ_ZT")]
        public string? DjZt { get; set; }
        /// <summary>
        /// ç”³è¯·éƒ¨é—¨
        ///</summary>
        [SugarColumn(ColumnName = "SQ_BM")]
        public string? SqBm { get; set; }
        /// <summary>
        /// ç”³è¯·ç»„织
        ///</summary>
        [SugarColumn(ColumnName = "SQ_ZZ")]
        public string? SqZz { get; set; }
        /// <summary>
        /// ç”³è¯·æ—¥æœŸ
        ///</summary>
        [SugarColumn(ColumnName = "SQ_TIME")]
        public string? SqTime { get; set; }
        /// <summary>
        /// è°ƒå‡ºè´§ä¸»ç±»åž‹
        ///</summary>
        [SugarColumn(ColumnName = "DC_HZ")]
        public string? DcHz { get; set; }
        /// <summary>
        ///
        ///</summary>
        [SugarColumn(ColumnName = "ERPID")]
        public string? Erpid { get; set; }
    }
}
StandardInterface/MES.Service/Modes/MesInvItemDbsqItems.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace MES.Service.Modes
{
    /// <summary>
    /// è°ƒæ‹¨ç”³è¯·å•明细表
    ///</summary>
    [SugarTable("MES_INV_ITEM_DBSQ_ITEMS")]
    public class MesInvItemDbsqItems
    {
        /// <summary>
        /// SEQ_MOVE_DETAIL
        ///</summary>
        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_DBSQ_DETAIL")]
        //[SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
        public decimal Id { get; set; }
        /// <summary>
        /// ä¸»è¡¨id
        ///</summary>
        [SugarColumn(ColumnName = "ITEM_MOVE_ID")]
        public decimal? ItemMoveId { get; set; }
        /// <summary>
        /// ç‰©æ–™å†…码
        ///</summary>
        [SugarColumn(ColumnName = "ITEM_ID")]
        public decimal? ItemId { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–码
        ///</summary>
        [SugarColumn(ColumnName = "ITEM_NO")]
        public string? ItemNo { get; set; }
        /// <summary>
        /// ç”³è¯·æ•°é‡
        ///</summary>
        [SugarColumn(ColumnName = "SQ_NUM")]
        public decimal? SqNum { get; set; }
        /// <summary>
        /// è°ƒå‡ºæ•°é‡
        ///</summary>
        [SugarColumn(ColumnName = "DC_NUM")]
        public decimal? DcNum { get; set; }
        /// <summary>
        /// è°ƒå…¥æ•°é‡
        ///</summary>
        [SugarColumn(ColumnName = "DR_NUM")]
        public decimal? DrNum { get; set; }
        /// <summary>
        /// å½“前库存数
        ///</summary>
        [SugarColumn(ColumnName = "KC")]
        public decimal? Kc { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        ///</summary>
        [SugarColumn(ColumnName = "REMARK")]
        public string? Remark { get; set; }
        /// <summary>
        /// é¡¹æ¬¡
        ///</summary>
        [SugarColumn(ColumnName = "LINE_NO")]
        public decimal? LineNo { get; set; }
        /// <summary>
        /// è°ƒæ‹¨ç”³è¯·å•号
        ///</summary>
        [SugarColumn(ColumnName = "BILL_NO")]
        public string? BillNo { get; set; }
        /// <summary>
        /// è°ƒå‡ºçŠ¶æ€
        ///</summary>
        [SugarColumn(ColumnName = "MOVE_OUT")]
        public decimal? MoveOut { get; set; }
        /// <summary>
        /// è°ƒå…¥çŠ¶æ€
        ///</summary>
        [SugarColumn(ColumnName = "MOVE_IN")]
        public decimal? MoveIn { get; set; }
        /// <summary>
        /// åˆ›å»ºäºº
        ///</summary>
        [SugarColumn(ColumnName = "CREATE_BY")]
        public string? CreateBy { get; set; }
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        ///</summary>
        [SugarColumn(ColumnName = "CREATE_DATE")]
        public DateTime? CreateDate { get; set; }
        /// <summary>
        /// æœ€åŽæ›´æ–°äºº
        ///</summary>
        [SugarColumn(ColumnName = "LASTUPDATE_BY")]
        public string? LastupdateBy { get; set; }
        /// <summary>
        /// æœ€åŽæ›´æ–°æ—¶é—´
        ///</summary>
        [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
        public DateTime? LastupdateDate { get; set; }
        /// <summary>
        /// å•位
        ///</summary>
        [SugarColumn(ColumnName = "ITEM_UNIT")]
        public decimal? ItemUnit { get; set; }
        /// <summary>
        /// æ˜¯å¦åŒæ­¥ERP
        ///</summary>
        [SugarColumn(ColumnName = "IS_TB")]
        public decimal? IsTb { get; set; }
        /// <summary>
        /// è°ƒå‡ºç»„织
        ///</summary>
        [SugarColumn(ColumnName = "DC_ORG")]
        public string? DcOrg { get; set; }
        /// <summary>
        /// è°ƒå‡ºä»“库
        ///</summary>
        [SugarColumn(ColumnName = "DC_DEPOT")]
        public string? DcDepot { get; set; }
        /// <summary>
        /// è°ƒå…¥ç»„织
        ///</summary>
        [SugarColumn(ColumnName = "DR_ORG")]
        public string? DrOrg { get; set; }
        /// <summary>
        /// è°ƒå…¥ä»“库
        ///</summary>
        [SugarColumn(ColumnName = "DR_DEPOT")]
        public string? DrDepot { get; set; }
        /// <summary>
        /// è°ƒå‡ºè´§ä¸»
        ///</summary>
        [SugarColumn(ColumnName = "DC_HZ")]
        public string? DcHz { get; set; }
        /// <summary>
        /// è°ƒå…¥è´§ä¸»
        ///</summary>
        [SugarColumn(ColumnName = "DR_HZ")]
        public string? DrHz { get; set; }
        /// <summary>
        /// erpid
        ///</summary>
        [SugarColumn(ColumnName = "ERPID")]
        public string? Erpid { get; set; }
        /// <summary>
        /// erp头id
        ///</summary>
        [SugarColumn(ColumnName = "EID")]
        public string? Eid { get; set; }
    }
}
StandardInterface/MES.Service/service/DbckaManager.cs
@@ -5,10 +5,11 @@
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace MES.Service.service
{
    public class DbckaManager : Repository<Dbcka>
    public class DbckaManager : Repository<MesInvItemDbsq>
    {
        public bool SaveList(List<ERPDBCK> list)
        {
@@ -18,7 +19,7 @@
        public bool Save(ERPDBCK data)
        {
            var head = MapErpDbckaToDbcka(data.erpDbcka);
            var head = MapErpToMesHead(data.erpDbcka);
            var details = MapErpDbckbToDbckb(data.erpDbckB);
            return UseTransaction(db =>
@@ -37,12 +38,12 @@
            }) > 0;
        }
        private Dbcka MapErpDbckaToDbcka(ErpDBCKA dto)
        private MesInvItemDbsq MapErpToMesHead(ErpDBCKA dto)
        {
            var entity = new Dbcka
            var entity = new MesInvItemDbsq
            {
                Billno = dto.billno,
                DjLx = dto.dj_lx,
                BillNo = dto.billno,
                Djlx = dto.dj_lx,
                DbLx1 = dto.db_lx1,
                DbFx = dto.db_fx,
                DbLx = dto.db_lx,
@@ -50,43 +51,51 @@
                DjZt = dto.dj_zt,
                SqBm = dto.sq_bm,
                SqZz = dto.sq_zz,
                SqTime = DateTime.TryParse(dto.sq_time, out var d) ? d : null,
                SqTime = dto.sq_time,
                DcHz = dto.dc_hz,
                Bz = dto.bz,
                Type = dto.type,
                Remark = dto.bz,
                Erpid = dto.erpid,
                CreateDate = DateTime.Now
                CreateDate = DateTime.Now,
                CreateBy = "System"
            };
            var single = base.GetSingle(it => it.Erpid == entity.Erpid);
            if (single != null) entity.Id = single.Id;
            //    var single = base.GetSingle(it => it.Erpid == entity.Erpid);
            /* if (single != null && single.Id.HasValue)
                 entity.Id = single.Id.Value;*/
            var single = Db.Queryable<MesInvItemDbsq>()
               .Where(it => it.Erpid == entity.Erpid)
               .First();
            if (single != null)
                entity.Id = single.Id;
            return entity;
        }
        private List<Dbckb> MapErpDbckbToDbckb(List<ErpDBCKB> list)
        private List<MesInvItemDbsqItems> MapErpDbckbToDbckb(List<ErpDBCKB> list)
        {
            var result = new List<Dbckb>();
            var result = new List<MesInvItemDbsqItems>();
            foreach (var dto in list)
            {
                var item = new Dbckb
                var item = new MesInvItemDbsqItems
                {
                    Itemid = dto.itemid,
                    Unit = dto.unit,
                    Quantity = decimal.TryParse(dto.quantity, out var qty) ? qty : null,
                    ItemId = Convert.ToDecimal(dto.itemid),
                    ItemUnit = Convert.ToDecimal(dto.unit),
                    SqNum = decimal.TryParse(dto.quantity, out var qty) ? qty : 0,
                    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,
                    Remark = dto.bz,
                    Erpid = dto.erpid,
                    Eid = dto.eid
                    Eid = dto.eid,
                };
                var existing = Db.Queryable<Dbckb>().Where(s => s.Erpid == item.Erpid).Single();
                var existing = Db.Queryable<MesInvItemDbsqItems>().Where(s => s.Erpid == item.Erpid).Single();
                if (existing != null) item.Id = existing.Id;
                result.Add(item);
@@ -95,37 +104,42 @@
            return result;
        }
        private bool SaveOrUpdateData(SqlSugarScope db, Dbcka head, List<Dbckb> details)
        private bool SaveOrUpdateData(SqlSugarScope db, MesInvItemDbsq head, List<MesInvItemDbsqItems> details)
        {
            if (head.Id != null)
                base.DeleteById(head.Id);
            db.Deleteable<Dbckb>()
            db.Deleteable<MesInvItemDbsqItems>()
              .Where(d => d.Eid == head.Erpid)
              .ExecuteCommand();
            var insertedHead = db.Insertable(head)
                .IgnoreColumns(true)
                .ExecuteReturnEntity();
                .ExecuteReturnIdentity();
            if (insertedHead <= 0)
                throw new Exception("主表插入失败,未返回ID");
            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;
            if (insertedHead >= 0 && success) return true;
            throw new NotImplementedException("插入或更新失败");
        }
        private bool UpdateData(SqlSugarScope db, Dbcka head, List<Dbckb> details)
        private bool UpdateData(SqlSugarScope db, MesInvItemDbsq head, List<MesInvItemDbsqItems> details)
        {
            var ids = details.Select(d => d.Id).ToArray();
            var deletedHead = base.DeleteById(head.Id);
            var deletedDetails = db.Deleteable<Dbckb>().In(ids).ExecuteCommand() > 0;
            var deletedDetails = db.Deleteable<MesInvItemDbsqItems>().In(ids).ExecuteCommand() > 0;
            return deletedHead && deletedDetails;
            if (deletedHead && deletedDetails) return true;
            throw new NotImplementedException("更新失败");
        }
    }
}