Files
lserp_cs_6.0/插件库/Lskj.Business/Impl/NoticeImpl.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

204 lines
9.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Lskj.Model;
using Lskj.Core;
using Lskj.Util;
namespace Lskj.Business.Impl
{
public class NoticeImpl : BaseImpl
{
/// <summary>
/// <para>说明:判断数据库中是否存在默认消息记录表</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-09-21 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static void CreationNoticeTable()
{
string sqlValue = string.Format(@"Create Table p_systemNoticeSheet -- 消息通知信息表
(
Id int identity(1,1) primary key, -- 分类ID,主键,自动增长
Msg varchar(20) unique not null, -- 写入数据库信息
Created datetime not null, -- 此分类下的问题数量
UserId int default 1, -- 是否在问题列表里显示此类(1-显示(默认),0-不显示)
)");
ExecSqlValue(sqlValue);
}
/// <summary>
/// <para>说明:更新提醒框的标识字段</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期: </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable UpdRemindField(DataRow item, string dllName)
{
string Billsql = string.Format("Update wms_BillflowComfirm set isdel=1 where modid='{0}' and keyvalue='{1}' and operatorid={2}", item["moduleid"] + "", item["keyvalue"] + "", ERPInfo.Instance.UserId);
string Basesql = string.Format("Update p_baseflowComfirm set isdel=1 where modid='{0}' and keyvalue='{1}' and operatorid={2}", item["moduleid"] + "", item["keyvalue"] + "", ERPInfo.Instance.UserId);
return GetDataTableResult(dllName == "Lskj.BaseInfo.dll" ? Basesql : Billsql);
}
/// <summary>
/// <para>说明:获取审批通知数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期: </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetNoticeData(string userName)
{
string sqlValue = string.Format("select '['+typeName+']'+'=>'+keyvalue+'单子需要审核' as AuditMessages,* from wms_billflowOperView WITH(NOLOCK) where CHARINDEX(',{0},',',' + browsers + ',')>0", userName);
return GetDataTableResult(sqlValue);
}
/// <summary>
/// <para>说明:删除标识为1的当前行字段</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期: </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static void UpeNoticeData(DataRow item, bool isCustomNotice = true)
{
string sqlValue = string.Empty;
if (HasExistsTable("p_systemMessageTab") && isCustomNotice)
{
sqlValue = string.Format("Update p_systemMessageTab set ReadFlag=1, DeleteFlag=1 where Id={0}", item["id"] + "");
ExecSqlValue(sqlValue);
}
else
{
sqlValue = string.Format("delete p_systemNotification where Id={0}", item["id"] + "");
ExecSqlValue(sqlValue);
}
if (HasExistsTable("p_systemNoticeSheet"))
{
sqlValue = string.Format("insert into p_systemNoticeSheet (Msg, Created,UserId) VALUES ('{0}','{1}',{2})", item["AuditMessages"] + "", DateTime.Now.ToString("yyyy-MM-dd"), ERPInfo.Instance.UserId);
ExecSqlValue(sqlValue);
}
ApiHelper apiHelper = null;
Interface.Api.ActionType actionType = Interface.Api.ActionType.None;
//string moduleid = item["moduleid"] + "";
string moduleid = "SkipToNotice";
if (ApiHelper.IsExecEventApi(Interface.Api.OperateEvent.AfterModuleContextMenu, moduleid, -1))
{
System.Threading.Thread thread = new System.Threading.Thread(() =>
{
apiHelper = new ApiHelper(moduleid, "", "", "", -1, null);
actionType = Interface.Api.ActionType.None;
apiHelper.OnEvent(Interface.Api.OperateEvent.AfterModuleContextMenu, actionType);
});
thread.Start();
}
}
/// <summary>
/// <para>说明:删除所有标识为1的消息</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期: </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable UpeNoticeData(string messid)
{
string sqlValue = string.Format("delete p_systemNotification where messid={0} ", messid);
return GetDataTableResult(sqlValue);
}
/// <summary>
/// <para>说明:新获取审批通知数据</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期: </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetNoticeData2(string userId, out string sqlStr)
{
if (!string.IsNullOrWhiteSpace(SystemInfo.Instance.MessageSql)&&!string.IsNullOrWhiteSpace(userId))
{
string sql=ReplaceHelper.ReplaceUserInfo(SystemInfo.Instance.MessageSql);
sqlStr = sql;
return GetDataTableResult(sql);
}
string MessageTab = string.Empty;
string SkipToMessageTab = string.Empty;
string RecordsTime = " ,null as FirstViewTime";
if (BaseImpl.HasExistsColumn("p_systemMessageTab", "FirstViewTime", "datetime"))
{
RecordsTime = ",FirstViewTime";
}
if (BaseImpl.HasExistsTable("p_systemMessageTab"))
{
if (BaseImpl.HasExistsColumn("p_systemMessageTab", "pubdll", "VARCHAR(100)"))
{
MessageTab = string.Format(@" union all
select Msg,CreateDate,id,1,DllCoid,0,pubdll,Title,MsgDetail,0,0,0,0,aa.employeename,a.CreateUserName,'p_systemMessageTab' {1} from p_systemMessageTab a with(nolock) left join P_EmployeeTab aa with(nolock) on a.CreateUserID=aa.employeeid where NoticeUserID={0} and DeleteFlag=0", userId, RecordsTime);
}
SkipToMessageTab = string.Format(@" union all
select Msg AuditMessages, Created OperateDate, id, messid, DLLCoid moduleid, Cnt1 num, DllFileName dllname, modulename, '' keyvalue, stepcode, '' menumode, menuid, '' hasSearch, null as EmployeeName ,'' as CreateUserName,'p_systemNotification' ,null as FirstViewTime from p_systemNotification with(nolock) where dllcoid = 'SkipToNotice' and UserId = {0}", userId);
}
string sqlValue = string.Format(@"select distinct '['+b.MenuCaption+']'+'=>'+isnull(a.billdocument_id,'')+msg as AuditMessages
,a.Created as OperateDate,a.id,messid,a.DLLCoid moduleid,Cnt1 num,a.DllFileName dllname,b.MenuCaption modulename
,billdocument_id keyvalue,stepcode ,ISNULL(MenuMode_Mobile,0) menumode,b.menuid,case when ISNULL(c.DllCoid,'')='' then isnull(d.defaultShowSearch,0)
else isnull(c.defaultShowSearch,0) end hasSearch,null as EmployeeName ,'' as CreateUserName,'p_systemNotification' as TableName ,null as FirstViewTime
from p_systemNotification a with(nolock)
inner join P_FormMenuConfigTab b with(nolock) ON ISNULL(a.menuid,0)=b.MenuId
LEFT JOIN p_systemdlltab c with(nolock) ON b.UrlParams = c.DllCoid
LEFT JOIN p_systembilltype d with(nolock) ON b.UrlParams = d.typeCode
where isnull(a.billdocument_id,'')<>'' and isnull(a.status,0)=0
and isnull(a.Cnt1,0)<>0 and a.UserId={0}
{1} {2}", userId, MessageTab, SkipToMessageTab);
sqlValue = string.Format("select * from ({0}) a order by OperateDate desc", sqlValue);
sqlStr = sqlValue;
return GetDataTableResult(sqlValue);
}
/// <summary>
/// <para>说明:更新第一次点开的时间</para>
/// <para>创建人:</para>
/// <para>创建日期: </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable UpeNoticeData(string tableName,string id)
{
string sqlValue = string.Format("update {0} set FirstViewTime=GETDATE() where id={1} ", tableName,id);
return GetDataTableResult(sqlValue);
}
}
}