303 lines
10 KiB
C#
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 };
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|