1、题库导入答案修改

2、短信参数修改
3、审批优化 驳回 回调接口 查询优化()
This commit is contained in:
wyw 2025-10-27 14:53:26 +08:00
parent 757dffa807
commit d2579aee15
3 changed files with 31 additions and 228 deletions

View File

@ -650,34 +650,32 @@
{ {
return SafeExecute(() => return SafeExecute(() =>
{ {
T_PF_APPROVE result = null; //T_PF_APPROVE result = null;
if (!string.IsNullOrEmpty(filter.Parameter22) && filter.OrgId.HasValue && filter.Parameter22 != filter.OrgId.Value.ToString()) //if (!string.IsNullOrEmpty(filter.Parameter22) && filter.OrgId.HasValue && filter.Parameter22 != filter.OrgId.Value.ToString())
{ //{
//集团人员 通过 首页点击 获取对应的数据库链接 返回结果 // //集团人员 通过 首页点击 获取对应的数据库链接 返回结果
// ////后端直接处理
// //string tenant = OPTenantDBConnService.GetTenantByORGID(new Guid(filter.Parameter1));
// //filter.IgnoreOrgRule = true;
// //filter.OrgId = null;
// //filter.IsSpecifyDb = true;
// //filter.SpecifyTenant = tenant;
// //filter.IgnoreDataRule = true;
// //result = GetEntity<T_PF_APPROVE>(e => !e.IS_DELETED, filter, null);
// //前端处理了Tenant
// filter.IgnoreOrgRule = true;
// filter.OrgId = null;
//}
////后端直接处理 T_PF_APPROVE result = GetEntity<T_PF_APPROVE>(null, filter, null);
//string tenant = OPTenantDBConnService.GetTenantByORGID(new Guid(filter.Parameter1));
//filter.IgnoreOrgRule = true;
//filter.OrgId = null;
//filter.IsSpecifyDb = true;
//filter.SpecifyTenant = tenant;
//filter.IgnoreDataRule = true;
//result = GetEntity<T_PF_APPROVE>(e => !e.IS_DELETED, filter, null);
//前端处理了Tenant
filter.IgnoreOrgRule = true;
filter.OrgId = null;
}
result = GetEntity<T_PF_APPROVE>(null, filter, null);
if (result != null) if (result != null)
{ {
if (result.APPROVE_TEMP_ID != null) if (result.APPROVE_TEMP_ID != null && string.IsNullOrEmpty(result.REJECT_INTERFACE))
{ {
filter.Include = new List<string>(); filter.Include = new List<string>();
filter.FilterGroup = new FilterGroup(); filter.FilterGroup = new FilterGroup();
var approveTemp = this.GetEntity<T_PF_APPROVE_TEMP>(t => t.ID == result.APPROVE_TEMP_ID, filter); var approveTemp = this.GetEntity<T_PF_APPROVE_TEMP>(t => t.ID == result.APPROVE_TEMP_ID, filter);
if (approveTemp != null) if (approveTemp != null && !string.IsNullOrEmpty(approveTemp.REJECT_INTERFACE))
result.REJECT_INTERFACE = approveTemp.REJECT_INTERFACE; result.REJECT_INTERFACE = approveTemp.REJECT_INTERFACE;
} }
result.Nav_ApproveDetails = result.Nav_ApproveDetails.OrderBy(t => t.NUM).ThenBy(m => m.MODIFY_TIME).ToList(); result.Nav_ApproveDetails = result.Nav_ApproveDetails.OrderBy(t => t.NUM).ThenBy(m => m.MODIFY_TIME).ToList();

View File

@ -274,201 +274,6 @@ namespace APT.SC.WebApi.Controllers.Api.BI
}); });
} }
/// <summary>
/// 定期短信发送
/// </summary>
/// <param name="pageFilter">定期短信发送</param>
/// <returns></returns>
[HttpPost, Route("regularSendSMS")]
public JsonActionResult<bool> regularSendSMS([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
DateTime now = DateTime.Now;
var allUsers = GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.GetOrgId()));
var approveUsers = GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && t.Nav_Department.DEPARTMENT_TYPE != 2, new BaseFilter(filter.GetOrgId()));//FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3
var userIds = approveUsers.Select(t => t.ID);
List<T_FM_NOTIFICATION_TASK> sendSMSs = null;
List<Guid> listTaskIDDone = new List<Guid>();
TencentSendSMS tencentSendSMS = new TencentSendSMS();
if (now.Hour >= 7 && now.Hour < 23)//早上 7点到晚上23点做提醒 其余时间不提醒
{
sendSMSs = GetEntities<T_FM_NOTIFICATION_TASK>(t => t.NOTICE_STATUS == 0 && !t.ISCANCEL && !t.IS_DELETED && t.CREATE_TIME > now.AddDays(-6) && !t.SOURCE_FORMCODE.Contains("FO005") && t.SENDTIME == DateTime.MinValue, new BaseFilter(filter.GetOrgId())).ToList();
var sendSMSs2 = sendSMSs.Where(t => t.TASK_ENDDT < now.AddHours(1) && t.TASK_ENDDT > t.TASK_STARTDT);//临超期待办提醒所有人
foreach (var send in sendSMSs2)
{
List<string> phoneNumbers = new List<string>();
List<string> templates = new List<string>();
var user = allUsers.FirstOrDefault(t => t.ID == send.USER_ID);
if (user != null && user.PHONE != null && !string.IsNullOrEmpty(user.PHONE))
{
listTaskIDDone.Add(send.ID);
send.SENDTIME = DateTime.Now;
phoneNumbers.Add(user.PHONE);
templates.Add(send.NOTICE_TITLE);
templates.Add(send.TASK_ENDDT.ToString());
var result = tencentSendSMS.sendSMS("1747259", phoneNumbers.ToArray(), templates.ToArray());
if (result.SendStatusSet[0].Code.Equals("Ok"))
{
UnifiedCommit(() =>
{
UpdateEntityNoCommit(send);
});
}
}
}
//&& t.NOTICE_TITLE.Contains("审批")
var sendSMSs1 = sendSMSs.Where(t => userIds.Contains(t.USER_ID) && t.CREATE_TIME > now.AddHours(-8));//8小时前创建的 非班组级成员 未办都做提醒
foreach (var send in sendSMSs1)
{
if (listTaskIDDone.Contains(send.ID))//避免同事发送2条短信
{
continue;
}
List<string> phoneNumbers = new List<string>();
List<string> templates = new List<string>();
var user = approveUsers.FirstOrDefault(t => t.ID == send.USER_ID);
if (user != null && user.PHONE != null && !string.IsNullOrEmpty(user.PHONE))
{
send.SENDTIME = DateTime.Now;
phoneNumbers.Add(user.PHONE);
templates.Add(send.NOTICE_TITLE);
templates.Add(send.TASK_ENDDT.ToString());
//TencentSendSMS tencentSendSMS = new TencentSendSMS();
var result = tencentSendSMS.sendSMS("1747261", phoneNumbers.ToArray(), templates.ToArray());
if (result.SendStatusSet[0].Code.Equals("Ok"))
{
UnifiedCommit(() =>
{
UpdateEntityNoCommit(send);
});
}
}
}
}
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 定期短信发送
/// </summary>
/// <param name="pageFilter">定期短信发送</param>
/// <returns></returns>
[HttpPost, Route("regularSendSMSDCJD")]
public JsonActionResult<bool> regularSendSMSDCJD([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
DateTime now = DateTime.Now;
BaseFilter userfilter = new BaseFilter(filter.GetOrgId());
userfilter.SelectField = new string[] { "PHONE" };
var allUsers = GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, userfilter);
var approveUsers = GetEntities<T_FM_USER>(t => t.Nav_Department.DEPARTMENT_TYPE != 2 && t.ENABLE_STATUS == 0, new BaseFilter(filter.GetOrgId()));
var userIds = approveUsers.Select(t => t.ID);
List<T_FM_NOTIFICATION_TASK> sendSMSs = null;
if (now.Hour >= 7 && now.Hour < 23)
{
sendSMSs = GetEntities<T_FM_NOTIFICATION_TASK>(t => t.NOTICE_STATUS == 0 && t.CREATE_TIME > now.AddDays(-6) && !t.SOURCE_FORMCODE.Contains("FO005") && t.SENDTIME == DateTime.MinValue, new BaseFilter(filter.GetOrgId())).ToList();
var sendSMSs2 = sendSMSs.Where(t => t.TASK_ENDDT < now.AddHours(1) && t.TASK_ENDDT > t.TASK_STARTDT);
foreach (var send in sendSMSs2)
{
List<string> phoneNumbers = new List<string>();
List<string> templates = new List<string>();
var user = allUsers.FirstOrDefault(t => t.ID == send.USER_ID);
if (user != null && user.PHONE != null && !string.IsNullOrEmpty(user.PHONE))
{
send.SENDTIME = DateTime.Now;
phoneNumbers.Add(user.PHONE);
string paddedStr = send.NOTICE_TITLE.Length < 18 ? send.NOTICE_TITLE.PadRight(18) : send.NOTICE_TITLE.Substring(0, 18);
var length = paddedStr.Length;
templates.Add(paddedStr.Substring(0, 6));
templates.Add(paddedStr.Substring(6, 6));
templates.Add(paddedStr.Substring(12, 5));
templates[1] = templates[1].Trim();
templates[2] = templates[2].Trim();
templates.Add(send.TASK_ENDDT.Year.ToString());
templates.Add(send.TASK_ENDDT.Month.ToString("00"));
templates.Add(send.TASK_ENDDT.Day.ToString("00"));
templates.Add(send.TASK_ENDDT.Hour.ToString("00"));
templates.Add(send.TASK_ENDDT.Minute.ToString("00"));
templates.Add(send.TASK_ENDDT.Second.ToString("00"));
TencentSendSMS tencentSendSMS = new TencentSendSMS();
var result = tencentSendSMS.sendSMSDCJD("2163511", phoneNumbers.ToArray(), templates.ToArray());
if (result.SendStatusSet[0].Code.Equals("Ok"))
{
UnifiedCommit(() =>
{
UpdateEntityNoCommit(send);
});
}
}
}
//&& t.NOTICE_TITLE.Contains("审批")
var sendSMSs1 = sendSMSs.Where(t => userIds.Contains(t.USER_ID) && t.CREATE_TIME > now.AddHours(-8));
foreach (var send in sendSMSs1)
{
List<string> phoneNumbers = new List<string>();
List<string> templates = new List<string>();
var user = approveUsers.FirstOrDefault(t => t.ID == send.USER_ID);
if (user != null && user.PHONE != null && !string.IsNullOrEmpty(user.PHONE))
{
send.SENDTIME = DateTime.Now;
phoneNumbers.Add(user.PHONE);
string paddedStr = send.NOTICE_TITLE.Length < 18 ? send.NOTICE_TITLE.PadRight(18) : send.NOTICE_TITLE.Substring(0, 18);
templates.Add(paddedStr.Substring(0, 6));
templates.Add(paddedStr.Substring(6, 6));
templates.Add(paddedStr.Substring(12, 5));
templates[1] = templates[1].Trim();
templates[2] = templates[2].Trim();
templates.Add(send.TASK_ENDDT.Year.ToString());
templates.Add(send.TASK_ENDDT.Month.ToString("00"));
templates.Add(send.TASK_ENDDT.Day.ToString("00"));
templates.Add(send.TASK_ENDDT.Hour.ToString("00"));
templates.Add(send.TASK_ENDDT.Minute.ToString("00"));
templates.Add(send.TASK_ENDDT.Second.ToString("00"));
TencentSendSMS tencentSendSMS = new TencentSendSMS();
var result = tencentSendSMS.sendSMSDCJD("2163620", phoneNumbers.ToArray(), templates.ToArray());
if (result.SendStatusSet[0].Code.Equals("Ok"))
{
UnifiedCommit(() =>
{
UpdateEntityNoCommit(send);
});
}
}
}
}
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
public static AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret) public static AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret)
{ {
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config(); AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
@ -481,14 +286,14 @@ namespace APT.SC.WebApi.Controllers.Api.BI
/// </summary> /// </summary>
/// <param name="filter">定期短信发送</param> /// <param name="filter">定期短信发送</param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("regularSendSMSLYYL")] [HttpPost, Route("regularSendSMS")]
public JsonActionResult<bool> regularSendSMSLYYL([FromBody] KeywordFilter filter) public JsonActionResult<bool> regularSendSMS([FromBody] KeywordFilter filter)
{ {
return SafeExecute<bool>(() => return SafeExecute<bool>(() =>
{ {
try try
{ {
AlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient("LTAI5tAfy6VEGWSSAf73LqP2", "RrWf2l0ZnSe0JsMDPHx9r1ouQNPGYm"); AlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient("LTAI5t6Pc52xRjzHgsVszgNY", "FxuLo87JVr0kXK6LjRRioVZpCw4frs");
DateTime now = DateTime.Now; DateTime now = DateTime.Now;
BaseFilter userfilter = new BaseFilter(filter.GetOrgId()); BaseFilter userfilter = new BaseFilter(filter.GetOrgId());
userfilter.SelectField = new string[] { "PHONE" }; userfilter.SelectField = new string[] { "PHONE" };
@ -509,8 +314,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
{ {
AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendReq = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest { }; AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendReq = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest { };
sendReq.PhoneNumbers = user.PHONE; sendReq.PhoneNumbers = user.PHONE;
sendReq.SignName = "厦门鸣鹤";// "小鸣学习"; sendReq.SignName = "吐鲁番金源矿冶";// "小鸣学习";
sendReq.TemplateCode = "SMS_485890176";// "SMS_472015260"; sendReq.TemplateCode = "SMS_496760196";// "SMS_472015260";
//sendReq.TemplateParam = "{'name':'" + send.NOTICE_TITLE + "','time':'" + send.TASK_ENDDT + "'}"; //sendReq.TemplateParam = "{'name':'" + send.NOTICE_TITLE + "','time':'" + send.TASK_ENDDT + "'}";
sendReq.TemplateParam = "{'state':'临超期','name':'" + send.NOTICE_TITLE + "','time':'" + send.TASK_ENDDT + "'}"; sendReq.TemplateParam = "{'state':'临超期','name':'" + send.NOTICE_TITLE + "','time':'" + send.TASK_ENDDT + "'}";
@ -533,8 +338,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
{ {
AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendReq = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest { }; AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendReq = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest { };
sendReq.PhoneNumbers = user.PHONE; sendReq.PhoneNumbers = user.PHONE;
sendReq.SignName = "厦门鸣鹤";// "小鸣学习"; sendReq.SignName = "吐鲁番金源矿冶";// "小鸣学习";
sendReq.TemplateCode = "SMS_485890176";// "SMS_472025278"; sendReq.TemplateCode = "SMS_496760196";// "SMS_472015260";
//sendReq.TemplateParam = "{'name':'" + send.NOTICE_TITLE + "','time':'" + send.TASK_ENDDT + "'}"; //sendReq.TemplateParam = "{'name':'" + send.NOTICE_TITLE + "','time':'" + send.TASK_ENDDT + "'}";
sendReq.TemplateParam = "{'state':'新','name':'" + send.NOTICE_TITLE + "','time':'" + send.TASK_ENDDT + "'}"; sendReq.TemplateParam = "{'state':'新','name':'" + send.NOTICE_TITLE + "','time':'" + send.TASK_ENDDT + "'}";
AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsResponse sendResp = client.SendSms(sendReq); AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsResponse sendResp = client.SendSms(sendReq);

View File

@ -334,7 +334,7 @@ namespace APT.SE.WebApi.Controllers.Api
T_FM_USER_POST modelPost = null; T_FM_USER_POST modelPost = null;
List<string> listPostNameEmpty = new List<string>(); List<string> listPostNameEmpty = new List<string>();
List<int> listAnswerErrorIndex = new List<int>(); List<string> listAnswerErrorIndex = new List<string>();
List<string> listAnswerError = new List<string>(); List<string> listAnswerError = new List<string>();
string strANSWER = string.Empty; string strANSWER = string.Empty;
T_SE_TEST_ENUM_POINT modelPoint = null; T_SE_TEST_ENUM_POINT modelPoint = null;
@ -441,7 +441,7 @@ namespace APT.SE.WebApi.Controllers.Api
{ {
listAnswerError.Add(strANSWER); listAnswerError.Add(strANSWER);
} }
listAnswerErrorIndex.Add(i + rowIndex); listAnswerErrorIndex.Add((i + rowIndex).ToString());
} }
} }
@ -469,7 +469,7 @@ namespace APT.SE.WebApi.Controllers.Api
{ {
listAnswerError.Add(strANSWER); listAnswerError.Add(strANSWER);
} }
listAnswerErrorIndex.Add(i + rowIndex); listAnswerErrorIndex.Add((i + rowIndex).ToString());
} }
} }
if (mainTable.TYPE == SETestTypeEnum.) if (mainTable.TYPE == SETestTypeEnum.)
@ -504,7 +504,7 @@ namespace APT.SE.WebApi.Controllers.Api
{ {
listAnswerError.Add(strANSWER); listAnswerError.Add(strANSWER);
} }
listAnswerErrorIndex.Add(i + rowIndex); listAnswerErrorIndex.Add((i + rowIndex).ToString());
} }
if (!string.IsNullOrEmpty(dtSource.Rows[i][8].ToString().Trim())) if (!string.IsNullOrEmpty(dtSource.Rows[i][8].ToString().Trim()))
{ {
@ -617,7 +617,7 @@ namespace APT.SE.WebApi.Controllers.Api
} }
if (listAnswerErrorIndex.Count > 0) if (listAnswerErrorIndex.Count > 0)
{ {
throw new Exception("答案有误,行:【" + string.Join("," + listAnswerErrorIndex) + "】值:" + string.Join(",", listAnswerError)); throw new Exception("答案有误,行:【" + string.Join(",", listAnswerErrorIndex) + "】值:" + string.Join(",", listAnswerError));
} }
} }
if (strEmptyError != string.Empty) if (strEmptyError != string.Empty)