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