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 Newtonsoft.Json.Linq; using System.Data; using System.Data.SqlClient; using System.Dynamic; using System.Text; using static Gs.Toolbox.UtilityHelper; namespace Gs.JJGZ; [ApiGroup(ApiGroupNames.JJGZ)] public class MesAttanConController : IRomteService { private readonly IHttpContextAccessor _http; private readonly string _userCode, _userGuid, _orgFids; public MesAttanConController(IHttpContextAccessor httpContextAccessor) { _http = httpContextAccessor; (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http); } /// /// 读取列表,支持分页 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto GetListPage([FromBody] dynamic model) { string lineNo = model.lineNo.ToString(); string date = model.date.ToString(); string orgId = model.orgId.ToString(); var dset = new DataSet(); dynamic m = new ExpandoObject(); m.list = new List(); m.list1 = new List(); m.list2 = new List(); m.list3 = new List(); try { var parameters = new[] { new SqlParameter("@inLineNo", lineNo), new SqlParameter("@inDate", date), new SqlParameter("@inOrgId", orgId) }; var dsMain = DbHelperSQL.Query("EXEC prc_AttanCon_lst @inLineNo, @inDate, @inOrgId", parameters); if (dsMain != null && dsMain.Tables.Count > 0) { var _tb = dsMain.Tables[0].TableToDynamicList(); m.list = _tb; var _tb1 = dsMain.Tables[1].TableToDynamicList(); m.list1 = _tb1; var _tb2 = dsMain.Tables[2].TableToDynamicList(); m.list2 = _tb2; var _tb3 = dsMain.Tables[3].TableToDynamicList(); m.list3 = _tb3; } } catch (Exception ex) { LogHelper.Debug(ToString(), ex.Message); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); } /// /// 修改 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto EditModel([FromBody] dynamic model) { string lineNo = model.lineNo; //主键 string date = model.date; //主键 string orgId = model.orgId; //主键 var _sb = new StringBuilder(); var _split = "|"; foreach (var m in model.list) { var _line = m.GUID + _split + m.Hour + _split + m.Reason; if (_sb.Length > 0) _sb.Append("~"); _sb.Append(_line); } dynamic mObj = new ExpandoObject(); mObj.outMsg = ""; mObj.outSum = -1; mObj.outGuid = ""; mObj.outNo = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[prc_AttanCon_edt]", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@outMsg", SqlDbType.NVarChar, 300), new("@outSum", SqlDbType.Int), new("@outNo", SqlDbType.NVarChar, 300), new("@inLineNo", lineNo), new("@inDate", date), new("@inOrgId", orgId), new("@inEdtUserGuid", _userGuid), new("@inLineList", _sb.ToString()) }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Direction = ParameterDirection.Output; parameters[2].Direction = ParameterDirection.Output; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); mObj.outMsg = parameters[0].Value.ToString(); mObj.outSum = int.Parse(parameters[1].Value.ToString()); mObj.outNo = parameters[2].Value.ToString(); } catch (Exception ex) { LogHelper.Debug(ToString(), "prc_ERRORJS_edt error:" + ex.Message); mObj.outMsg = ex.Message; mObj.outSum = -1; } finally { conn.Close(); } } } 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 CountModel([FromBody] dynamic model) { string lineNo = model.lineNo.ToString(); string date = model.date.ToString(); string orgId = model.orgId.ToString(); dynamic mObj = new ExpandoObject(); mObj.outSum = -1; mObj.outMsg = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[prc_AttanCon_count]", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; var parameters = new[] { new SqlParameter("@inLineNo", lineNo), new SqlParameter("@inDate", date), new SqlParameter("@inOrgId", orgId), new SqlParameter("@inEdtUserGuid", _userGuid) }; mObj.outSum = 1; mObj.outMsg = "计算工资"; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); } catch (Exception ex) { LogHelper.Debug(ToString(), "prc_AttanCon_count error:" + ex.Message); mObj.outMsg = ex.Message; mObj.outSum = -1; } finally { conn.Close(); } } } 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 EditModelSubmit([FromBody] dynamic mode) { string lineNo = mode.lineNo; string attenDate = mode.attenDate; string _guid = mode.guid; string _inFieldValue = mode.inFieldValue; dynamic m = new ExpandoObject(); m.outSum = -1; m.outMsg = ""; try { // 假设提交就是更新某个字段 string sql = $"UPDATE MES_JJGZ_KQHZ SET check_status='{_inFieldValue}',check_date = getdate(), check_user='{_userGuid}' WHERE Line_No='{lineNo}' and attenDate = '{attenDate}'"; 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 GetTimeType([FromBody] dynamic model) { dynamic m = new ExpandoObject(); string mainTable = "MES_JJGZ_TIMETYPE"; try { string sqlMain = $"SELECT HourlyType 计时类型,HourlySalary 计时单价 FROM MES_JJGZ_JSSALARY WHERE CHECK_STATUS = 1"; var dsMain = DbHelperSQL.Query(sqlMain); if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0) { var _tb = dsMain.Tables[0].TableToDynamicList(); m.list = _tb; } } 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 GetWORKSHOPLINE([FromBody] dynamic model) { dynamic m = new ExpandoObject(); try { string sqlMain = $"select line_no 产线,name 产线名称 from MES_WORKSHOP_LINE WHERE line_no IN (SELECT Line_No FROM Mes_DepartmentToLine )"; var dsMain = DbHelperSQL.Query(sqlMain); if (dsMain != null && dsMain.Tables.Count > 0 && dsMain.Tables[0].Rows.Count > 0) { var _tb = dsMain.Tables[0].TableToDynamicList(); m.list = _tb; } } catch (Exception ex) { LogHelper.Debug(ToString(), ex.Message); } if (m != null) return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } }