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(sql); } } public List 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(sql).ToList(); } } public List 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(sql).ToList(); } } public List 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(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(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(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(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(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(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 = conn.Query(sqlmx).ToList(); double totalTF = 0; List crdms = new List(); 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 }; } } } } }