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 MesCgthSqController : ControllerBase
|
{
|
private readonly MessageCenterManager _messageCenterManager = new();
|
private readonly MesCgthSqManager _mesCgthSqManager = new();
|
|
private readonly string _method = "POST";
|
private readonly string _tableName = "MES_CGTH_SQ";
|
private readonly string _baseUrl = "http://localhost:10054/api/MesCgthSq/";
|
|
/// <summary>
|
/// 保存采购退货申请单
|
/// </summary>
|
[HttpPost("Save")]
|
public ResponseResult Save(ErpCgth erpCgth)
|
{
|
// 初始化消息中心实体(用于记录接口调用日志)
|
var messageEntity = new MessageCenter
|
{
|
TableName = _tableName,
|
Url = _baseUrl + "Save",
|
Method = _method,
|
Data = JsonConvert.SerializeObject(erpCgth),
|
Status = 1, // 状态:1 - 待处理
|
CreateBy = "SYSTEM", // 创建人标识
|
Route = erpCgth.ErpCgtha.billNo // 路由标识(使用单据编号)
|
};
|
|
try
|
{
|
dynamic resultData = new ExpandoObject();
|
// 调用业务层保存方法(将 ERP 传入的 DTO 转换为实体并保存)
|
var saveSuccess = _mesCgthSqManager.Save(erpCgth);
|
resultData.saveResult = saveSuccess;
|
|
// 更新消息中心状态(保存成功)
|
messageEntity.Result = 1; // 结果:1 - 成功
|
messageEntity.DealWith = 1; // 处理状态:1 - 已处理
|
_messageCenterManager.save(messageEntity);
|
|
return new ResponseResult
|
{
|
status = 0,
|
message = "保存成功",
|
data = resultData
|
};
|
}
|
catch (Exception ex)
|
{
|
// 异常处理:记录错误信息
|
messageEntity.Result = 0; // 结果:0 - 失败
|
messageEntity.DealWith = 0; // 处理状态:0 - 未处理
|
messageEntity.ResultData = ex.Message; // 错误详情
|
_messageCenterManager.save(messageEntity);
|
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
|
/// <summary>
|
/// 批量保存采购退货申请单
|
/// </summary>
|
[HttpPost("SaveList")]
|
public ResponseResult SaveList(List<ErpCgth> erpCgthaList)
|
{
|
var messageEntity = new MessageCenter
|
{
|
TableName = _tableName,
|
Url = _baseUrl + "SaveList",
|
Method = _method,
|
Data = JsonConvert.SerializeObject(erpCgthaList),
|
Status = 1,
|
CreateBy = "SYSTEM"
|
};
|
|
try
|
{
|
dynamic resultData = new ExpandoObject();
|
var saveSuccess = _mesCgthSqManager.SaveList(erpCgthaList);
|
resultData.totalCount = erpCgthaList.Count;
|
resultData.successCount = saveSuccess ? erpCgthaList.Count : 0;
|
|
messageEntity.Result = saveSuccess ? 1 : 0;
|
messageEntity.DealWith = 1;
|
_messageCenterManager.save(messageEntity);
|
|
return new ResponseResult
|
{
|
status = 0,
|
message = $"批量保存完成,共 {erpCgthaList.Count} 条数据",
|
data = resultData
|
};
|
}
|
catch (Exception ex)
|
{
|
messageEntity.Result = 0;
|
messageEntity.DealWith = 0;
|
messageEntity.ResultData = ex.Message;
|
_messageCenterManager.save(messageEntity);
|
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
|
/// <summary>
|
/// 获取采购退货申请单列表
|
/// </summary>
|
[HttpGet("GetList")]
|
public ResponseResult GetList()
|
{
|
try
|
{
|
var cgthList = _mesCgthSqManager.GetList();
|
return new ResponseResult
|
{
|
status = 0,
|
message = "查询成功",
|
data = new { total = cgthList.Count, list = cgthList }
|
};
|
}
|
catch (Exception ex)
|
{
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
|
/// <summary>
|
/// 根据 ID 获取采购退货申请单详情
|
/// </summary>
|
[HttpGet("GetById")]
|
public ResponseResult GetById(string id)
|
{
|
try
|
{
|
var cgthEntity = _mesCgthSqManager.GetById(Guid.Parse(id));
|
return new ResponseResult
|
{
|
status = 0,
|
message = "查询成功",
|
data = cgthEntity
|
};
|
}
|
catch (Exception ex)
|
{
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
|
|
/// <summary>
|
/// 新增采购退货申请单(直接传入实体)
|
/// </summary>
|
[HttpPost("Insert")]
|
public ResponseResult Insert([FromBody] MesCgthSq entity)
|
{
|
try
|
{
|
// 自动生成主键 ID
|
entity.Id = Guid.NewGuid();
|
entity.CreateDate = DateTime.Now;
|
var insertSuccess = _mesCgthSqManager.Insert(entity);
|
|
return new ResponseResult
|
{
|
status = 0,
|
message = insertSuccess ? "新增成功" : "新增失败",
|
data = new { id = entity.Id }
|
};
|
}
|
catch (Exception ex)
|
{
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
|
/// <summary>
|
/// 更新采购退货申请单
|
/// </summary>
|
[HttpPost("Update")]
|
public ResponseResult Update([FromBody] MesCgthSq entity)
|
{
|
try
|
{
|
entity.LastUpdateTime = DateTime.Now;
|
var updateSuccess = _mesCgthSqManager.Update(entity);
|
|
return new ResponseResult
|
{
|
status = 0,
|
message = updateSuccess ? "更新成功" : "更新失败",
|
data = updateSuccess
|
};
|
}
|
catch (Exception ex)
|
{
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
|
}
|