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

308 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using dccdc.Models;
using Dapper;
namespace dccdc.DAL
{
public class JmsqDal
{
/// <summary>
/// 减免申请操作
/// </summary>
/// <returns></returns>
public bool Add(JmsqModel model, List<JmmxModel> al)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = @"INSERT INTO [dbo].[jmsq]
([ymdjid]
,[xm]
,[sqrid]
,[sqrxm]
,[sqsj]
,[lx]
,[shsj]
,[shrid],jmlx)
VALUES
(@ymdjid
,@xm
,@sqrid
,@sqrxm
,@sqsj
,@lx
,@shsj
,@shrid,@jmlx) SELECT SCOPE_IDENTITY()";
int id = conn.ExecuteScalar<int>(sql, model);
List<JmmxModel> al1 = new List<JmmxModel>();
foreach (JmmxModel m in al)
{
m.jmsqid = id;
al1.Add(m);
}
string sql1 = @"INSERT INTO [dbo].[jmmx]
([jmsqid]
,[sfxmid]
,[jmsl]
,[jmdj],detailid)
VALUES
(@jmsqid
,@sfxmid
,@jmsl
,@jmdj,@detailid)";
int type = conn.Execute(sql1, al1);
return type != 0;
}
}
public object delJMSQ(int id, ERPUser user)
{
//throw new NotImplementedException();
string sql = "select * from jmsq where id=@id";
using (var conn = CommHelper.GetSqlConnection())
{
var jmsq = conn.Query<Models.JmsqModel>(sql, new { id }).FirstOrDefault();
if (jmsq == null)
{
return new
{
State = 0,
Message = "没有你要删除的数据!"
};
}
if (jmsq.sqrid != user.ID)
{
return new { State = 0, Message = "不能删除非自己的申请!" };
}
if (jmsq.lx != 0)
{
return new { State = 0, Message = "不能删除已经审核的数据!" };
}
sql = "delete from jmsq where id=@id";
int c = conn.Execute(sql, new { id });
if (c != 0)
{
return new { State = 1, Message = "删除成功!" };
}
else
{
return new { State = 0, Message = "没有要删除的数据!" };
}
}
}
/// <summary>
/// 获取申请列表
/// </summary>
/// <param name="lx"></param>
/// <param name="jmlx"></param>
/// <param name="xm"></param>
/// <returns></returns>
public List<JmsqModel> GetJmsqList(string lx, string jmlx, string xm, string sqsjb, string sqsje)
{
StringBuilder u = new StringBuilder("select a.*,b.chargeid from jmsq a join YMDJ b on a.ymdjid=b.id where 1=1");
if (jmlx != "-1")
{
u.Append(" and a.jmlx=@jmlx");
}
if (!string.IsNullOrEmpty(lx))
{
u.Append(" and a.lx=@lx");
}
if (!string.IsNullOrEmpty(xm))
{
u.Append(" and a.xm like @xm");
}
if (!string.IsNullOrEmpty(sqsjb))
{
u.Append(" and a.sqsj >'" + sqsjb + "'");
}
if (!string.IsNullOrEmpty(sqsje))
{
u.Append(" and a.sqsj <'" + sqsje + "'");
}
u.Append(" order by a.sqsj desc");
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<JmsqModel>(u.ToString(), new { lx, jmlx, xm = "%" + xm + "%" }).ToList();
}
}
public List<JmsqModel> GetJmsqList2(string xm, string shrid)
{
StringBuilder u = new StringBuilder("select a.*,b.chargeid from jmsq a join YMDJ b on a.ymdjid=b.id where 1=1");
if (!string.IsNullOrEmpty(xm))
{
u.Append(" and a.xm like @xm");
}
if (!string.IsNullOrEmpty(shrid))
{
u.Append(" and a.shrid = @shrid");
}
u.Append(" order by a.sqsj desc");
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<JmsqModel>(u.ToString(), new { xm = "%" + xm + "%", shrid = shrid }).ToList();
}
}
public DataTable expJMJL(string lx, string jmlx, string xm, string sqsjb, string sqsje)
{
StringBuilder u = new StringBuilder("select * from jmsq where 1=1");
DataTable dt = new DataTable();
dt.Columns.Add("申请人");
dt.Columns.Add("申请时间");
dt.Columns.Add("审核人");
dt.Columns.Add("审核时间");
dt.Columns.Add("减免内容");
dt.Columns.Add("减免金额");
if (jmlx != "-1")
{
u.Append(" and jmlx=@jmlx");
}
if (!string.IsNullOrEmpty(lx))
{
u.Append(" and lx=@lx");
}
if (!string.IsNullOrEmpty(xm))
{
u.Append(" and xm like @xm");
}
if (!string.IsNullOrEmpty(sqsjb))
{
u.Append(" and sqsj >'" + sqsjb + "'");
}
if (!string.IsNullOrEmpty(sqsje))
{
u.Append(" and sqsj <'" + sqsje + "'");
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
var list = conn.Query<JmsqModel>(u.ToString(), new { lx, jmlx, xm = "%" + xm + "%" }).ToList();
foreach (var v in list)
{
DataRow dr = dt.NewRow();
dr["申请人"] = v.sqrxm;
dr["申请时间"] = v.sqsj;
dr["审核人"] = v.shr;
dr["审核时间"] = v.shsj;
string sql = "select a.jmdj,a.jmsl,b.charge_project_name from jmmx a join charge_project_maintain b on a.sfxmid=b.id where a.jmsqid=" + v.id;
var jmmxlist = conn.Query(sql).ToList();
string jmnr = "";
decimal jmje = 0;
for (int i = 0; i < jmmxlist.Count; i++)
{
jmnr += jmmxlist[i].charge_project_name + ";";
jmje += jmmxlist[i].jmsl * jmmxlist[i].jmdj;
}
dr["减免内容"] = jmnr;
dr["减免金额"] = jmje;
dt.Rows.Add(dr);
}
}
return dt;
}
/// <summary>
/// 根据主键修改减免申请状态
/// </summary>
/// <param name="id"></param>
/// <param name="lx">0申请1通过2未通过</param>
/// <returns></returns>
public Models.DTO.ymshjg Updatelx(string id, string lx, ERPUser erpUser)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = @"update jmsq set lx=@lx,shsj=convert(varchar(50),getdate(),121),shrid=@shrid,shr=@shr where id=@id";
Models.DTO.ymshjg ym = new Models.DTO.ymshjg();
if (lx == "1")
{
string sql1 = "";
sql1 = "select * from jmsq where id=@id";
var jmsq = conn.Query<Models.JmsqModel>(sql1, new { id = id }).FirstOrDefault();
ym.jz = jmsq.xm;
sql1 = "select sum(jmsl*jmdj) from jmmx where jmsqid=@id";
decimal jmje = conn.ExecuteScalar<decimal>(sql1, new { id });
sql1 = " select money from charge where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id and q.id=@id) ";
decimal yjje = conn.ExecuteScalar<decimal>(sql1, new { id });
ym.yj = yjje.ToString();
if (jmsq.jmlx == 1)
{
sql1 = @"select count(1) from jmsq q inner join YMDJ j on q.ymdjid=j.id join charge_detail c on c.chargeid=j.chargeid
where q.id =@id";
int jydjc = conn.ExecuteScalar<int>(sql1, new { id = id });
sql1 = " select count(1) from jmmx where jmsqid = @id";
int jmc = conn.ExecuteScalar<int>(sql1, new { id = id });
if (jmc == jydjc)
{
sql1 = "update charge set status='免费' where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id where q.id=@id)";
conn.Execute(sql1, new { id });
sql1 = "update ymdj set jfzt='已缴费' where id=@id";
conn.Execute(sql1, new { id = jmsq.ymdjid });
ym.sj = "0";
}
else
{
sql1 = "select * from jmmx where jmsqid=@id";
List<Models.JmmxModel> jmmxs = conn.Query<Models.JmmxModel>(sql1, new { id = id }).ToList();
var jehj = 0.0m;
foreach (var mx in jmmxs)
{
sql1 = "delete from charge_detail where id=@id";
int c = conn.Execute(sql1, new { id = mx.detailid });
if (c > 0)
{
jehj += mx.jmdj * mx.jmsl;
}
}
sql1 = "update charge set status='未缴费',money=money-@money where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id where q.id=@id)";
conn.Execute(sql1, new { id, money = jehj });
ym.sj = (yjje - jmje).ToString();
}
}
else
{
sql1 = "select * from jmmx where jmsqid=@id";
List<Models.JmmxModel> jmmxs = conn.Query<Models.JmmxModel>(sql1, new { id = id }).ToList();
var jehj = 0.0m;
foreach (var mx in jmmxs)
{
//jehj += mx.jmdj * mx.jmsl;
sql1 = "delete from charge_detail where id=@id";
int c = conn.Execute(sql1, new { id = mx.detailid });
if (c > 0)
{
jehj += mx.jmdj * mx.jmsl;
}
}
sql1 = "update charge set status='未缴费',money=money-@money where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id where q.id=@id)";
conn.Execute(sql1, new { id, money = jehj });
ym.sj = (yjje - jmje).ToString();
}
}
else if (lx == "2")
{
string sql1 =
"update charge set status='未缴费' where id = ( select j.chargeid from jmsq q inner join YMDJ j on q.ymdjid=j.id where q.id=@id)";
conn.Execute(sql1, new { id });
ym.jz = "";
}
conn.Execute(sql, new { id, lx, shrid = erpUser.ID, shr = erpUser.TrueName });
return ym;
}
}
}
}