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 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(sql, new { @id = id }).ToList(); } } public List 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(sql, new { @id = id, @zt = zt }).ToList(); } } public List 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(sql).ToList(); } } public List 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(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 getRudByRkdh(string rkdh) { string sql = "select * from rkd where rkdh in (@rkdh) and zt=1"; using (IDbConnection conn = CommHelper.GetSqlConnection()) { return conn.Query(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(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 models = new List(); 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 models = new List(); 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(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 models) { if (zt == "1") //入库状态是入库才操作 都是添加 { List kcModels = new List(); 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(sql, new { key = key }); } } public List 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(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(sql); } } public List 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(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(sql); } } public List 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(sql).ToList(); } } } }