南骏 池
2025-02-25 b4f37860c45b15825128912f1a117a8e90f9dc42
1.调拨申请单接口已完成
已添加4个文件
已重命名1个文件
724 ■■■■■ 文件已修改
MES.Service/Modes/MesDbck.cs 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesDbckDetail.cs 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/BasicData/TransferRequestDetailManager.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/BasicData/TransferRequestManager.cs 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/BasicData/TransferRequestController.cs 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesDbck.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,172 @@
using 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>
    ///     åšå•源头(ERP/MES)
    /// </summary>
    [SugarColumn(ColumnName = "Source")]
    public string? Source { get; set; }
    /// <summary>
    ///     ERP主键
    /// </summary>
    [SugarColumn(ColumnName = "ERPID")]
    public decimal? ErpID { get; set; }
}
MES.Service/Modes/MesDbckDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,136 @@
using 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>
    ///     å‡ºåº“状态ID
    /// </summary>
    [SugarColumn(ColumnName = "FStockStatusId")]
    public string? FStockStatusId { get; set; }
    /// <summary>
    ///     å…¥åº“状态ID
    /// </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; }
}
MES.Service/service/BasicData/TransferRequestDetailManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
using MES.Service.DB;
using MES.Service.Modes;
using SqlSugar;
namespace MES.Service.service.BasicData;
public class TransferRequestDetailManager : Repository<MesDbckDetail>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 MesDbckDetailManager.cs
    #region æ•™å­¦æ–¹æ³•
    /// <summary>
    ///     ä»“储方法满足不了复杂业务需求,业务代码请在这里面定义方法
    /// </summary>
    public void Study()
    {
        /*********查询*********/
        var data1 = base.GetById(1); //根据ID查询
        var data2 = base.GetList(); //查询所有
        var data3 = base.GetList(it => 1 == 1); //根据条件查询
        //var data4 = base.GetSingle(it => 1 == 1);//根据条件查询一条,如果超过一条会报错
        var p = new PageModel { PageIndex = 1, PageSize = 2 }; // åˆ†é¡µæŸ¥è¯¢
        var data5 = base.GetPageList(it => 1 == 1, p);
        Console.Write(p.TotalCount); //返回总数
        var data6 =
            base.GetPageList(it => 1 == 1, p,
                it => SqlFunc.GetRandom()); // åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount); //返回总数
        var conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel
        {
            FieldName = typeof(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,我们可以用queryable实现复杂功能
        /*********插入*********/
        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);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=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
}
MES.Service/service/BasicData/TransferRequestManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,280 @@
using 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;
        // æ—¶é—´æ ¼å¼è½¬æ¢å‡½æ•°ï¼ŒERP时间格式为 "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; // å¦‚果转换失败,返回null
        }
        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>
    ///     ä»“储方法满足不了复杂业务需求,业务代码请在这里面定义方法
    /// </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,我们可以用queryable实现复杂功能
        /*********插入*********/
        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);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=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
}
MESApplication/Controllers/BasicData/TransferRequestController.cs
ÎļþÃû´Ó MESApplication/Controllers/BasicData/MesTransferRequestController.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
        {