tijian_tieying/web/dccdc.DAL/rkdDal.cs

472 lines
18 KiB
C#
Raw Normal View History

2025-02-20 12:14:39 +08:00
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 rkdDal
{
public List<rkdModel> GetAllList(string id)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = "select * from rkd where 1=1";
if (!string.IsNullOrEmpty(id))
{
sql += " and id=@id";
}
return conn.Query<rkdModel>(sql, new { @id = id }).ToList();
}
}
public List<rkdModel> GetAllList(string id, string zt)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = "select * from rkd where 1=1";
if (!string.IsNullOrEmpty(id))
{
sql += " and id=@id";
}
if (!string.IsNullOrEmpty(zt))
{
sql += " and zt=@zt";
}
return conn.Query<rkdModel>(sql, new { @id = id, @zt = zt }).ToList();
}
}
public List<rkdmxModel> getrkdmx(string rkdids)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = @"select a.*,b.rkje as dj from
(select rkdid,(select '【' + wzmc+' '+convert(varchar,dj)+' '+convert(varchar,sl)+'】' from rkdmx where rkdid = a.rkdid for xml path('')) as wzmc
from rkdmx a where rkdid in(" + rkdids + ") group by rkdid)a left join rkd b on a.rkdid=b.id";
return conn.Query<rkdmxModel>(sql).ToList();
}
}
public List<rkdmxModel> getsqdmx(string sqdids)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = @"select a.*,b.je as dj from
(select sqdid,(select '【' + wzmc+' '+convert(varchar,dj)+' '+convert(varchar,sl)+'】' from sqwzcgmx where sqdid = a.sqdid for xml path('')) as wzmc
from sqwzcgmx a where sqdid in(" + sqdids + ") group by sqdid)a left join sqwzcg b on a.sqdid=b.id";
return conn.Query<rkdmxModel>(sql).ToList();
}
}
public object save(rkdModel model)
{
string sql = "";
if (model.id == 0)
{
sql = @"INSERT INTO [dbo].[rkd]
([rkdh]
,[sqdid]
,[rklx]
,[rksj]
,[rkrid]
,[rkr]
,[gysid]
,[gys]
,[rkje]
,[zt])
VALUES
(@rkdh
,@sqdid
,@rklx
,@rksj
,@rkrid
,@rkr
,@gysid
,@gys
,@rkje
,@zt)";
}
else
{
sql = @"UPDATE [dbo].[rkd]
SET [rkdh] = @rkdh
,[sqdid] = @sqdid
,[rklx] = @rklx
,[rksj] = @rksj
,[rkrid] = @rkrid
,[rkr] = @rkr
,[gysid] = @gysid
,[gys] = @gys
,[rkje] = @rkje
,[zt] = @zt
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<rkdModel> getRudByRkdh(string rkdh)
{
string sql = "select * from rkd where rkdh in (@rkdh) and zt=1";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<rkdModel>(sql, new { rkdh = rkdh }).ToList();
}
}
public object getRudMxByRkdId(string rkdid)
{
string sql = "select a.* ,b.ggxh,b.jldw,(a.dj*a.sl) hj from rkdmx a join wz b on a.wzid=b.id where rkdid in (@rkdid)";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query(sql, new { rkdid = rkdid }).ToList();
}
}
public object opSave(string id, string gysid, string gys, string rkje, string zt, string sign, string items, int rkrid, string rkr, int rklx, int sqdid, string last)
{
string errmsg = "";
string rkdh = getrkdh(out errmsg);
if (errmsg != "")
return new { State = 0, Message = "false" };
rkdModel model = new rkdModel();
model.rkdh = rkdh;
model.rkrid = rkrid;
model.rkr = rkr;
model.rksj = DateTime.Now;
model.gysid = Convert.ToInt32(gysid);
model.gys = gys;
model.rkje = Convert.ToDecimal(rkje);
model.zt = Convert.ToInt32(zt);
model.sign = Convert.ToInt32(sign);
model.rklx = rklx;
model.sqdid = sqdid;
string sql = @"INSERT INTO [dbo].[rkd]
([rkdh],[sqdid],[rklx],[rksj],[rkrid],[rkr],[gysid],[gys],[rkje],[zt],[sign])
VALUES
(@rkdh,@sqdid,@rklx,@rksj,@rkrid,@rkr,@gysid,@gys,@rkje,@zt,@sign)select SCOPE_IDENTITY()";
int rkdid = 0;
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
rkdid = conn.Query<int>(sql, model).FirstOrDefault();
}
catch (Exception ex)
{
return new { State = 0, Message = "false" };
}
}
if (sqdid != 0 && last == "1") //last=="1" 最终入库
{
//rkrid,rkr,rktime
string updatesqd = "update sqwzcg set rkrid=@rkrid,rkr=@rkr,rktime=@rktime,rknr=@rknr where id=@id";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
conn.Execute(updatesqd, new
{
rkrid = rkrid,
rkr = rkr,
rktime = DateTime.Now,
id = sqdid,
rknr = rkdid
});
}
}
List<rkdmxModel> models = new List<rkdmxModel>();
rkdmxModel m;
foreach (string item in items.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
string[] itemss = item.Split('|');
if (itemss.Length == 4)
{
m = new rkdmxModel();
m.rkdid = rkdid;
m.wzid = Convert.ToInt32(itemss[0]);
m.wzmc = itemss[1];
m.dj = Convert.ToDecimal(itemss[2]);
m.sl = Convert.ToDecimal(itemss[3]);
m.czsj = DateTime.Now;
m.sign = Convert.ToInt32(sign);
models.Add(m);
}
}
string sql2 = @"INSERT INTO [dbo].[rkdmx]
([rkdid],[wzid],[wzmc],[sl],[dj],[czsj],[sign])
VALUES
(@rkdid,@wzid,@wzmc,@sl,@dj,@czsj,@sign)";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
int result = conn.Execute(sql2, models);
if (result > 0)
{
//入库
rk(zt, sign, models);
return new { State = 1, Message = rkdh, tag = zt };
}
else
return new { State = 0, Message = "false" };
}
catch (Exception ex)
{
return new { State = 0, Message = "false" };
}
}
}
public object opSave2(string id, string gysid, string gys, string rkje, string zt, string sign, string items, int rkrid, string rkr)
{
rkdModel model = new rkdModel();
model.id = Convert.ToInt32(id);
model.gysid = Convert.ToInt32(gysid);
model.gys = gys;
model.zt = Convert.ToInt32(zt);
model.sign = Convert.ToInt32(sign);
model.rkje = Convert.ToDecimal(rkje);
string sql = @"UPDATE [dbo].[rkd]
SET [gysid] = @gysid,[gys] = @gys,[rkje] = @rkje,[zt] = @zt,[sign] = @sign
WHERE id=@id";
string sql3 = "delete from rkdmx where rkdid=@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 = "false" };
}
}
List<rkdmxModel> models = new List<rkdmxModel>();
rkdmxModel m;
foreach (string item in items.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
string[] itemss = item.Split('|');
if (itemss.Length == 4)
{
m = new rkdmxModel();
m.rkdid = Convert.ToInt32(id);
m.wzid = Convert.ToInt32(itemss[0]);
m.wzmc = itemss[1];
m.dj = Convert.ToDecimal(itemss[2]);
m.sl = Convert.ToDecimal(itemss[3]);
m.czsj = DateTime.Now;
m.sign = Convert.ToInt32(sign);
models.Add(m);
}
}
string sql2 = @"INSERT INTO [dbo].[rkdmx]
([rkdid],[wzid],[wzmc],[sl],[dj],[czsj],[sign])
VALUES
(@rkdid,@wzid,@wzmc,@sl,@dj,@czsj,@sign)";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
int result = conn.Execute(sql2, models);
if (result > 0)
{
//入库
rk(zt, sign, models);
sql = "select * from rkd where id=" + model.id;
var mmm = conn.Query<rkdModel>(sql).First();
return new { State = 1, Message = mmm.rkdh, tag = zt };
}
else
return new { State = 0, Message = "false" };
}
catch (Exception ex)
{
return new { State = 0, Message = "false" };
}
}
}
private void rk(string zt, string sign, List<rkdmxModel> models)
{
if (zt == "1") //入库状态是入库才操作 都是添加
{
List<kcModel> kcModels = new List<kcModel>();
kcModel kcModel;
foreach (rkdmxModel model in models)
{
kcModel = new kcModel();
kcModel.wzid = model.wzid;
kcModel.wzmc = model.wzmc;
kcModel.sl = model.sl;
kcModel.sign = Convert.ToInt32(sign);
kcModels.Add(kcModel);
}
new kcDal().saveList(kcModels);
}
}
//获取申请单号
private string getrkdh(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 rkdh from rkd where rkdh >= '" + start + "' and rkdh<= '" + 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 rkd where id=@id";
string sql2 = "delete from rkdmx where rkdid=@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.rkd where 1=1";
if (!string.IsNullOrEmpty(key))
{
sql += " and gysid = @key";
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.ExecuteScalar<int>(sql, new { key = key });
}
}
public List<rkdModel> getPage(int page, int pagesize, string key)
{
string sql = "select *,row_number() over(order by id desc) as rownum from rkd where 1=1";
if (!string.IsNullOrEmpty(key))
{
sql += " and gysid = @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.rkdModel>(sql, new { key = key }).ToList();
}
}
public int getCountLevel(string where)
{
string sql = "select count(1) from dbo.rkd";
if (!string.IsNullOrEmpty(where))
{
sql += " where " + where;
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.ExecuteScalar<int>(sql);
}
}
public List<rkdModel> getPageLevel(int page, int pagesize, string where)
{
string sql = "select *,row_number() over(order by id desc) as rownum from rkd";
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.rkdModel>(sql).ToList();
}
}
//报销使用
public int getCountLevelbx(string where)
{
string sql = "select count(1) from rkd a left join sqwzcg b on a.sqdid=b.id";
if (!string.IsNullOrEmpty(where))
{
sql += " where " + where;
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.ExecuteScalar<int>(sql);
}
}
public List<rkdModel> getPageLevelbx(int page, int pagesize, string where)
{
string sql = "select a.*,b.fydh,b.fydhs,b.fydh2,row_number() over(order by a.id desc) as rownum from rkd a left join sqwzcg b on a.sqdid=b.id";
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.rkdModel>(sql).ToList();
}
}
}
}