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 MesJjgzScheduleController : IRomteService
|
{
|
private readonly IHttpContextAccessor _http;
|
|
private readonly string _userCode, _userGuid, _orgFids;
|
public MesJjgzScheduleController(IHttpContextAccessor httpContextAccessor)
|
{
|
_http = httpContextAccessor;
|
(_userCode, _userGuid, _orgFids) =
|
GetUserGuidAndOrgGuid(_http);
|
}
|
|
|
/// <summary>
|
/// 读取列表,支持分页
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[RequestMethod(RequestMethods.POST)]
|
public ReturnDto<PageList<dynamic>> GetListPage([FromBody] dynamic model)
|
{
|
int currentPage = model.currentPage;
|
int everyPageSize = model.everyPageSize;
|
string sortName = model.sortName;
|
string keyWhere = model.keyWhere;
|
|
var _pglist = new PageList<dynamic>
|
{
|
total = 0,
|
everyPageSize = 0,
|
pages = 0,
|
list = new List<dynamic>()
|
};
|
try
|
{
|
// 构建分页查询SQL
|
string orderBy = string.IsNullOrEmpty(sortName) ? "CREATE_DATE DESC" : $"{sortName} ASC";
|
|
// 查询总数
|
string countSql = $"SELECT COUNT(1) FROM MES_JJGZ_SCHEDULES WHERE 1=1 {keyWhere}";
|
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, *
|
FROM MES_JJGZ_SCHEDULES
|
WHERE 1=1 {keyWhere}
|
) 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<PageList<dynamic>>.QuickReturn(_pglist,
|
ReturnCode.Exception, ex.Message);
|
}
|
return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
|
ReturnCode.Success, "读取成功");
|
}
|
|
/// <summary>
|
/// 读取
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[RequestMethod(RequestMethods.POST)]
|
public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
|
{
|
string guid = model.guid.ToString();
|
dynamic m = new ExpandoObject();
|
string mainTable = "MES_JJGZ_SCHEDULES";
|
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<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
|
return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
|
}
|
|
/// <summary>
|
/// 提交审核反审核
|
/// </summary>
|
/// <param name="mode"></param>
|
/// <returns></returns>
|
[RequestMethod(RequestMethods.POST)]
|
public ReturnDto<ExpandoObject> 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_JJGZ_SCHEDULES 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<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
|
}
|
return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
|
}
|
|
/// <summary>
|
/// 增加或编辑实体
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[RequestMethod(RequestMethods.POST)]
|
public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
|
{
|
Guid? guid = model.guid; //主键
|
string onWorkTime1 = model.onWorkTime1; // 上午上班时间
|
string offWorkTime1 = model.offWorkTime1; // 上午下班时间
|
string onWorkTime2 = model.onWorkTime2; // 下午上班时间
|
string offWorkTime2 = model.offWorkTime2; // 下午下班时间
|
string onWorkTime3 = model.onWorkTime3; // 加班上班时间
|
string offWorkTime3 = model.offWorkTime3; // 加班下班时间
|
string beginTime = model.beginTime; // 生效日期
|
string endTime = model.endTime; // 失效日期
|
string remark = model.remark; // 备注
|
|
dynamic mObj = new ExpandoObject();
|
mObj.outMsg = "";
|
mObj.outSum = -1;
|
mObj.outGuid = "";
|
mObj.outNo = "";
|
|
using (var conn = new SqlConnection(DbHelperSQL.strConn))
|
{
|
try
|
{
|
conn.Open();
|
|
if (CheckGuid(guid))
|
{
|
// 编辑模式
|
string sql = $@"UPDATE MES_JJGZ_SCHEDULES SET
|
OnWorkTime1='{onWorkTime1}',
|
OffWorkTime1='{offWorkTime1}',
|
OnWorkTime2='{onWorkTime2}',
|
OffWorkTime2='{offWorkTime2}',
|
OnWorkTime3='{onWorkTime3}',
|
OffWorkTime3='{offWorkTime3}',
|
BeginTime='{beginTime}',
|
EndTime='{endTime}',
|
Remark='{remark}'
|
WHERE GUID='{guid}'";
|
|
int rows = DbHelperSQL.ExecuteSql(sql);
|
mObj.outSum = rows;
|
mObj.outGuid = guid.ToString();
|
mObj.outMsg = rows > 0 ? "操作成功!" : "未更新任何数据";
|
}
|
else
|
{
|
// 新增模式 - 生成班次编号和GUID
|
guid = Guid.NewGuid();
|
|
// 调用存储过程生成班次编号
|
using (var cmd = new SqlCommand("getOrderNo", conn))
|
{
|
cmd.CommandType = CommandType.StoredProcedure;
|
cmd.Parameters.Add(new SqlParameter("@wntype", "SC(班次)"));
|
cmd.Parameters.Add(new SqlParameter("@hNo", SqlDbType.NVarChar, 50) { Direction = ParameterDirection.Output });
|
|
cmd.ExecuteNonQuery();
|
string scheNo = cmd.Parameters["@hNo"].Value.ToString();
|
|
// 插入数据
|
string insertSql = $@"
|
DECLARE @userBy NVARCHAR(20);
|
SELECT TOP 1 @userBy=[ACCOUNT] FROM [dbo].[SYS_USER] WHERE guid='{_userGuid}';
|
INSERT INTO MES_JJGZ_SCHEDULES (
|
GUID, CREATE_BY, CREATE_DATE, ScheNo,
|
OnWorkTime1, OffWorkTime1, OnWorkTime2, OffWorkTime2,
|
OnWorkTime3, OffWorkTime3, BeginTime, EndTime, Remark, CHECK_STATUS
|
) VALUES (
|
'{guid}', @userBy, GETDATE(), '{scheNo}',
|
'{onWorkTime1}', '{offWorkTime1}', '{onWorkTime2}', '{offWorkTime2}',
|
'{onWorkTime3}', '{offWorkTime3}', '{beginTime}', '{endTime}', '{remark}', 0
|
)";
|
|
int rows = DbHelperSQL.ExecuteSql(insertSql);
|
mObj.outSum = rows;
|
mObj.outGuid = guid.ToString();
|
mObj.outNo = scheNo;
|
mObj.outMsg = rows > 0 ? "操作成功!" : "未插入任何数据";
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Debug(ToString(), "EditModel error:" + ex.Message);
|
mObj.outMsg = ex.Message;
|
mObj.outSum = -1;
|
}
|
finally
|
{
|
conn.Close();
|
}
|
}
|
|
if (mObj.outSum <= 0)
|
return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
|
return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
|
}
|
|
/// <summary>
|
/// 删除主表或明细
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[RequestMethod(RequestMethods.POST)]
|
public ReturnDto<int?> 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_JJGZ_SCHEDULES 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<int>.QuickReturn(rtnInt, ReturnCode.Exception, _outMsg);
|
return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
|
}
|
}
|