using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox.ApiCore.Group;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.JJGZ;
[ApiGroup(ApiGroupNames.JJGZ)]
public class MesDeToLineController : IRomteService
{
private readonly IHttpContextAccessor _http;
private readonly string _userCode, _userGuid, _orgFids;
public MesDeToLineController(IHttpContextAccessor httpContextAccessor)
{
_http = httpContextAccessor;
(_userCode, _userGuid, _orgFids) =
GetUserGuidAndOrgGuid(_http);
}
///
/// 读取列表,支持分页
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto> GetListPage([FromBody] dynamic model)
{
int currentPage = model.currentPage;
int everyPageSize = model.everyPageSize;
string sortName = model.sortName;
string keyWhere = model.keyWhere;
var _pglist = new PageList
{
total = 0,
everyPageSize = 0,
pages = 0,
list = new List()
};
try
{
// 构建分页查询SQL
string whereClause = string.IsNullOrEmpty(keyWhere) ? "" : keyWhere;
string orderBy = string.IsNullOrEmpty(sortName) ? "CREATE_DATE DESC" : $"{sortName} ASC";
// 查询总数
string countSql = $"SELECT COUNT(1) FROM Mes_DepartmentToLine a WHERE 1=1 {whereClause}";
var countResult = DbHelperSQL.GetSingle(countSql);
int intTotal = countResult != null ? Convert.ToInt32(countResult) : 0;
if (intTotal > 0)
{
// 分页查询数据
int offset = (currentPage - 1) * everyPageSize;
string dataSql = $@"
SELECT * FROM (
SELECT ROW_NUMBER() OVER (ORDER BY {orderBy}) AS RowNum, A.*, b.Name as OrgName
FROM Mes_DepartmentToLine A
LEFT JOIN SYS_ORGANIZATION B ON A.OrgId = B.FID
WHERE 1=1 {whereClause}
) AS T
WHERE T.RowNum BETWEEN {offset + 1} AND {offset + everyPageSize}";
var dsMain = DbHelperSQL.Query(dataSql);
if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
{
var pages = intTotal % everyPageSize != 0
? intTotal / everyPageSize + 1
: intTotal / everyPageSize;
_pglist.total = intTotal;
_pglist.everyPageSize = everyPageSize;
_pglist.pages = pages;
var _dy = dsMain.Tables[0].TableToDynamicList();
_pglist.list = _dy;
}
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), ex.Message);
return ReturnDto>.QuickReturn(_pglist,
ReturnCode.Exception, ex.Message);
}
return ReturnDto>.QuickReturn(_pglist,
ReturnCode.Success, "读取成功");
}
///
/// 读取
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto GetModel([FromBody] dynamic model)
{
string guid = model.guid.ToString();
dynamic m = new ExpandoObject();
string mainTable = "Mes_DepartmentToLine";
try
{
string sqlMain = $"SELECT * FROM {mainTable} WHERE GUID='{guid}'";
var dsMain = DbHelperSQL.Query(sqlMain);
if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0)
{
var dr = dsMain.Tables[0].Rows[0];
m = dr.RowToDynamic();
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), ex.Message);
}
if (m != null)
return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!");
return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!");
}
///
/// 提交审核反审核
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto EditModelSubmit([FromBody] dynamic mode)
{
string _guid = mode.guid;
string _inFieldValue = mode.inFieldValue;
dynamic m = new ExpandoObject();
m.outSum = -1;
m.outMsg = "";
try
{
string sql = $"UPDATE Mes_DepartmentToLine SET CHECK_STATUS='{_inFieldValue}',CHECK_DATE = getdate(), CHECK_USER='{_userGuid}' WHERE GUID='{_guid}'";
int rows = DbHelperSQL.ExecuteSql(sql);
m.outSum = rows;
m.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), "EditModelSubmit error:" + ex.Message);
m.outMsg = ex.Message;
m.outSum = -1;
return ReturnDto.QuickReturn(m, ReturnCode.Default, ex.Message);
}
return ReturnDto.QuickReturn(m, ReturnCode.Success, "操作成功!");
}
///
/// 增加或编辑实体
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto EditModel([FromBody] dynamic model)
{
Guid? guid = model.guid; //主键
string departmentId = model.departmentId;
string departmentName = model.departmentName;
string lineNo = model.lineNo;
string lineName = model.lineName;
string orgId = model.orgId;
dynamic mObj = new ExpandoObject();
mObj.outMsg = "";
mObj.outSum = -1;
mObj.outGuid = "";
mObj.outNo = "";
try
{
string sql;
if (CheckGuid(guid))
{
sql = $"UPDATE Mes_DepartmentToLine SET DepartmentId='{departmentId}', DepartmentName='{departmentName}', Line_No='{lineNo}', Line_Name='{lineName}',OrgId = '{orgId}' WHERE GUID='{guid}'";
}
else
{
guid = Guid.NewGuid();
sql = $" declare @userBy nvarchar(20); select top 1 @userBy=[ACCOUNT] from [dbo].[SYS_USER] where guid='{_userGuid}' " +
$"INSERT INTO Mes_DepartmentToLine (GUID, CREATE_BY, CREATE_DATE, DepartmentId, DepartmentName, Line_No, Line_Name,OrgId, CHECK_STATUS) VALUES ('{guid}',@userBy,GETDATE(), '{departmentId}', '{departmentName}', '{lineNo}', '{lineName}','{orgId}', 0)";
}
int rows = DbHelperSQL.ExecuteSql(sql);
mObj.outSum = rows;
mObj.outGuid = guid.ToString();
mObj.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), "EditModel error:" + ex.Message);
mObj.outMsg = ex.Message;
mObj.outSum = -1;
}
if (mObj.outSum <= 0)
return ReturnDto.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
return ReturnDto.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
}
///
/// 删除主表或明细
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto DeleteModel([FromBody] dynamic model)
{
int? rtnInt = (int)ReturnCode.Default;
Guid? guid = model.guid;
var _outMsg = "";
var _outSum = -1;
try
{
if (CheckGuid(guid))
{
string sql = $"DELETE FROM Mes_DepartmentToLine WHERE GUID='{guid}'";
_outSum = DbHelperSQL.ExecuteSql(sql);
_outMsg = _outSum > 0 ? "删除成功!" : "未删除任何数据";
}
else
{
_outMsg = "主键不能为空!";
_outSum = -1;
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
_outMsg = ex.Message;
_outSum = -1;
}
if (_outSum <= 0)
return ReturnDto.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
return ReturnDto.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
}
///
/// 获取部门下拉列表数据
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto GetDepartmentList([FromBody] dynamic model)
{
dynamic m = new ExpandoObject();
try
{
string sql = "SELECT id AS 部门Id, name AS 部门名称 FROM OA_Department";
var ds = DbHelperSQL.Query(sql);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
var list = ds.Tables[0].TableToDynamicList();
m.list = list;
}
else
{
m.list = new List();
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), ex.Message);
m.list = new List();
}
return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!");
}
///
/// 获取产线下拉列表数据
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto GetLineList([FromBody] dynamic model)
{
dynamic m = new ExpandoObject();
try
{
string sql = "SELECT line_no AS 产线编号, name AS 产线名称 FROM MES_WORKSHOP_LINE";
var ds = DbHelperSQL.Query(sql);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
var list = ds.Tables[0].TableToDynamicList();
m.list = list;
}
else
{
m.list = new List();
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), ex.Message);
m.list = new List();
}
return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!");
}
}