cdk
2025-09-02 4e045ea0364774a6ac20a18491653ff0c9d77ea4
增加工厂日期接口代码
已添加4个文件
435 ■■■■■ 文件已修改
MES.Service/Dto/webApi/ErpFactoryDate.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesFactoryDate.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/BasicData/MesFactoryDateManager.cs 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/BasicData/MesFactoryDateController.cs 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/webApi/ErpFactoryDate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
namespace MES.Service.Dto.webApi;
/// <summary>
/// ERP工厂日期传输对象
/// </summary>
public class ErpFactoryDate
{
    /// <summary>操作类型</summary>
    public string? Type { get; set; }
    /// <summary>单据状态</summary>
    public string? FDocumentStatus { get; set; }
    /// <summary>禁用状态</summary>
    public string? FForbidStatus { get; set; }
    /// <summary>ERP主键</summary>
    public string? ErpId { get; set; }
    /// <summary>序号</summary>
    public string? FSeq { get; set; }
    /// <summary>使用组织</summary>
    public string? FUseOrgId { get; set; }
    /// <summary>日期</summary>
    public string? FDay { get; set; }
    /// <summary>日期类型</summary>
    public string? FDateStyle { get; set; }
    /// <summary>是否生产</summary>
    public string? FIsWorkTime { get; set; }
    /// <summary>日期内码</summary>
    public string? FInterId { get; set; }
}
MES.Service/Modes/MesFactoryDate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
/// MES工厂日期实体
/// </summary>
[SugarTable("MES_FactoryDate")]
public class MesFactoryDate
{
    /// <summary>
    ///     é»˜è®¤å€¼: (newid())
    /// </summary>
    [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
    public Guid Guid { get; set; }
    /// <summary>单据状态</summary>
    [SugarColumn(ColumnName = "FDocumentStatus")]
    public string? FDocumentStatus { get; set; }
    /// <summary>是否禁用</summary>
    [SugarColumn(ColumnName = "FForbidStatus")]
    public string? FForbidStatus { get; set; }
    /// <summary>ERP主键</summary>
    [SugarColumn(ColumnName = "ErpId")]
    public string? ErpId { get; set; }
    /// <summary>序号</summary>
    [SugarColumn(ColumnName = "Seq")]
    public string? Seq { get; set; }
    /// <summary>组织机构Id</summary>
    [SugarColumn(ColumnName = "OrgId")]
    public string? OrgId { get; set; }
    /// <summary>日期</summary>
    [SugarColumn(ColumnName = "FactoryDate")]
    public string? FactoryDate { get; set; }
    /// <summary>日期类型</summary>
    [SugarColumn(ColumnName = "DateType")]
    public string? DateType { get; set; }
    /// <summary>是否生产</summary>
    [SugarColumn(ColumnName = "IsWork")]
    public string? IsWork { get; set; }
    /// <summary>日期内码</summary>
    [SugarColumn(ColumnName = "InterId")]
    public string? InterId { get; set; }
    [SugarColumn(IsIgnore = true)] public string? Type { get; set; }
}
MES.Service/service/BasicData/MesFactoryDateManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
using System.ComponentModel.DataAnnotations;
namespace MES.Service.service.BasicData;
public class MesFactoryDateManager : Repository<MesFactoryDate>
{
    public bool Save(ErpFactoryDate factoryDate)
    {
        var entity = ConvertToEntity(factoryDate);
        return UseTransaction(db =>
        {
            switch (factoryDate.Type)
            {
                case "3":
                    // åˆ é™¤
                    return DeleteFactoryDate(db, entity.ErpId) ? 1 : 0;
                case "2":
                case "4":
                    // æ–°å¢žæˆ–同步
                    return InsertOrUpdate(db, entity) ? 1 : 0;
                default:
                    throw new ArgumentNullException($"type没有{factoryDate.Type}这个类型的参数");
            }
        }) > 0;
    }
    public bool SaveList(List<ErpFactoryDate> factoryDates)
    {
        var list = factoryDates.Select(ConvertToEntity).ToList();
        var groupBy = list.GroupBy(s => s.Type)
            .ToDictionary(g => g.Key, g => g.ToList());
        return UseTransaction(db =>
        {
            foreach (var group in groupBy)
            {
                switch (group.Key)
                {
                    case "3":
                        if (!DeleteFactoryDateBatch(db, group.Value))
                            throw new NotImplementedException("删除失败");
                        break;
                    case "2":
                    case "4":
                        if (!InsertOrUpdateBatch(db, group.Value))
                            throw new NotImplementedException("同步失败");
                        break;
                    default:
                        throw new ArgumentNullException($"type没有{group.Key}这个类型的参数");
                }
            }
            return 1;
        }) > 0;
    }
    private MesFactoryDate ConvertToEntity(ErpFactoryDate dto)
    {
        string DateType = "";
        switch (dto.FDateStyle)
        {
            case "1":
                DateType = "工作日";
                break;
            case "2":
                DateType = "休息日";
                break;
            case "3":
                DateType = "法定节假日";
                break;
            case "4":
                DateType = "空";
                break;
        }
        return new MesFactoryDate
        {
            Guid = Guid.NewGuid(),
            Type = dto.Type,
            FDocumentStatus = dto.FDocumentStatus,
            FForbidStatus = dto.FForbidStatus,
            ErpId = dto.ErpId,
            Seq = dto.FSeq,
            OrgId = dto.FUseOrgId,
            FactoryDate = dto.FDay,
            DateType = DateType,
            IsWork = dto.FIsWorkTime,
            InterId = dto.FInterId
        };
    }
    private bool DeleteFactoryDate(SqlSugarScope db, string? erpId)
    {
        var result = db.Deleteable<MesFactoryDate>()
            .Where(s => s.ErpId == erpId).ExecuteCommand();
        if (result > 0)
            return true;
        throw new NotImplementedException("删除失败");
    }
    private bool DeleteFactoryDateBatch(SqlSugarScope db, List<MesFactoryDate> list)
    {
        var erpIds = list.Select(it => it.ErpId).ToArray();
        var result = db.Deleteable<MesFactoryDate>()
            .Where(s => erpIds.Contains(s.ErpId)).ExecuteCommand();
        if (result > 0)
            return true;
        throw new NotImplementedException("删除失败");
    }
    private bool InsertOrUpdate(SqlSugarScope db, MesFactoryDate entity)
    {
        db.Deleteable<MesFactoryDate>().Where(s => s.ErpId == entity.ErpId)
            .ExecuteCommand();
        var insert = db.Insertable(entity).ExecuteCommand();
        return insert > 0;
    }
    private bool InsertOrUpdateBatch(SqlSugarScope db, List<MesFactoryDate> list)
    {
        return list.All(entity => InsertOrUpdate(db, entity));
    }
}
MESApplication/Controllers/BasicData/MesFactoryDateController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,223 @@
using System.Dynamic;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using MES.Service.service;
using MES.Service.service.BasicData;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace MESApplication.Controllers.BasicData;
[ApiController]
[Route("api/[controller]")]
public class MesFactoryDateController : ControllerBase
{
    private readonly MessageCenterManager _manager = new();
    private readonly MesFactoryDateManager m = new();
    private readonly string METHOD = "POST";
    private readonly string TableName = "MES_FACTORYDATE";
    private readonly string URL = "http://localhost:10054/api/MesFactoryDate/";
    [HttpPost("Save")]
    public ResponseResult Save(ErpFactoryDate unit)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "Save";
        entity.Method = METHOD;
        entity.Data = JsonConvert.SerializeObject(unit);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        entity.Route = unit.ErpId;
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.Save(unit);
            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<ErpFactoryDate> 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);
        }
    }
    [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);
        }
    }
    [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);
        }
    }
    [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);
        }
    }
    [HttpPost("Insert")]
    public ResponseResult Add([FromBody] MesFactoryDate 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);
        }
    }
    [HttpPost("InsertReturnIdentity")]
    public ResponseResult InsertReturnIdentity([FromBody] MesFactoryDate 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);
        }
    }
    [HttpPost("Update")]
    public ResponseResult Update([FromBody] MesFactoryDate 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);
        }
    }
}