From b4f37860c45b15825128912f1a117a8e90f9dc42 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期二, 25 二月 2025 08:45:34 +0800
Subject: [PATCH] 1.调拨申请单接口已完成

---
 MES.Service/Modes/MesDbckDetail.cs                                |  136 ++++++++++
 MES.Service/service/BasicData/TransferRequestManager.cs           |  280 +++++++++++++++++++++
 MESApplication/Controllers/BasicData/TransferRequestController.cs |   58 ++--
 MES.Service/service/BasicData/TransferRequestDetailManager.cs     |   78 ++++++
 MES.Service/Modes/MesDbck.cs                                      |  172 +++++++++++++
 5 files changed, 695 insertions(+), 29 deletions(-)

diff --git a/MES.Service/Modes/MesDbck.cs b/MES.Service/Modes/MesDbck.cs
new file mode 100644
index 0000000..e8ada26
--- /dev/null
+++ b/MES.Service/Modes/MesDbck.cs
@@ -0,0 +1,172 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     璋冩嫧鍑哄簱鐢宠
+/// </summary>
+[SugarTable("MES_DBCK")]
+public class MesDbck
+{
+    /// <summary>
+    ///     涓婚敭
+    /// </summary>
+    [SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
+    public Guid? Id { get; set; }
+
+    /// <summary>
+    ///     鍗曟嵁缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "FBillNo")]
+    public string? FBillNo { get; set; }
+
+    /// <summary>
+    ///     鍗曟嵁鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "FDocumentStatus")]
+    public string? FDocumentStatus { get; set; }
+
+    /// <summary>
+    ///     鐢宠鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "FDate")]
+    public DateTime? FDate { get; set; }
+
+    /// <summary>
+    ///     鐢宠缁勭粐
+    /// </summary>
+    [SugarColumn(ColumnName = "FAPPORGID")]
+    public string? FAppOrgId { get; set; }
+
+    /// <summary>
+    ///     鍗曟嵁绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "FBillTypeID")]
+    public string? FBillTypeId { get; set; }
+
+    /// <summary>
+    ///     涓氬姟绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "FBusinessType")]
+    public string? FBusinessType { get; set; }
+
+    /// <summary>
+    ///     璋冩嫧绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "FTRANSTYPE")]
+    public string? FTransType { get; set; }
+
+    /// <summary>
+    ///     璋冩嫧鏂瑰悜
+    /// </summary>
+    [SugarColumn(ColumnName = "FTransferDirect")]
+    public string? FTransferDirect { get; set; }
+
+    /// <summary>
+    ///     璋冨嚭璐т富绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "FOwnerTypeIdHead")]
+    public string? FOwnerTypeIdHead { get; set; }
+
+    /// <summary>
+    ///     璋冨叆璐т富绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "FOwnerTypeInIdHead")]
+    public string? FOwnerTypeInIdHead { get; set; }
+
+    /// <summary>
+    ///     澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "FRemarks")]
+    public string? FRemarks { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "FCreatorId")]
+    public string? FCreatorId { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "FCreateDate")]
+    public DateTime? FCreateDate { get; set; }
+
+    /// <summary>
+    ///     鏈�鍚庝慨鏀逛汉
+    /// </summary>
+    [SugarColumn(ColumnName = "FModifierId")]
+    public string? FModifierId { get; set; }
+
+    /// <summary>
+    ///     鏈�鍚庝慨鏀规棩鏈�
+    /// </summary>
+    [SugarColumn(ColumnName = "FModifyDate")]
+    public DateTime? FModifyDate { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "FAPPROVEDATE")]
+    public DateTime? FApproveDate { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "FAPPROVEBY")]
+    public string? FApproveBy { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "FAPPROVEStatus")]
+    public int? FApproveStatus { get; set; }
+
+    /// <summary>
+    ///     鍏抽棴鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "FCloseStatus")]
+    public string? FCloseStatus { get; set; }
+
+    /// <summary>
+    ///     鍏抽棴浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "FCloserId")]
+    public string? FCloserId { get; set; }
+
+    /// <summary>
+    ///     鍏抽棴鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "FCloseDate")]
+    public DateTime? FCloseDate { get; set; }
+
+    /// <summary>
+    ///     BOM鐗堟湰
+    /// </summary>
+    [SugarColumn(ColumnName = "F_UNW_Base_BOMBB")]
+    public string? FUnwBaseBomBb { get; set; }
+
+    /// <summary>
+    ///     鐖堕」鐗╂枡缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "F_UNW_Base_FXWLBM")]
+    public string? FUnwBaseFxwlBm { get; set; }
+
+    /// <summary>
+    ///     鏄惁瀹岀粨
+    /// </summary>
+    [SugarColumn(ColumnName = "FINISHSTATUS")]
+    public int? FinishStatus { get; set; }
+
+    /// <summary>
+    ///     鍋氬崟婧愬ご锛圗RP/MES锛�
+    /// </summary>
+    [SugarColumn(ColumnName = "Source")]
+    public string? Source { get; set; }
+
+    /// <summary>
+    ///     ERP涓婚敭
+    /// </summary>
+    [SugarColumn(ColumnName = "ERPID")]
+    public decimal? ErpID { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/MesDbckDetail.cs b/MES.Service/Modes/MesDbckDetail.cs
new file mode 100644
index 0000000..8109b06
--- /dev/null
+++ b/MES.Service/Modes/MesDbckDetail.cs
@@ -0,0 +1,136 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     璋冩嫧鍑哄簱鐢宠璇︽儏
+/// </summary>
+[SugarTable("MES_DBCK_DETAIL")]
+public class MesDbckDetail
+{
+    /// <summary>
+    ///     涓婚敭
+    /// </summary>
+    [SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
+    public Guid? Id { get; set; }
+
+    /// <summary>
+    ///     鐖剁骇ID
+    /// </summary>
+    [SugarColumn(ColumnName = "pid")]
+    public Guid? Pid { get; set; }
+
+    /// <summary>
+    ///     鐗╂枡ID
+    /// </summary>
+    [SugarColumn(ColumnName = "FMATERIALID")]
+    public string? FMaterialId { get; set; }
+
+    /// <summary>
+    ///     鏁伴噺
+    /// </summary>
+    [SugarColumn(ColumnName = "FQty")]
+    public decimal? FQty { get; set; }
+
+    /// <summary>
+    ///     鍗曚綅ID
+    /// </summary>
+    [SugarColumn(ColumnName = "FUNITID")]
+    public string? FUnitId { get; set; }
+
+    /// <summary>
+    ///     涓氬姟鍏抽棴鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "FBusinessClose")]
+    public string? FBusinessClose { get; set; }
+
+    /// <summary>
+    ///     鎵规鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "FLot")]
+    public string? FLot { get; set; }
+
+    /// <summary>
+    ///     鐢熶骇鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "FProduceDate")]
+    public DateTime? FProduceDate { get; set; }
+
+    /// <summary>
+    ///     鍑哄簱缁勭粐ID
+    /// </summary>
+    [SugarColumn(ColumnName = "FStockOrgId")]
+    public string? FStockOrgId { get; set; }
+
+    /// <summary>
+    ///     鍑哄簱浠撳簱ID
+    /// </summary>
+    [SugarColumn(ColumnName = "FStockId")]
+    public string? FStockId { get; set; }
+
+    /// <summary>
+    ///     鍏ュ簱缁勭粐ID
+    /// </summary>
+    [SugarColumn(ColumnName = "FStockOrgInId")]
+    public string? FStockOrgInId { get; set; }
+
+    /// <summary>
+    ///     鍏ュ簱浠撳簱ID
+    /// </summary>
+    [SugarColumn(ColumnName = "FStockInId")]
+    public string? FStockInId { get; set; }
+
+    /// <summary>
+    ///     MTO缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "FMtoNo")]
+    public string? FMtoNo { get; set; }
+
+    /// <summary>
+    ///     璋冨嚭璐т富ID
+    /// </summary>
+    [SugarColumn(ColumnName = "FOwnerId")]
+    public string? FOwnerId { get; set; }
+
+    /// <summary>
+    ///     璋冨叆璐т富ID
+    /// </summary>
+    [SugarColumn(ColumnName = "FOwnerInId")]
+    public string? FOwnerInId { get; set; }
+
+    /// <summary>
+    ///     鍑哄簱鐘舵�両D
+    /// </summary>
+    [SugarColumn(ColumnName = "FStockStatusId")]
+    public string? FStockStatusId { get; set; }
+
+    /// <summary>
+    ///     鍏ュ簱鐘舵�両D
+    /// </summary>
+    [SugarColumn(ColumnName = "FStockStatusInId")]
+    public string? FStockStatusInId { get; set; }
+
+    /// <summary>
+    ///     澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "FNote")]
+    public string? FNote { get; set; }
+
+    /// <summary>
+    ///     搴忓彿
+    /// </summary>
+    [SugarColumn(ColumnName = "FSEQ")]
+    public int? FSeq { get; set; }
+
+    /// <summary>
+    ///     ERP涓婚敭
+    /// </summary>
+    [SugarColumn(ColumnName = "ERPID")]
+    public decimal? ErpID { get; set; }
+
+    /// <summary>
+    ///     ERP涓婚敭
+    /// </summary>
+    [SugarColumn(ColumnName = "EID")]
+    public decimal? Eid { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/service/BasicData/TransferRequestDetailManager.cs b/MES.Service/service/BasicData/TransferRequestDetailManager.cs
new file mode 100644
index 0000000..32baf95
--- /dev/null
+++ b/MES.Service/service/BasicData/TransferRequestDetailManager.cs
@@ -0,0 +1,78 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Modes;
+using SqlSugar;
+
+namespace MES.Service.service.BasicData;
+
+public class TransferRequestDetailManager : Repository<MesDbckDetail>
+{
+    //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
+
+    //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 MesDbckDetailManager.cs
+
+
+    #region 鏁欏鏂规硶
+
+    /// <summary>
+    ///     浠撳偍鏂规硶婊¤冻涓嶄簡澶嶆潅涓氬姟闇�姹傦紝涓氬姟浠g爜璇峰湪杩欓噷闈㈠畾涔夋柟娉�
+    /// </summary>
+    public void Study()
+    {
+        /*********鏌ヨ*********/
+
+        var data1 = base.GetById(1); //鏍规嵁ID鏌ヨ
+        var data2 = base.GetList(); //鏌ヨ鎵�鏈�
+        var data3 = base.GetList(it => 1 == 1); //鏍规嵁鏉′欢鏌ヨ  
+        //var data4 = base.GetSingle(it => 1 == 1);//鏍规嵁鏉′欢鏌ヨ涓�鏉�,濡傛灉瓒呰繃涓�鏉′細鎶ラ敊
+
+        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // 鍒嗛〉鏌ヨ
+        var data5 = base.GetPageList(it => 1 == 1, p);
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
+
+        var data6 =
+            base.GetPageList(it => 1 == 1, p,
+                it => SqlFunc.GetRandom()); // 鍒嗛〉鏌ヨ鍔犳帓搴�
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
+
+        var conModels = new List<IConditionalModel>(); //缁勮鏉′欢鏌ヨ浣滀负鏉′欢瀹炵幇 鍒嗛〉鏌ヨ鍔犳帓搴�
+        conModels.Add(new ConditionalModel
+        {
+            FieldName = typeof(MesDbckDetail).GetProperties()[0].Name,
+            ConditionalType = ConditionalType.Equal, FieldValue = "1"
+        }); //id=1
+        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
+
+        AsQueryable().Where(x => 1 == 1)
+            .ToList(); //鏀寔浜嗚浆鎹㈡垚queryable,鎴戜滑鍙互鐢╭ueryable瀹炵幇澶嶆潅鍔熻兘
+
+
+        /*********鎻掑叆*********/
+        var insertData = new MesDbckDetail(); //娴嬭瘯鍙傛暟
+        var insertArray = new[] { insertData };
+        base.Insert(insertData); //鎻掑叆
+        base.InsertRange(insertArray); //鎵归噺鎻掑叆
+        var id = base.InsertReturnIdentity(insertData); //鎻掑叆杩斿洖鑷鍒�
+        AsInsertable(insertData).ExecuteCommand(); //鎴戜滑鍙互杞垚 Insertable瀹炵幇澶嶆潅鎻掑叆
+
+
+        /*********鏇存柊*********/
+        var updateData = new MesDbckDetail(); //娴嬭瘯鍙傛暟
+        var updateArray = new[] { updateData }; //娴嬭瘯鍙傛暟
+        base.Update(updateData); //鏍规嵁瀹炰綋鏇存柊
+        base.UpdateRange(updateArray); //鎵归噺鏇存柊
+        //base.Update(it => new MesDbckDetail() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// 鍙洿鏂癈lassName鍒楀拰CreateTime鍒楋紝鍏跺畠鍒椾笉鏇存柊锛屾潯浠秈d=1
+        AsUpdateable(updateData).ExecuteCommand(); //杞垚Updateable鍙互瀹炵幇澶嶆潅鐨勬彃鍏�
+
+
+        /*********鍒犻櫎*********/
+        var deldata = new MesDbckDetail(); //娴嬭瘯鍙傛暟
+        base.Delete(deldata); //鏍规嵁瀹炰綋鍒犻櫎
+        base.DeleteById(1); //鏍规嵁涓婚敭鍒犻櫎
+        base.DeleteById(new[] { 1, 2 }); //鏍规嵁涓婚敭鏁扮粍鍒犻櫎
+        base.Delete(it => 1 == 2); //鏍规嵁鏉′欢鍒犻櫎
+        AsDeleteable().Where(it => 1 == 2)
+            .ExecuteCommand(); //杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣�
+    }
+
+    #endregion
+}
\ No newline at end of file
diff --git a/MES.Service/service/BasicData/TransferRequestManager.cs b/MES.Service/service/BasicData/TransferRequestManager.cs
new file mode 100644
index 0000000..217d10e
--- /dev/null
+++ b/MES.Service/service/BasicData/TransferRequestManager.cs
@@ -0,0 +1,280 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using SqlSugar;
+using System.Globalization;
+using System.Security.Cryptography;
+
+namespace MES.Service.service.BasicData;
+
+public class TransferRequestManager : Repository<MesDbck>
+{
+    //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
+
+    //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 TransferRequestManager.cs
+    //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
+
+
+    private readonly TransferRequestDetailManager _TransferRequestDetailManager =
+        new();
+
+    //private Guid Tid = Guid.Empty;
+
+    //ErpTransferRequest
+    public bool Save(TransferRequest TransferRequest)
+    {
+        var erpTransferRequestDto = TransferRequest.ErpTransferRequest;
+        var mesTransferRequest = ConvertErpToTransferRequest(TransferRequest.ErpTransferRequest);
+        var mesTransferRequestDatas = ConvertErpToTransferRequestDetail(mesTransferRequest,TransferRequest.ErpTransferRequestDetail);
+
+        return UseTransaction(db =>
+        {
+            switch (erpTransferRequestDto.Type)
+            {
+                // case "2":
+                //     return InsertData(db, mesTransferRequest, mesTransferRequestDatas,
+                //         rohInErpRohIn.FBILLTYPE)
+                //         ? 1
+                //         : 0;
+                case "3":
+                    return UpdateData(db, mesTransferRequest, mesTransferRequestDatas) ? 1 : 0;
+                case "2":
+                case "4":
+                    return SaveOrUpdateData(db, mesTransferRequest, mesTransferRequestDatas, erpTransferRequestDto.Type)
+                        ? 1
+                        : 0;
+                default:
+                    throw new NotImplementedException(
+                        $"type娌℃湁{erpTransferRequestDto.Type}杩欎釜绫诲瀷");
+            }
+        }) > 0;
+    }
+
+    private bool UpdateData(SqlSugarScope db, MesDbck mesTransferRequest,
+        List<MesDbckDetail> mesTransferRequestDatas)
+    {
+        int update = 0;
+        int insertOrUpdate = 0;
+
+        if (mesTransferRequest.Id != null)
+        {
+            update = db.Deleteable<MesDbck>()
+                .Where(s => s.ErpID == mesTransferRequest.ErpID)
+                .ExecuteCommand();
+        }
+
+        if (mesTransferRequestDatas.Count > 0 && mesTransferRequest.ErpID != null)
+        {
+            insertOrUpdate = db.Deleteable<MesDbckDetail>()
+                .Where(s => s.Eid == mesTransferRequest.ErpID)
+                .ExecuteCommand();
+        }
+
+        // 淇閫昏緫鍒ゆ柇锛屽皢 int 绫诲瀷涓� bool 绫诲瀷姣旇緝鏀逛负瀹為檯鍊煎垽鏂�
+        if (update > 0 && insertOrUpdate > 0)
+        {
+            return true;
+        }
+
+        throw new NotImplementedException("鏇存柊澶辫触");
+    }
+
+    // 鎻掑叆鎴栨洿鏂版暟鎹殑鏂规硶
+    private bool SaveOrUpdateData(SqlSugarScope db, MesDbck mesTransferRequest,
+        List<MesDbckDetail> mesTransferRequestDatas, string type)
+    {
+        //if (mesTransferRequest.Id != null) base.DeleteById(mesTransferRequest.Id);
+
+        if (mesTransferRequest.ErpID != null)
+            db.Deleteable<MesDbck>()
+                .Where(s => s.ErpID == mesTransferRequest.ErpID).ExecuteCommand();
+
+        if (mesTransferRequestDatas.Count > 0)
+            db.Deleteable<MesDbckDetail>()
+                .Where(s => s.Eid == mesTransferRequest.ErpID).ExecuteCommand();
+
+        //var orUpdate = base.Insert(mesTransferRequest);
+        //var baOrUpdate = _TransferRequestDetailManager.InsertRange(mesTransferRequestDatas);
+        
+
+        var orUpdate = db.Insertable(mesTransferRequest)
+            .IgnoreColumns(true).ExecuteCommand() > 0;
+
+
+        var baOrUpdate = db.Insertable(mesTransferRequestDatas).PageSize(1)
+            .IgnoreColumnsNull()
+            .ExecuteCommand() > 0;
+        if (orUpdate && baOrUpdate) return true;
+
+        throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
+    }
+
+    // 鎵归噺淇濆瓨璁板綍鐨勬柟娉�
+    public bool SaveList(List<TransferRequest> TransferRequest)
+    {
+        var result = TransferRequest.Select(Save).ToList();
+        return result.All(b => b);
+    }
+
+    private MesDbck ConvertErpToTransferRequest(
+        ErpTransferRequest erpDto)
+    {
+        DateTime parsedDate;
+
+        // 鏃堕棿鏍煎紡杞崲鍑芥暟锛孍RP鏃堕棿鏍煎紡涓� "yyyy-MM-dd HH:mm:ss"
+        DateTime? ParseDateTime(string dateStr)
+        {
+            if (DateTime.TryParseExact(dateStr, "yyyy-MM-dd HH:mm:ss",
+                    CultureInfo.InvariantCulture,
+                    DateTimeStyles.None,
+                    out parsedDate))
+                return parsedDate;
+
+            return null; // 濡傛灉杞崲澶辫触锛岃繑鍥瀗ull
+        }
+
+        var mesDbck = new MesDbck
+        {
+            Id = Guid.NewGuid(),
+            ErpID = Convert.ToDecimal(erpDto.id),
+            FBillNo = erpDto.FBillNo, // 鍗曟嵁缂栧彿
+            FDocumentStatus = erpDto.FDocumentStatus, // 鍗曟嵁鐘舵��
+            FDate = !String.IsNullOrEmpty(erpDto.FDate) ? DateTime.ParseExact(erpDto.FDate, "yyyy-MM-dd HH:mm:ss", null) : null, // 鐢宠鏃ユ湡
+            FAppOrgId = erpDto.FAPPORGID, // 鐢宠缁勭粐
+            FBillTypeId = erpDto.FBillTypeID, // 鍗曟嵁绫诲瀷
+            FBusinessType = erpDto.FBusinessType, // 涓氬姟绫诲瀷
+            FTransType = erpDto.FTRANSTYPE, // 璋冩嫧绫诲瀷
+            FTransferDirect = erpDto.FTransferDirect, // 璋冩嫧鏂瑰悜
+            FOwnerTypeIdHead = erpDto.FOwnerTypeIdHead, // 璋冨嚭璐т富绫诲瀷
+            FOwnerTypeInIdHead = erpDto.FOwnerTypeInIdHead, // 璋冨叆璐т富绫诲瀷
+            FRemarks = erpDto.FRemarks, // 澶囨敞
+            FCreatorId = erpDto.FCreatorId, // 鍒涘缓浜�
+            FCreateDate = !String.IsNullOrEmpty(erpDto.FCreateDate) ? DateTime.ParseExact(erpDto.FCreateDate, "yyyy-MM-dd HH:mm:ss", null) : null, // 鍒涘缓鏃ユ湡
+            FModifierId = erpDto.FModifierId, // 鏈�鍚庝慨鏀逛汉
+            FModifyDate = !String.IsNullOrEmpty(erpDto.FModifyDate) ? DateTime.ParseExact(erpDto.FModifyDate, "yyyy-MM-dd HH:mm:ss", null) : null, // 鏈�鍚庝慨鏀规棩鏈�
+            FApproveDate = !String.IsNullOrEmpty(erpDto.FAPPROVEDATE) ? DateTime.ParseExact(erpDto.FAPPROVEDATE, "yyyy-MM-dd HH:mm:ss", null) : null, // 瀹℃牳鏃ユ湡
+            FCloseStatus = erpDto.FCloseStatus, // 鍏抽棴鐘舵��
+            FCloserId = erpDto.FCloserId, // 鍏抽棴浜�
+            FCloseDate = !String.IsNullOrEmpty(erpDto.FCloseDate) ? DateTime.ParseExact(erpDto.FCloseDate, "yyyy-MM-dd HH:mm:ss", null) : null, // 鍏抽棴鏃ユ湡
+            FUnwBaseBomBb = erpDto.F_UNW_Base_BOMBB, // BOM鐗堟湰
+            FUnwBaseFxwlBm = erpDto.F_UNW_Base_FXWLBM, // 鐖堕」鐗╂枡缂栧彿
+            Source = "ERP",//鍗曟嵁鏉ユ簮
+            FApproveStatus = 1,//瀹℃牳鐘舵��
+        };
+
+        var single = base.GetSingle(it => it.ErpID == Convert.ToDecimal(erpDto.id));
+        if (single != null) mesDbck.Id = single.Id;
+
+        return mesDbck;
+    }
+
+    private List<MesDbckDetail> ConvertErpToTransferRequestDetail(
+        MesDbck TransferRequest,
+        List<ErpTransferRequestDetail> erpDtoList)
+    {
+        var MesDbckDetailList =
+            new List<MesDbckDetail>();
+
+        foreach (var erpDto in erpDtoList)
+        {
+            var mesDbckDetail = new MesDbckDetail
+            {
+                Id = Guid.NewGuid(),
+                Pid = TransferRequest.Id,
+                ErpID = Convert.ToDecimal(erpDto.ID),
+                Eid = Convert.ToDecimal(erpDto.EID), // ID
+                FSeq = Convert.ToInt32(erpDto.FSEQ), // 搴忓彿
+                FMaterialId = erpDto.FMATERIALID, // 鐗╂枡缂栫爜
+                FQty = Convert.ToDecimal(erpDto.FQty), // 鐢宠鏁伴噺
+                FUnitId = erpDto.FUNITID, // 鍗曚綅
+                FBusinessClose = erpDto.FBusinessClose, // 涓氬姟鍏抽棴
+                FLot = erpDto.FLot, // 璋冨嚭鎵瑰彿
+                FProduceDate = !String.IsNullOrEmpty(erpDto.FProduceDate) ? DateTime.ParseExact(erpDto.FProduceDate, "yyyy-MM-dd HH:mm:ss", null) : null, // 鐢熶骇鏃ユ湡
+                FStockOrgId = erpDto.FStockOrgId, // 璋冨嚭缁勭粐
+                FStockId = erpDto.FStockId, // 璋冨嚭浠撳簱
+                FStockOrgInId = erpDto.FStockOrgInId, // 璋冨叆缁勭粐
+                FStockInId = erpDto.FStockInId, // 璋冨叆浠撳簱
+                FMtoNo = erpDto.FMtoNo, // 璁″垝璺熻釜鍙�
+                FOwnerId = erpDto.FOwnerId, // 璋冨嚭璐т富
+                FOwnerInId = erpDto.FOwnerInId, // 璋冨叆璐т富
+                FStockStatusId = erpDto.FStockStatusId, // 璋冨嚭搴撳瓨鐘舵��
+                FStockStatusInId = erpDto.FStockStatusInId, // 璋冨叆搴撳瓨鐘舵��
+                FNote = erpDto.FNote // 澶囨敞
+
+            };
+
+            var single = _TransferRequestDetailManager.GetSingle(it =>
+                it.ErpID == Convert.ToDecimal(mesDbckDetail.ErpID));
+            if (single != null) mesDbckDetail.Id = single.Id;
+
+            MesDbckDetailList.Add(mesDbckDetail);
+        }
+
+        return MesDbckDetailList;
+    }
+
+    #region 鏁欏鏂规硶
+
+    /// <summary>
+    ///     浠撳偍鏂规硶婊¤冻涓嶄簡澶嶆潅涓氬姟闇�姹傦紝涓氬姟浠g爜璇峰湪杩欓噷闈㈠畾涔夋柟娉�
+    /// </summary>
+    public void Study()
+    {
+        /*********鏌ヨ*********/
+
+        var data1 = base.GetById(1); //鏍规嵁ID鏌ヨ
+        var data2 = base.GetList(); //鏌ヨ鎵�鏈�
+        var data3 = base.GetList(it => 1 == 1); //鏍规嵁鏉′欢鏌ヨ  
+        //var data4 = base.GetSingle(it => 1 == 1);//鏍规嵁鏉′欢鏌ヨ涓�鏉�,濡傛灉瓒呰繃涓�鏉′細鎶ラ敊
+
+        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // 鍒嗛〉鏌ヨ
+        var data5 = base.GetPageList(it => 1 == 1, p);
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
+
+        var data6 =
+            base.GetPageList(it => 1 == 1, p,
+                it => SqlFunc.GetRandom()); // 鍒嗛〉鏌ヨ鍔犳帓搴�
+        Console.Write(p.TotalCount); //杩斿洖鎬绘暟
+
+        var conModels = new List<IConditionalModel>(); //缁勮鏉′欢鏌ヨ浣滀负鏉′欢瀹炵幇 鍒嗛〉鏌ヨ鍔犳帓搴�
+        conModels.Add(new ConditionalModel
+        {
+            FieldName = typeof(MesDbck).GetProperties()[0].Name,
+            ConditionalType = ConditionalType.Equal, FieldValue = "1"
+        }); //id=1
+        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
+
+        AsQueryable().Where(x => 1 == 1)
+            .ToList(); //鏀寔浜嗚浆鎹㈡垚queryable,鎴戜滑鍙互鐢╭ueryable瀹炵幇澶嶆潅鍔熻兘
+
+
+        /*********鎻掑叆*********/
+        var insertData = new MesDbck(); //娴嬭瘯鍙傛暟
+        var insertArray = new[] { insertData };
+        base.Insert(insertData); //鎻掑叆
+        base.InsertRange(insertArray); //鎵归噺鎻掑叆
+        var id = base.InsertReturnIdentity(insertData); //鎻掑叆杩斿洖鑷鍒�
+        AsInsertable(insertData).ExecuteCommand(); //鎴戜滑鍙互杞垚 Insertable瀹炵幇澶嶆潅鎻掑叆
+
+
+        /*********鏇存柊*********/
+        var updateData = new MesDbck(); //娴嬭瘯鍙傛暟
+        var updateArray = new[] { updateData }; //娴嬭瘯鍙傛暟
+        base.Update(updateData); //鏍规嵁瀹炰綋鏇存柊
+        base.UpdateRange(updateArray); //鎵归噺鏇存柊
+        //base.Update(it => new     () { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// 鍙洿鏂癈lassName鍒楀拰CreateTime鍒楋紝鍏跺畠鍒椾笉鏇存柊锛屾潯浠秈d=1
+        AsUpdateable(updateData).ExecuteCommand(); //杞垚Updateable鍙互瀹炵幇澶嶆潅鐨勬彃鍏�
+
+
+        /*********鍒犻櫎*********/
+        var deldata = new MesDbck(); //娴嬭瘯鍙傛暟
+        base.Delete(deldata); //鏍规嵁瀹炰綋鍒犻櫎
+        base.DeleteById(1); //鏍规嵁涓婚敭鍒犻櫎
+        base.DeleteById(new[] { 1, 2 }); //鏍规嵁涓婚敭鏁扮粍鍒犻櫎
+        base.Delete(it => 1 == 2); //鏍规嵁鏉′欢鍒犻櫎
+        AsDeleteable().Where(it => 1 == 2)
+            .ExecuteCommand(); //杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣�
+    }
+
+    #endregion
+}
\ No newline at end of file
diff --git a/MESApplication/Controllers/BasicData/MesTransferRequestController.cs b/MESApplication/Controllers/BasicData/TransferRequestController.cs
similarity index 85%
rename from MESApplication/Controllers/BasicData/MesTransferRequestController.cs
rename to MESApplication/Controllers/BasicData/TransferRequestController.cs
index 566c37d..c466314 100644
--- a/MESApplication/Controllers/BasicData/MesTransferRequestController.cs
+++ b/MESApplication/Controllers/BasicData/TransferRequestController.cs
@@ -11,54 +11,54 @@
 
 [ApiController]
 [Route("api/[controller]")]
-public class MesTransferRequestController : ControllerBase
+public class TransferRequestController : ControllerBase
 {
     private readonly MessageCenterManager _manager = new();
-    private readonly MesRohInManager m = new();
+    private readonly TransferRequestManager m = new();
 
     private readonly string METHOD = "POST";
 
-    private readonly string TableName = "MES_ROHIN";
+    private readonly string TableName = "MES_DBCK";
 
-    private readonly string URL = "http://localhost:10054/api/MesRohIn/";
+    private readonly string URL = "http://localhost:10054/api/TransferRequest/";
 
     //
     [HttpPost("Save")]
-    public ResponseResult Save(TransferRequest rohIn)
+    public ResponseResult Save(TransferRequest transfer)
     {
         var entity = new MessageCenter();
         entity.TableName = TableName;
         entity.Url = URL + "Save";
         entity.Method = METHOD;
-        entity.Data = JsonConvert.SerializeObject(rohIn);
+        entity.Data = JsonConvert.SerializeObject(transfer);
         entity.Status = 1;
         entity.CreateBy = "PL017";
-        entity.Route = rohIn.ErpTransferRequest.FBillNo;
+        entity.Route = transfer.ErpTransferRequest.FBillNo;
         try
         {
-            return new ResponseResult
-            {
-                status = 0,
-                message = "鎺ュ彛寮�鍙戜腑",
-                data = ""
-            };
-            //dynamic resultInfos = new ExpandoObject();
-            //var save = m.Save(rohIn);
-
-            //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
+            //    message = "鎺ュ彛寮�鍙戜腑",
+            //    data = ""
             //};
+            dynamic resultInfos = new ExpandoObject();
+            var save = m.Save(transfer);
+
+            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)
         {
@@ -201,7 +201,7 @@
     /// </summary>
     /// <returns></returns>
     [HttpPost("Insert")]
-    public ResponseResult Add([FromBody] MesRohIn data)
+    public ResponseResult Add([FromBody] MesDbck data)
     {
         try
         {
@@ -225,7 +225,7 @@
     /// </summary>
     /// <returns></returns>
     [HttpPost("InsertReturnIdentity")]
-    public ResponseResult InsertReturnIdentity([FromBody] MesRohIn data)
+    public ResponseResult InsertReturnIdentity([FromBody] MesDbck data)
     {
         try
         {
@@ -249,7 +249,7 @@
     /// </summary>
     /// <returns></returns>
     [HttpPost("Update")]
-    public ResponseResult Update([FromBody] MesRohIn data)
+    public ResponseResult Update([FromBody] MesDbck data)
     {
         try
         {

--
Gitblit v1.9.3