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

303 lines
10 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using dccdc.Models;
using Dapper;
using dccdc.Models.DTO;
namespace dccdc.DAL
{
public class ymzsDal
{
public int getCount()
{
string sql = "select count(1) from dbo.ymzs where 1=1 ";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.ExecuteScalar<int>(sql);
}
}
public List<ymzs> getAllList()
{
//throw new NotImplementedException();
string sql = "select *,row_number() over(order by id) as rownum from ymzs";
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<Models.ymzs>(sql).ToList();
}
}
public List<ymzs> getList(int page, int pagesize)
{
//throw new NotImplementedException();
string sql = "select *,row_number() over(order by id) as rownum from ymzs where 1=1";
sql = "select * from (" + sql + ") t where t.rownum>(" + page + "-1)*" + pagesize + " and rownum<=" + page + "*" + pagesize;
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
return conn.Query<Models.ymzs>(sql).ToList();
}
}
public List<YMZSJL> getZSList(int page, int pagesize, ymzscxm cx)
{
//throw new NotImplementedException();
string sql = @"select a.zsrxm zsr,a.zssj,c.name bzsr,c.djrxm djr,c.djsj,d.name ymmc,1 zssl,row_number() over(order by a.id) as rownum from
ymzs a join YMDJMX b on a.djmxid=b.id
join YMDJ c on b.ymdjbid=c.id
join vaccine d on d.id=a.ymid";
if (!string.IsNullOrEmpty(cx.zsr))
{
sql += " and c.djrxm like @djr";
}
if (cx.djsjb != null)
{
sql += " and c.djsj>=@djsjb";
}
if (cx.djsje != null)
{
sql += " and c.djsj<@djsje";
}
if (!string.IsNullOrEmpty(cx.zsr))
{
sql += " and a.zsrxm like @zsr";
}
if (!string.IsNullOrEmpty(cx.bzsr))
{
sql += " and c.name like @bzsr";
}
if (cx.zssjb != null)
{
sql += " and a.zssj>=@zssjb";
}
if (cx.zssje != null)
{
sql += " and a.zssj<@zssje";
}
if(!string.IsNullOrEmpty(cx.ymmc))
{
sql += " and d.name like @ymmc";
}
cx.bzsr = "%" + cx.bzsr + "%";
cx.zsr = "%" + cx.zsr + "%";
cx.djr = "%" + cx.djr + "%";
cx.ymmc = "%"+cx.ymmc+"%";
cx.djsje = (cx.djsje ?? DateTime.Now).AddDays(1);
cx.zssje = (cx.zssje ?? DateTime.Now).AddDays(1);
sql = "select * from (" + sql + ") t where t.rownum>(" + page + "-1)*" + pagesize + " and rownum<=" + page + "*" + pagesize;
using (var conn = CommHelper.GetSqlConnection())
{
return conn.Query<Models.DTO.YMZSJL>(sql, cx).ToList();
}
}
public int getZSCount(ymzscxm cx)
{
//throw new NotImplementedException();
string sql = @"select count(1) from
ymzs a join YMDJMX b on a.djmxid=b.id
join YMDJ c on b.ymdjbid=c.id
join vaccine d on d.id=a.ymid where 1=1";
if(!string.IsNullOrEmpty(cx.djr))
{
sql += " and c.djrxm like @djr";
}
if(cx.djsjb!=null)
{
sql += " and c.djsj>=@djsjb";
}
if(cx.djsje!=null)
{
sql += " and c.djsj<@djsje";
}
if(!string.IsNullOrEmpty(cx.zsr))
{
sql += " and a.zsrxm like @zsr";
}
if(!string.IsNullOrEmpty(cx.bzsr))
{
sql += " and c.name like @bzsr";
}
if(cx.zssjb!=null)
{
sql += " and a.zssj>=@zssjb";
}
if(cx.zssje!=null)
{
sql += " and a.zssj<@zssje";
}
if (!string.IsNullOrEmpty(cx.ymmc))
{
sql += " and d.name like @ymmc";
}
cx.bzsr = "%"+cx.bzsr+"%";
cx.zsr = "%"+cx.zsr+"%";
cx.djr = "%"+cx.djr + "%";
cx.ymmc = "%" + cx.ymmc + "%";
cx.djsje = (cx.djsje ?? DateTime.Now).AddDays(1);
cx.zssje = (cx.zssje ?? DateTime.Now).AddDays(1);
using (var conn = CommHelper.GetSqlConnection())
{
return conn.ExecuteScalar<int>(sql, cx);
}
}
public OperationResult zsym(string id, ERPUser user)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
YMDJMXDal djmxDal = new YMDJMXDal();
YMDJMX ymdjmx = djmxDal.getById(id);
string sql = "select count(1) from ymzs where djmxid=" + id;
var c = conn.ExecuteScalar<int>(sql);
while (c < int.Parse(ymdjmx.ymsl))
{
ymdjmx.zssl = ymdjmx.zssl + 1;
djmxDal.save(ymdjmx);
ymzs ymzs = new ymzs();
ymzs.ymdjid = ymdjmx.ymdjbid;
ymzs.ymid = ymdjmx.ymid;
ymzs.zssj = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
ymzs.zsrid = user.ID.ToString();
ymzs.djmxid = id;
ymzs.zsrxm = user.TrueName;
this.save(ymzs);
c++;
}
sql = "select sum(zssl)-sum(convert(int,ymsl)) from YMDJMX where ymdjbid =" + ymdjmx.ymdjbid;
int result = -1;
result = conn.ExecuteScalar<int>(sql);
if (result >= 0)
{
YMDJDal ymdjDal = new YMDJDal();
OperationResult or = ymdjDal.updateZS(ymdjmx.ymdjbid);
if (or.State != 1)
{
return new OperationResult { State = 0, Message = "注射失败!" };
}
}
}
return new OperationResult { State = 1, Message = "注射成功!" };
}
public OperationResult tfsq(string id, ERPUser user)
{
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
string sql = "select * from YMDJ where id = " + id;
YMDJ ymdj = conn.Query<YMDJ>(sql).FirstOrDefault();
charge_refundModel crm = new charge_refundModel();
string max = "";
string dateStr = DateTime.Now.ToString("yyyyMMdd");
string getmaxsql = "select max(sqdid) from charge_refund where sqdid like '" + dateStr + "%'";
string nowMax = conn.ExecuteScalar<string>(getmaxsql);
if (string.IsNullOrEmpty(nowMax))
{
max = dateStr + "0001";
}
else
{
max = (Int64.Parse(nowMax) + 1).ToString();
}
crm.sqdid = max;
crm.sqrid = user.ID;
crm.sqrxm = user.TrueName;
crm.sqsj = DateTime.Now;
crm.sfbid = Convert.ToInt32(ymdj.chargeid);
crm.tfzt = "申请";
crm.tfshsj = DateTime.Now;
crm.tfsj = DateTime.Now;
crm.jfrxm = ymdj.djrxm;
string sqlmx = "select * from YMDJMX where zssl < ymsl and ymdjbid = " + ymdj.id;
List<YMDJMX> ymdjmx = conn.Query<YMDJMX>(sqlmx).ToList();
double totalTF = 0;
List<charge_refund_detailModel> crdms = new List<charge_refund_detailModel>();
YMDJMXDal ymdjmxDal = new YMDJMXDal();
for (int i = 0; i < ymdjmx.Count(); i++)
{
totalTF = totalTF + ((Convert.ToInt32(ymdjmx[i].ymsl) - ymdjmx[i].zssl) * ymdjmx[i].ymdj);
charge_refund_detailModel crdm = new charge_refund_detailModel();
crdm.ymsl = (Convert.ToInt32(ymdjmx[i].ymsl) - ymdjmx[i].zssl);
crdm.ymdj = Convert.ToDecimal(ymdjmx[i].ymdj);
crdm.ymje = Convert.ToDecimal((Convert.ToInt32(ymdjmx[i].ymsl) - ymdjmx[i].zssl) * ymdjmx[i].ymdj);
ymdjmx[i].zssl = Convert.ToInt32(ymdjmx[i].ymsl);
ymdjmxDal.save(ymdjmx[i]);
crdms.Add(crdm);
}
crm.tfje = Convert.ToDecimal(totalTF);
charge_refundDal crd = new charge_refundDal();
int crmId = crd.saveReturnId(crm);
for (int i = 0; i < crdms.Count(); i++)
{
crdms[i].tfsqid = crmId.ToString();
}
charge_refund_detailDal crdd = new charge_refund_detailDal();
crdd.save(crdms);
}
return new OperationResult { State = 1, Message = "退费申请成功!" };
}
public object save(ymzs cpm)
{
//throw new NotImplementedException();
string sql = "";
if (cpm.id == 0)
{
sql = @"INSERT INTO [dbo].[ymzs]
([ymdjid],
[ymid],
[djmxid],
[zssj],
[zsrid],
[zsrxm]
)
VALUES
(@ymdjid,
@ymid,
@djmxid,
@zssj,
@zsrid,
@zsrxm
)
";
}
else
{
sql = @"UPDATE [dbo].[ymzs]
SET
[ymdjid]=@ymdjid,
[ymid]=@ymid,
[djmxid]=@djmxid,
[zssj]=@zssj,
[zsrid]=@zsrid,
[zsrxm]=@zsrxm
WHERE id=@id
";
}
using (IDbConnection conn = CommHelper.GetSqlConnection())
{
try
{
int c = conn.Execute(sql, cpm);
if (c > 0)
{
return new { State = 1, Message = "保存成功!" };
}
else
{
return new { State = 0, Message = "操作失败,请联系管理员!" };
}
}
catch (Exception ex)
{
return new { State = 0, Message = ex.Message };
}
}
}
}
}