tijian_tieying/web/dccdc.DAL/sqysDal.cs
2025-02-20 12:14:39 +08:00

661 lines
26 KiB
C#

using Dapper;
using dccdc.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace dccdc.DAL
{
public class sqysDal
{
public List<sqysModel> GetAllList(string id)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = "select * from sqys where 1=1";
if (!string.IsNullOrEmpty(id))
{
sql += " and id=@id";
}
return conn.Query<sqysModel>(sql, new { @id = id }).ToList();
}
}
public xmjingfeiModel GetJFMCbyYusuan(string id)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = "select b.* from sqys a left join xmjingfei b on a.xmjfid= b.id where a.id= @id";
return conn.Query<xmjingfeiModel>(sql, new { @id = id }).FirstOrDefault();
}
}
public List<sqysModel> GetAllList(string id, string zt)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = "select * from sqys where 1=1";
if (!string.IsNullOrEmpty(id))
{
sql += " and id=@id";
}
if (!string.IsNullOrEmpty(zt))
{
sql += " and zt=@zt";
}
return conn.Query<sqysModel>(sql, new { @id = id, @zt = zt }).ToList();
}
}
public object save(sqysModel model)
{
string sql = "";
if (model.id == 0)
{
sql = @"INSERT INTO [dbo].[sqys]
([sqdh]
,[sqsj]
,[sqrid]
,[sqr]
,[ksid]
,[ksmc]
,[je]
,[je2]
,[je3]
,[year]
,[bz]
,[zt]
,[spr1]
,[sptime1]
,[spzt1]
,[spr2]
,[sptime2]
,[spzt2]
,[spr3]
,[sptime3]
,[spzt3]
,[spr4]
,[sptime4]
,[spzt4])
VALUES
(@sqdh
,@sqsj
,@sqrid
,@sqr
,@ksid
,@ksmc
,@je
,@je2
,@je3
,@year
,@bz
,@zt
,@spr1
,@sptime1
,@spzt1
,@spr2
,@sptime2
,@spzt2
,@spr3
,@sptime3
,@spzt3
,@spr4
,@sptime4
,@spzt4)";
}
else
{
sql = @"UPDATE [dbo].[sqys]
SET [sqdh] = @sqdh
,[sqsj] = @sqsj
,[sqrid] = @sqrid
,[sqr] = @sqr
,[ksid] = @ksid
,[ksmc] = @ksmc
,[je] = @je
,[je2] = @je2
,[je3] = @je3
,[year] = @year
,[bz] = @bz
,[zt] = @zt
,[spr1] = @spr1
,[sptime1] = @sptime1
,[spzt1] = @spzt1
,[spr2] = @spr2
,[sptime2] = @sptime2
,[spzt2] = @spzt2
,[spr3] = @spr3
,[sptime3] = @sptime3
,[spzt3] = @spzt3
,[spr4] = @spr4
,[sptime4] = @sptime4
,[spzt4] = @spzt4
WHERE id=@id";
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
int result = conn.Execute(sql, model);
if (result > 0)
return new { State = 1, Message = "保存成功!" };
else
return new { State = 0, Message = "保存失败!" };
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
}
public List<sqysModel> getsqysBydh(string dh)
{
string sql = "select * from sqys where sqdh in (@dh)";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<sqysModel>(sql, new { dh = dh }).ToList();
}
}
public List<sqysmxModel> getMxBysqdid(string sqdid)
{
string sql = "select * from sqysmx where sqdid = @sqdid";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<sqysmxModel>(sql, new { sqdid = sqdid }).ToList();
}
}
public object opSave(string id, int ksid, string ksmc, string items, int sqrid, string sqr, string je, string je2, string je3, string year,string fyly, string bz, string bz2, string xmjfsrid, string xmjfid, string xmjfsrje, int zt, string qrsq)
{
string errmsg = "";
string sqdh = getckkdh(out errmsg);
if (errmsg != "")
return new { State = 0, Message = "false" };
sqysModel model = new sqysModel();
model.sqdh = sqdh;
model.sqrid = sqrid;
model.sqr = sqr;
model.sqsj = DateTime.Now;
model.tjsj = DateTime.Now;
model.ksid = ksid;
model.ksmc = ksmc;
model.je = Convert.ToDecimal(je);
model.je2 = Convert.ToDecimal(je2);
model.je3 = Convert.ToDecimal(je3);
model.year = year;
model.fyly = fyly;
model.bz = bz;
model.bz2 = bz2;
model.xmjfsrid = Convert.ToInt32(xmjfsrid);
model.xmjfid = Convert.ToInt32(xmjfid);
model.xmjfsrje = Convert.ToDecimal(xmjfsrje);
model.zt = zt;
if (zt == 7)
{
model.zt = 6; //需要财务审核 状态是7变成6
}
if (qrsq == "0") //暂存
{
model.zt = 0;
}
string sql = @"INSERT INTO [dbo].[sqys]
([sqdh],[sqsj],[tjsj],[sqrid],[sqr],[ksid],[ksmc],[je],[je2],[je3],[year],[bz],[bz2],[xmjfsrid],[xmjfid],[xmjfsrje],[fyly],[zt])
VALUES
(@sqdh,@sqsj,@tjsj,@sqrid,@sqr,@ksid,@ksmc,@je,@je2,@je3,@year,@bz,@bz2,@xmjfsrid,@xmjfid,@xmjfsrje,@fyly,@zt)select SCOPE_IDENTITY()";
int sqdid = 0;
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
sqdid = conn.Query<int>(sql, model).FirstOrDefault();
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
List<sqysmxModel> models = new List<sqysmxModel>();
sqysmxModel m;
foreach (string item in items.Split(new char[] { ',','!','#' }, StringSplitOptions.RemoveEmptyEntries))
{
string[] itemss = item.Split('|');
if (itemss.Length == 5)
{
m = new sqysmxModel();
m.sqdid = sqdid;
//m.jflbid = Convert.ToInt32(itemss[0]);
//m.jflbmc = itemss[1];
//m.jfid = Convert.ToInt32(itemss[2]);
//m.jfmc = itemss[3];
//m.kmid = Convert.ToInt32(itemss[4]);
//m.kmmc = itemss[5];
m.dj = Convert.ToDecimal(itemss[0]);
m.sl = Convert.ToDecimal(itemss[1]);
m.czsj = DateTime.Now;
m.csyj = itemss[2];
m.xmnr = itemss[3];
m.xmmb = itemss[4];
models.Add(m);
}
}
string sql2 = @"INSERT INTO [dbo].[sqysmx]
([sqdid],[jflbid],[jflbmc],[jfid],[jfmc],[kmid],[kmmc],[sl],[dj],[czsj],[yyje],csyj,xmnr,xmmb)
VALUES
(@sqdid,@jflbid,@jflbmc,@jfid,@jfmc,@kmid,@kmmc,@sl,@dj,@czsj,@yyje,@csyj,@xmnr,@xmmb)";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
int result = conn.Execute(sql2, models);
if (result > 0)
{
//退货
//ck(models, -1);
return new { State = 1, Message = "操作成功!", id = sqdid };
}
else
return new { State = 0, Message = "操作失败!" };
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
}
public object opSave2(string id, int ksid, string ksmc, string items, int sqrid, string sqr, string je, string je2, string je3, string year, string fyly, string bz, string bz2, string xmjfsrid, string xmjfid, string xmjfsrje, int zt, string qrsq)
{
sqysModel model = new sqysModel();
model.id = Convert.ToInt32(id);
model.je = Convert.ToDecimal(je);
model.je2 = Convert.ToDecimal(je2);
model.je3 = Convert.ToDecimal(je3);
model.year = year;
model.fyly = fyly;
model.bz = bz;
model.bz2 = bz2;
model.xmjfsrid = Convert.ToInt32(xmjfsrid);
model.xmjfid = Convert.ToInt32(xmjfid);
model.xmjfsrje = Convert.ToDecimal(xmjfsrje);
model.zt = zt;
if (zt == 7)
{
model.zt = 6; //需要财务审核 状态是7变成6
}
if (qrsq == "0") //暂存
{
model.zt = 0;
}
string sql = @"UPDATE [dbo].[sqys]
SET [je] = @je, [je2] = @je2, [je3] = @je3,[year] = @year,[bz] = @bz,[bz2] = @bz2,[fyly] = @fyly,[zt] = @zt,[xmjfsrid] = @xmjfsrid,[xmjfid] = @xmjfid,[xmjfsrje] = @xmjfsrje
WHERE id=@id";
string sql3 = "delete from sqysmx where sqdid=@id";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
conn.Execute(sql, model);
conn.Execute(sql3, new { @id = id });
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
List<sqysmxModel> models = new List<sqysmxModel>();
sqysmxModel m;
foreach (string item in items.Split(new char[] { ',', '!', '#' }, StringSplitOptions.RemoveEmptyEntries))
{
string[] itemss = item.Split('|');
if (itemss.Length == 5)
{
m = new sqysmxModel();
m.sqdid = Convert.ToInt32(id);
//m.jflbid = Convert.ToInt32(itemss[0]);
//m.jflbmc = itemss[1];
//m.jfid = Convert.ToInt32(itemss[2]);
//m.jfmc = itemss[3];
//m.kmid = Convert.ToInt32(itemss[4]);
//m.kmmc = itemss[5];
m.dj = Convert.ToDecimal(itemss[0]);
m.sl = Convert.ToDecimal(itemss[1]);
m.czsj = DateTime.Now;
m.csyj = itemss[2];
m.xmnr = itemss[3];
m.xmmb = itemss[4];
models.Add(m);
}
}
string sql2 = @"INSERT INTO [dbo].[sqysmx]
([sqdid],[jflbid],[jflbmc],[jfid],[jfmc],[kmid],[kmmc],[sl],[dj],[czsj],[yyje],csyj,xmnr,xmmb)
VALUES
(@sqdid,@jflbid,@jflbmc,@jfid,@jfmc,@kmid,@kmmc,@sl,@dj,@czsj,@yyje,@csyj,@xmnr,@xmmb)";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
int result = conn.Execute(sql2, models);
if (result > 0)
{
//退货
//ck(models, -1);
return new { State = 1, Message = "操作成功!" };
}
else
return new { State = 0, Message = "操作失败!" };
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
}
public object opSp(string id, int sprid, string spr, string yj, bool ty, string spjea, string spjeb)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql2 = "select * from sqys where 1=1";
if (!string.IsNullOrEmpty(id))
{
sql2 += " and id=@id";
}
sqysModel model = conn.Query<sqysModel>(sql2, new { @id = id }).FirstOrDefault();
if (model == null)
return new { State = 0, Message = "不存在记录" };
else
{
string sql = "";
int zt = 0;
switch (model.zt)
{
case 1:
sql = "update sqys set sprid1=@sprid, spr1=@spr,sptime1=@sptime,spnr1=@spnr,spje1=@spjea,spje11=@spjeb,zt=@zt where id=@id";
if (ty) { zt = 2; } else { zt = -1; }
break;
case 2:
sql = "update sqys set sprid2=@sprid, spr2=@spr,sptime2=@sptime,spnr2=@spnr,spje2=@spjea,spje22=@spjeb,zt=@zt where id=@id";
if (ty) { zt = 6; } else { zt = -2; }
break;
case 6:
sql = "update sqys set sprid3=@sprid, spr3=@spr,sptime3=@sptime,spnr3=@spnr,spje3=@spjea,spje33=@spjeb,zt=@zt where id=@id";
if (ty) { zt = 7; } else { zt = -6; }
break;
case 7:
sql = "update sqys set sprid4=@sprid, spr4=@spr,sptime4=@sptime,spnr4=@spnr,spje4=@spjea,spje44=@spjeb,zt=@zt where id=@id";
if (ty) { zt = 8; } else { zt = -7; }
break;
}
try
{
int result = conn.Execute(sql, new { @id = id, @sprid = sprid, @spr = spr, @sptime = DateTime.Now, @spnr = yj, @zt = zt, spjea = spjea, spjeb = spjeb });
if (result > 0)
{
return new { State = 1, Message = "修改成功" };
}
else
return new { State = 0, Message = "修改失败" };
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
}
}
public object opSpOneself(string id, int sprid, string spr, string yj, bool ty, string zw)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql2 = "select * from sqys where 1=1";
if (!string.IsNullOrEmpty(id))
{
sql2 += " and id=@id";
}
sqysModel model = conn.Query<sqysModel>(sql2, new { @id = id }).FirstOrDefault();
if (model == null)
return new { State = 0, Message = "不存在记录" };
else
{
string sql = "";
switch (zw)
{
case "科室领导":
sql = "update sqys set sprid1=@sprid, spr1=@spr,sptime1=@sptime,spnr1=@spnr where id=@id";
break;
case "分管领导":
sql = "update sqys set sprid2=@sprid, spr2=@spr,sptime2=@sptime,spnr2=@spnr where id=@id";
break;
}
try
{
int result = conn.Execute(sql, new { @id = id, @sprid = sprid, @spr = spr, @sptime = DateTime.Now, @spnr = yj });
if (result > 0)
{
return new { State = 1, Message = "修改成功" };
}
else
return new { State = 0, Message = "修改失败" };
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
}
}
//获取申请单号
private string getckkdh(out string errmsg)
{
errmsg = "";
string result = "";
string start = DateTime.Now.ToString("yyyyMM") + "0001";
string end = DateTime.Now.ToString("yyyyMM") + "9999";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = "select top 1 sqdh from sqys where sqdh >= '" + start + "' and sqdh<= '" + end + "' order by id desc";
try
{
var result2 = conn.ExecuteScalar(sql);
if (result2 == null)
result = start;
else
{
result = (Convert.ToInt32(result2) + 1).ToString();
if (result == end)
errmsg = "单号不足!";
}
}
catch (Exception ex)
{
errmsg = ex.Message;
}
}
return result;
}
public object delete(string id)
{
string sql = "delete from sqys where id=@id";
string sql2 = "delete from sqysmx where sqdid=@id";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
int result = conn.Execute(sql, new { id = id });
result = conn.Execute(sql2, new { id = id });
if (result > 0)
{
return new { State = 1, Message = "操作成功!" };
}
else
return new { State = 0, Message = "操作失败!" };
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
}
public int getCount(string key)
{
string sql = "select count(1) from dbo.sqys where 1=1";
if (!string.IsNullOrEmpty(key))
{
sql += " and ksid = @key";
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.ExecuteScalar<int>(sql, new { key = key });
}
}
public List<sqysModel> getPage(int page, int pagesize, string key)
{
string sql = "select *,row_number() over(order by id desc) as rownum from sqys where 1=1";
if (!string.IsNullOrEmpty(key))
{
sql += " and ksid = @key";
}
sql = "select * from (" + sql + ") t where t.rownum>(" + page + "-1)*" + pagesize + " and rownum<=" + page + "*" + pagesize;
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<Models.sqysModel>(sql, new { key = key }).ToList();
}
}
public int getCount2(string where)
{
string sql = "select count(1) from sqys";
if (!string.IsNullOrEmpty(where))
{
sql += " where " + where;
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.ExecuteScalar<int>(sql);
}
}
public List<sqysModel> getPage2(int page, int pagesize, string where)
{
string sql = "select *,row_number() over(order by id desc) as rownum from sqys"; //产生序列号的时候排序
if (!string.IsNullOrEmpty(where))
{
sql += " where " + where;
}
sql = "select * from (" + sql + ") t where t.rownum>(" + page + "-1)*" + pagesize + " and rownum<=" + page + "*" + pagesize;
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<Models.sqysModel>(sql).ToList();
}
}
public int getCountLevel(string where)
{
string sql = "select count(1) from dbo.sqys";
if (!string.IsNullOrEmpty(where))
{
sql += " where " + where;
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.ExecuteScalar<int>(sql);
}
}
public List<sqysModel> getPageLevel(int page, int pagesize, string where)
{
string sql = "select *,row_number() over(order by id desc) as rownum from sqys";
if (!string.IsNullOrEmpty(where))
{
sql += " where " + where;
}
sql = "select * from (" + sql + ") t where t.rownum>(" + page + "-1)*" + pagesize + " and rownum<=" + page + "*" + pagesize;
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<Models.sqysModel>(sql).ToList();
}
}
//经费分解
public List<dynamic> getJFFJ(string where)
{
string sql = @"select a.*,b.xmmc,(a.je-a.je2) as syje from sqys a join xmjingfei b on a.xmjfid=b.id where a.zt = 8";
if (!string.IsNullOrEmpty(where))
{
sql += where;
}
using (var conn = CommHelper.GetSqlConnection())
{
return conn.Query(sql, new { where = where }).ToList();
}
}
public object updateYyje(string items)
{
string sql = @"UPDATE [dbo].[sqys] SET [je2] = [je2]+ @je2,[je3] =[je]- [je2]- @je2 WHERE id=@id";
List<sqysModel> models = new List<sqysModel>();
sqysModel m;
foreach (string item in items.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
string[] itemss = item.Split('|');
if (itemss.Length == 5)
{
m = new sqysModel();
m.id = Convert.ToInt32(itemss[0]);
m.je2 = Convert.ToDecimal(itemss[4]);
models.Add(m);
}
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
conn.Execute(sql, models);
return new { State = 1, Message = "操作成功" };
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
}
//报销历史
public List<dynamic> getBXLS(string where)
{
string sql = @"select a.*,b.ksid,b.ksmc,b.je3,b.year from sqbxmx2 a left join sqys b on a.ysid=b.id where 1=1";
if (!string.IsNullOrEmpty(where))
{
sql += where;
}
using (var conn = CommHelper.GetSqlConnection())
{
return conn.Query(sql, new { where = where }).ToList();
}
}
}
}