using Dapper; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; 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 listStr = new List(); //定义全局参数集合 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(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 list = new List(); 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 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 list = new List(); List obj = new List(); 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 } }