using Dapper;
|
using Microsoft.AspNetCore.Http;
|
using Newtonsoft.Json.Linq;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Data.SqlClient;
|
using System.IO;
|
using System.Linq;
|
using System.Threading.Tasks;
|
using VueWebCoreApi.Models;
|
using VueWebCoreApi.Tools;
|
|
namespace VueWebCoreApi.DLL.DAL
|
{
|
public class SystemSettingDAL
|
{
|
public static DataTable dt; //定义全局变量dt
|
public static bool res; //定义全局变量dt
|
public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
|
public static string strProcName = ""; //定义全局sql变量
|
public static List<SqlParameter> listStr = new List<SqlParameter>(); //定义全局参数集合
|
public static SqlParameter[] parameters; //定义全局SqlParameter参数数组
|
|
#region[编码规则获取可设置的功能菜单信息]
|
public static ToMessage CodeMenuSelect()
|
{
|
string sql = "";
|
try
|
{
|
sql = @"with RecursiveCTE as (
|
select menucode, parent_id,menuname,menu_seq,Type
|
from TMenu
|
where is_codeview = 'Y'
|
union ALL
|
select e.menucode, e.parent_id, e.menuname,e.menu_seq,e.Type
|
from TMenu e
|
inner join RecursiveCTE r ON e.menucode = r.parent_id
|
)
|
select distinct menucode, parent_id, menuname,Type,menu_seq
|
from RecursiveCTE order by menucode, parent_id,Type,menu_seq";
|
var data = DapperHelper.selecttable(sql);
|
if (data.Rows.Count > 0)
|
{
|
mes.code = "200";
|
mes.message = "查询成功!";
|
mes.data = data;
|
}
|
else
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = "无可设置功能规则!";
|
mes.data = null;
|
}
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
#region[编码规则查询]
|
public static ToMessage EncodingRules(string rightname, string prefix, int startNum, int endNum, string prop, string order)
|
{
|
var dynamicParams = new DynamicParameters();
|
string search = "";
|
try
|
{
|
if (rightname != "" && rightname != null)
|
{
|
search += "and A.menuname like '%'+@rightname+'%' ";
|
dynamicParams.Add("@rightname", rightname);
|
}
|
if (prefix != "" && prefix != null)
|
{
|
search += "and A.prefix like '%'+@prefix+'%' ";
|
dynamicParams.Add("@prefix", prefix);
|
}
|
if (search == "")
|
{
|
search = "and 1=1 ";
|
}
|
search = search.Substring(3);//截取索引2后面的字符
|
// --------------查询指定数据--------------
|
var total = 0; //总条数
|
var sql = @"select A.menucode,A.menuname,A.prefix,A.filingdate,A.incbit,A.value,A.Type,U.usercode,U.username,A.lm_date
|
from TCodeRules A
|
left join TUser U on A.lm_user=U.usercode
|
where " + search + "";
|
var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
|
mes.code = "200";
|
mes.message = "查询成功!";
|
mes.count = total;
|
mes.data = data.ToList();
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
#region[编码规则编辑保存]
|
public static ToMessage SaveEncodingRules(string rightcode, string rightname, string prefix, string filingdate, string incbit, string type, User us)
|
{
|
var sql = "";
|
List<object> list = new List<object>();
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
sql = @"select menucode,value from TCodeRules where menucode=@rightcode and Type=@type";
|
dynamicParams.Add("@rightcode", rightcode);
|
dynamicParams.Add("@type", type);
|
var data = DapperHelper.selectdata(sql, dynamicParams);
|
if (data.Rows.Count > 0)
|
{
|
string value = data.Rows[0]["value"].ToString();
|
if (decimal.Parse(incbit) > value.Length)
|
{
|
decimal cnum = decimal.Parse(incbit) - value.Length;
|
for (int i = 0; i < cnum; i++)
|
{
|
value = "0" + value;
|
}
|
}
|
sql = @"update TCodeRules set prefix=@prefix,filingdate=@filingdate,incbit=@incbit,value=@value,lm_user=@lm_user,lm_date=@CreateDate where menucode=@menucode";
|
dynamicParams.Add("@prefix", prefix);
|
dynamicParams.Add("@filingdate", filingdate);
|
dynamicParams.Add("@incbit", incbit);
|
dynamicParams.Add("@value", value);
|
dynamicParams.Add("@lm_user", us.usercode);
|
dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
|
dynamicParams.Add("@menucode", rightcode);
|
int cont = DapperHelper.SQL(sql, dynamicParams);
|
if (cont > 0)
|
{
|
//写入操作记录表
|
LogHelper.DbOperateLog(us.usercode, "修改", "修改了编码规则", us.usertype);
|
mes.code = "200";
|
mes.count = 0;
|
mes.message = "操作成功!";
|
mes.data = null;
|
}
|
else
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = "操作失败!";
|
mes.data = null;
|
}
|
}
|
else
|
{
|
//首次写入前按位数补充0
|
string value = "";
|
for (int i = 0; i < int.Parse(incbit); i++)
|
{
|
value = value + "0";
|
}
|
//写入规则表
|
sql = @"insert into TCodeRules(menucode,menuname,prefix,filingdate,incbit,value,lm_user,lm_date,Type)
|
values(@menucode,@menuname,@prefix,@filingdate,@incbit,@value,@lm_user,@lm_date,@type)";
|
dynamicParams.Add("@menucode", rightcode);
|
dynamicParams.Add("@menuname", rightname);
|
dynamicParams.Add("@prefix", prefix);
|
dynamicParams.Add("@filingdate", filingdate);
|
dynamicParams.Add("@incbit", incbit);
|
dynamicParams.Add("@value", value);
|
dynamicParams.Add("@lm_user", us.usercode);
|
dynamicParams.Add("@lm_date", DateTime.Now.ToString());
|
dynamicParams.Add("@type", type);
|
int cont = DapperHelper.SQL(sql, dynamicParams);
|
if (cont > 0)
|
{
|
//写入操作记录表
|
LogHelper.DbOperateLog(us.usercode, "新增", "新增了编码规则", us.usertype);
|
mes.code = "200";
|
mes.count = 0;
|
mes.message = "操作成功!";
|
mes.data = null;
|
}
|
else
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = "操作失败!";
|
mes.data = null;
|
}
|
}
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
#region[编码规则删除]
|
public static ToMessage DeleteEncodingRules(string menucode, User us)
|
{
|
var sql = "";
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
sql = @"delete TCodeRules where menucode=@menucode";
|
dynamicParams.Add("@menucode", menucode);
|
int cont = DapperHelper.SQL(sql, dynamicParams);
|
if (cont > 0)
|
{
|
//写入操作记录表
|
LogHelper.DbOperateLog(us.usercode, "删除", "删除了编码规则", us.usertype);
|
mes.code = "200";
|
mes.count = 0;
|
mes.message = "操作成功!";
|
mes.data = null;
|
}
|
else
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = "操作失败!";
|
mes.data = null;
|
}
|
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
#region[获取规则生成的编码(每次获取最新)]
|
public static ToMessage NewEncodingRules(string rightcode)
|
{
|
mes = SeachEncode.EncodingSeach(rightcode);
|
return mes;
|
}
|
#endregion
|
|
#region[获取规则生成的编码(只有使用才获取最新)]
|
public static ToMessage OnlyEncodingRules(string rightcode)
|
{
|
mes = SeachEncodeJob.EncodingSeach(rightcode);
|
return mes;
|
}
|
#endregion
|
|
#region[回写规则生成的编码(使用保存)]
|
public static ToMessage SaveOnlyEncodingRules(string rightcode, string incbit)
|
{
|
List<object> list = SeachEncodeJob.StrEncodingUpdate(rightcode, incbit);
|
bool aa = DapperHelper.DoTransaction(list);
|
if (aa)
|
{
|
mes.code = "200";
|
mes.count = 0;
|
mes.message = "操作成功!";
|
mes.data = null;
|
}
|
else
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = "操作失败!";
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
#region[生成物料标签条码(每次获取最新,App可使用)]
|
public static ToMessage LabelBarCode(string rightcode, string partcode, string qty, string onelabqty)
|
{
|
mes = AppLableBarCode.EncodingSeach(rightcode, partcode, qty, onelabqty);
|
return mes;
|
}
|
#endregion
|
|
#region[App版本升级接口]
|
public static ToMessage AppUpgrade(string rid, string vision)
|
{
|
var sql = "";
|
List<object> list = new List<object>();
|
List<AppVersion> obj = new List<AppVersion>();
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
list.Clear();
|
sql = @"select * from TSystemAppUser where rid=@rid and appvesion=@vision";
|
dynamicParams.Add("@rid", rid);
|
dynamicParams.Add("@vision", vision);
|
var data = DapperHelper.selectdata(sql, dynamicParams);
|
if (data.Rows.Count <= 0) //不存在
|
{
|
//写入本版用户关联表
|
sql = @"insert into TSystemAppUser(rid,appvesion,lm_date)
|
values(@rid,@appvesion,@lm_date)";
|
list.Add(new
|
{
|
str = sql,
|
parm = new
|
{
|
rid = rid,
|
appvesion = vision,
|
lm_date = DateTime.Now.ToString()
|
}
|
});
|
bool aa = DapperHelper.DoTransaction(list);
|
list.Clear();
|
}
|
//查询控制升级表版本数据
|
sql = @"select * from TSystemApp";
|
var data1 = DapperHelper.selecttable(sql);
|
AppVersion vn = new AppVersion();
|
vn.path = data1.Rows[0]["path"].ToString();
|
vn.version = data1.Rows[0]["version"].ToString();
|
vn.dispyversion = vision;
|
vn.activeversion = data1.Rows[0]["activeversion"].ToString();
|
vn.mustupgrade = data1.Rows[0]["mustupgrade"].ToString();
|
list.Add(vn);
|
|
mes.code = "200";
|
mes.count = 0;
|
mes.message = "查询成功!";
|
mes.data = list;
|
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
|
#region[系统设置,流程设置提交]
|
public static ToMessage SaveSystemProcConfig(JObject systemjson, User us)
|
{
|
var sql = "";
|
List<object> list = new List<object>();
|
try
|
{
|
list.Clear();
|
sql = @"select * from TSystemProcConfig";
|
var data = DapperHelper.selecttable(sql);
|
if (data.Rows.Count <= 0) //不存在
|
{
|
sql = @"insert into TSystemProcConfig(json,lm_user,lm_date)
|
values(@json,@lm_user,@lm_date)";
|
list.Add(new
|
{
|
str = sql,
|
parm = new
|
{
|
json = systemjson.ToString(Newtonsoft.Json.Formatting.None),
|
lm_user = us.usercode,
|
lm_date = DateTime.Now.ToString()
|
}
|
});
|
}
|
else
|
{
|
sql = @"update TSystemProcConfig set json=@json,lm_user=@lm_user,lm_date=@lm_date";
|
list.Add(new
|
{
|
str = sql,
|
parm = new
|
{
|
json = systemjson.ToString(Newtonsoft.Json.Formatting.None),
|
lm_user = us.usercode,
|
lm_date = DateTime.Now.ToString()
|
}
|
});
|
}
|
bool aa = DapperHelper.DoTransaction(list);
|
if (aa)
|
{
|
//写入操作记录表
|
LogHelper.DbOperateLog(us.usercode, "系统流程设置", "流程设置json:" + systemjson.ToString(), us.usertype);
|
mes.code = "200";
|
mes.count = 0;
|
mes.message = "流程设置成功!";
|
mes.data = null;
|
}
|
else
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = "流程设置失败!";
|
mes.data = null;
|
}
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
}
|
}
|