using AutoMapper;
|
using DTO;
|
using IServices;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using zhengcaioa.Models;
|
|
namespace Services
|
{
|
public class SysCodeService: ISysCodeService
|
{
|
private readonly zhengcaioaContext _context;
|
private readonly IMapper _mapper;
|
public SysCodeService(zhengcaioaContext context, IMapper mapper)
|
{
|
_context = context;
|
_mapper = mapper;
|
}
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="searchEntity">查询分页实体</param>
|
/// <returns></returns>
|
public ResultDataEntity<SysCodeEntity> SearchSysCodePaging(SysCodeSearchEntity searchEntity)
|
{
|
ResultDataEntity<SysCodeEntity> data = new ResultDataEntity<SysCodeEntity>();
|
|
var listCode = _context.SysCodes.Where(s =>
|
(searchEntity.CodeTable == "" ? true : s.CodeTable == searchEntity.CodeTable) &&
|
(searchEntity.CodeField == "" ? true : s.CodeField == searchEntity.CodeField) &&
|
(searchEntity.Comments == "" ? true : s.Comments.Contains(searchEntity.Comments)) &&
|
(searchEntity.RecStatus == "" ? s.RecStatus == "A" : s.RecStatus == searchEntity.RecStatus)
|
).ToList();
|
//if (searchEntity.totalrows == 0)
|
//{
|
//获取总数
|
searchEntity.totalrows = listCode.Count;
|
//}
|
var list = listCode.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
|
var listSysCode = new List<SysCodeEntity>();
|
if (list.Count > 0)
|
{
|
list.ForEach(l =>
|
{
|
listSysCode.Add(new SysCodeEntity()
|
{
|
Id = l.Id,
|
CodeField = l.CodeField,
|
CodeTable = l.CodeTable,
|
Comments = l.Comments,
|
Creater = l.Creater,
|
Createtime = l.Createtime,
|
RecStatus = l.RecStatus,
|
Modifier = l.Modifier,
|
Modifytime = l.Modifytime,
|
CreatetimeStr = l.Createtime.ToString(),
|
RecStatusName = l.RecStatus.ToString().Equals("A") ? "启用" : "停用",
|
Url = "/SysCode/Edit?id=" + l.Id
|
});
|
});
|
}
|
data.LoadData(searchEntity, listSysCode);
|
|
return data;
|
|
|
}
|
/// <summary>
|
/// 按照编号查询数据
|
/// </summary>
|
/// <param name="key_id">需要查询key_id</param>
|
/// <returns></returns>
|
public SysCodeInfoEntity GetSysCodeInfo(string key_id)
|
{
|
var infoEntity = new SysCodeInfoEntity();
|
infoEntity.Result = true;
|
//主表数据查询
|
|
var model = _context.SysCodes.Find(key_id);
|
if (model.RecStatus != "A")
|
{
|
model = new SysCode();
|
}
|
if (model == null || model.Id == null || model.Id == "")
|
{
|
infoEntity.Result = true;
|
infoEntity.Message = "无法查询到数据";
|
}
|
else
|
{
|
infoEntity.SysCode = new SysCodeEntity()
|
{
|
Id = model.Id,
|
CodeField = model.CodeField,
|
CodeTable = model.CodeTable,
|
Comments = model.Comments,
|
Creater = model.Creater,
|
Createtime = model.Createtime,
|
RecStatus = model.RecStatus,
|
Modifier = model.Modifier,
|
Modifytime = model.Modifytime,
|
CreatetimeStr = model.Createtime.ToString(),
|
RecStatusName = model.RecStatus.ToString().Equals("A") ? "启用" : "停用",
|
Url = "/SysCode/Edit?id=" + model.Id
|
};
|
var listdtl = _context.SysCodeDtls.Where(d => d.CodeId == key_id).OrderBy(x=>x.Sort).ToList();
|
var alldtl = new List<SysCodeDtlEntity>();
|
if (listdtl.Count > 0)
|
{
|
listdtl.ForEach(l =>
|
{
|
alldtl.Add(new SysCodeDtlEntity()
|
{
|
Id = l.Id,
|
CodeId = l.CodeId,
|
CodeSn = l.CodeSn,
|
Comments = l.Comments,
|
Contents = l.Contents,
|
Sort = l.Sort,
|
RecStatus = l.RecStatus,
|
Creater = l.Creater,
|
Createtime = l.Createtime,
|
Modifier = l.Modifier,
|
Modifytime = l.Modifytime
|
});
|
});
|
}
|
infoEntity.SysCodeDtlList = alldtl.Where(d => d.RecStatus == "A").ToList(); //隐码明细表
|
//infoEntity.DellDtlList = alldtl.Where(d => d.RecStatus == "D").ToList(); //隐码明细表
|
}
|
|
|
|
|
return infoEntity;
|
}
|
|
public List<CodeDataEntity> GetCodeDataAll()
|
{
|
var listCode = new List<CodeDataEntity>();
|
|
listCode = (from a in _context.SysCodeDtls
|
join b in _context.SysCodes
|
on a.CodeId equals b.Id
|
where a.RecStatus == "A"
|
&& b.RecStatus == "A"
|
select new CodeDataEntity()
|
{
|
CodeId = b.Id,
|
CodeTable = b.CodeTable,
|
CodeField = b.CodeField,
|
CodeSn = a.CodeSn,
|
Comments = a.Comments,
|
Contents = a.Contents,
|
RecStatus = a.RecStatus,
|
Sort = a.Sort
|
}
|
).ToList();
|
|
return listCode;
|
}
|
|
public string GetComments(string codeTable, string codeField, string codeSn)
|
{
|
string result = string.Empty;
|
|
var sysCode = _context.SysCodes.FirstOrDefault(x => x.CodeTable == codeTable && x.CodeField == codeField);
|
if (sysCode != null)
|
{
|
var sysCodeDtl = _context.SysCodeDtls.FirstOrDefault(x => x.CodeId == sysCode.Id && x.CodeSn == codeSn);
|
result = sysCodeDtl?.Comments;
|
}
|
|
|
return result;
|
}
|
|
|
/// <summary>
|
/// 保存
|
/// </summary>
|
/// <param name="entity">主键ID为0时新增否则修改</param>
|
/// <returns>返回执行结果</returns>
|
public ResultEntity SaveSysCode(SysCodeInfoEntity Entity)
|
{
|
var resultEntity = new ResultEntity();
|
var model = new SysCode()
|
{
|
Id = Entity.SysCode.Id,
|
CodeTable = Entity.SysCode.CodeTable + "",
|
CodeField = Entity.SysCode.CodeField + "",
|
Comments = Entity.SysCode.Comments + "",
|
RecStatus = Entity.SysCode.RecStatus + "",
|
Creater = Entity.SysCode.Creater,
|
Createtime = Entity.SysCode.Createtime,
|
Modifier = Entity.SysCode.Modifier,
|
Modifytime = Entity.SysCode.Modifytime
|
};
|
|
//事务
|
resultEntity.Result = true;
|
try
|
{
|
|
if (!string.IsNullOrEmpty(model.Id))
|
{
|
var mModel = _context.SysCodes.Find(model.Id);
|
if (mModel != null)
|
{
|
mModel.CodeField = model.CodeField;
|
mModel.CodeTable = model.CodeTable;
|
mModel.Comments = model.Comments;
|
mModel.RecStatus = model.RecStatus;
|
mModel.Modifier = model.Modifier;
|
mModel.Modifytime = model.Modifytime;
|
if (Entity.SysCodeDtlList.Count > 0)
|
{
|
Entity.SysCodeDtlList.ForEach(s =>
|
{
|
if (string.IsNullOrEmpty(s.Id))
|
{
|
_context.SysCodeDtls.Add(new SysCodeDtl()
|
{
|
Id = Guid.NewGuid().ToString(),
|
CodeSn = s.CodeSn + "",
|
CodeId = model.Id,
|
Comments = s.Comments + "",
|
Contents = s.Contents + "",
|
RoleId = "",
|
Sort = s.Sort,
|
RecStatus = "A",
|
Creater = model.Modifier,
|
Createtime = model.Modifytime,
|
Modifier = model.Modifier,
|
Modifytime = model.Modifytime
|
});
|
}
|
else
|
{
|
var mDt = _context.SysCodeDtls.Find(s.Id);
|
if (mDt != null)
|
{
|
mDt.CodeSn = s.CodeSn;
|
mDt.Comments = s.Comments;
|
mDt.Contents = s.Contents;
|
mDt.Modifier = s.Modifier;
|
mDt.Modifytime = s.Modifytime;
|
mDt.Sort = s.Sort;
|
}
|
}
|
|
});
|
}
|
}
|
|
}
|
else
|
{
|
model.Id = Guid.NewGuid().ToString();
|
_context.SysCodes.Add(model);
|
|
if (Entity.SysCodeDtlList.Count > 0)
|
{
|
Entity.SysCodeDtlList.ForEach(s =>
|
{
|
_context.SysCodeDtls.Add(new SysCodeDtl()
|
{
|
Id = Guid.NewGuid().ToString(),
|
CodeSn = s.CodeSn + "",
|
RoleId = "",
|
CodeId = model.Id,
|
Comments = s.Comments + "",
|
Contents = s.Contents + "",
|
Sort = s.Sort,
|
RecStatus = "A",
|
Creater = model.Modifier,
|
Createtime = model.Modifytime,
|
Modifier = model.Modifier,
|
Modifytime = model.Modifytime
|
});
|
});
|
}
|
}
|
_context.SaveChanges();
|
|
}
|
catch (Exception ex)
|
{
|
resultEntity.Message = "信息保存失败,请联系管理人员。" + ex.Message; ;
|
resultEntity.Result = false;
|
|
}
|
|
return resultEntity;
|
}
|
|
|
|
/// <summary>
|
/// 删除明细
|
/// </summary>
|
/// <param name="id">主id</param>
|
/// <param name="dtlid">明细id</param>
|
/// <param name="userid">用户</param>
|
/// <returns></returns>
|
public ResultEntity ModifyDtlStatus(string id, string dtlid, string userid)
|
{
|
ResultEntity result = new ResultEntity();
|
result.Result = true;
|
|
//if (id.Equals(-99))
|
//{
|
// result.Result = false;
|
// result.Message = "该条明细数据不能删除";
|
// return result;
|
//}
|
try
|
{
|
|
string edit = "D";
|
var data = _context.SysCodeDtls.Find(dtlid);
|
if (data == null)
|
{
|
return new ResultEntity { Result = false, Message = "未找到需要操作的数据" };
|
}
|
if (data.RecStatus == "D")
|
{
|
edit = "A";
|
}
|
data.RecStatus = edit;
|
data.Modifier = userid;
|
data.Modifytime = DateTime.Now;
|
_context.SaveChanges();
|
|
}
|
catch (Exception ex)
|
{
|
result.Result = false;
|
result.Message = ex.Message;
|
}
|
|
return result;
|
}
|
|
/// <summary>
|
/// 修改主表状态
|
/// </summary>
|
/// <param name="id">主id</param>
|
/// <param name="userid">用户</param>
|
/// <returns></returns>
|
public ResultEntity ModifyStatus(string id, string userid)
|
{
|
ResultEntity result = new ResultEntity();
|
result.Result = true;
|
|
var model = _context.SysCodes.Find(id);
|
if (model != null)
|
{
|
model.RecStatus = "D";
|
model.Modifier = userid;
|
model.Modifytime = DateTime.Now;
|
_context.SaveChanges();
|
}
|
|
return result;
|
}
|
/// <summary>
|
/// 获取隐码所有列表
|
/// </summary>
|
/// <param name="table">table</param>
|
/// <param name="fild">fild</param>
|
/// <returns></returns>
|
public List<SysCodeDtl> GetSysCodeList(string table, string fild)
|
{
|
List<SysCodeDtl> dtlList = new List<SysCodeDtl>();
|
|
var model = _context.SysCodes.FirstOrDefault(s => s.CodeTable == table && s.CodeField == fild);
|
if (model != null)
|
{
|
dtlList = _context.SysCodeDtls.Where(s => s.CodeId == model.Id).ToList();
|
}
|
|
return dtlList;
|
}
|
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="searchEntity">查询分页实体</param>
|
/// <returns></returns>
|
public ResultDataEntity<SysCodeDtlEntity> SearchSysCodeDtlPaging(SysCodeDtlSearchEntity searchEntity)
|
{
|
ResultDataEntity<SysCodeDtlEntity> data = new ResultDataEntity<SysCodeDtlEntity>();
|
|
var listCode = (from a in _context.SysCodeDtls.Where(x => x.RecStatus == "A")
|
join b in _context.SysCodes.Where(x=>x.RecStatus=="A")
|
on a.CodeId equals b.Id
|
where b.CodeTable == searchEntity.CodeTable && b.CodeField == searchEntity.CodeField &&
|
(string.IsNullOrWhiteSpace(searchEntity.Comments) ? true : a.Comments.Contains(searchEntity.Comments)) &&
|
(string.IsNullOrWhiteSpace(searchEntity.CodeSn) ? true : a.CodeSn.Contains(searchEntity.CodeSn)) &&
|
(string.IsNullOrWhiteSpace(searchEntity.Contents) ? true : a.Contents.Contains(searchEntity.Contents)) &&
|
(string.IsNullOrWhiteSpace(searchEntity.WentiId) ? true : a.Contents == searchEntity.WentiId) &&
|
(string.IsNullOrWhiteSpace(searchEntity.Classify1) ? true : a.Classify1.Contains(searchEntity.Classify1))
|
select a
|
).OrderBy(x=>x.Sort).ToList();
|
|
if (!string.IsNullOrEmpty(searchEntity.Sort))
|
{
|
listCode = listCode.OrderBy(x => x.CodeSn).ToList();
|
}
|
|
//if (searchEntity.totalrows == 0)
|
//{
|
//获取总数
|
searchEntity.totalrows = listCode.Count;
|
//}
|
var list = listCode.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
|
var listSysCode = new List<SysCodeDtlEntity>();
|
|
|
|
if (list.Count > 0)
|
{
|
list.ForEach(l =>
|
{
|
listSysCode.Add(new SysCodeDtlEntity()
|
{
|
Id = l.Id,
|
CodeSn = l.CodeSn,
|
CodeId = l.CodeId,
|
Comments = l.Comments,
|
Contents = l.Contents,
|
Sort = l.Sort,
|
Classify1 = l.Classify1,
|
Creater = l.Creater,
|
Createtime = l.Createtime,
|
RecStatus = l.RecStatus,
|
Modifier = l.Modifier,
|
Modifytime = l.Modifytime,
|
CreatetimeStr = l.Createtime.ToString(),
|
RecStatusName = l.RecStatus.ToString().Equals("A") ? "启用" : "停用",
|
});
|
});
|
}
|
data.LoadData(searchEntity, listSysCode);
|
|
return data;
|
|
|
}
|
|
|
public SysCodeDtlEntity GetSysCodeDtlInfo(string key_id, string CodeTable, string CodeField, string WentiId = "")
|
{
|
var alldtl = new SysCodeDtlEntity();
|
|
|
var model = _context.SysCodeDtls.Find(key_id);
|
|
|
if (model != null)
|
{
|
alldtl.Id = model.Id;
|
alldtl.CodeId = model.CodeId;
|
alldtl.CodeSn = model.CodeSn;
|
alldtl.Comments = model.Comments;
|
alldtl.Contents = model.Contents;
|
alldtl.Sort = model.Sort;
|
alldtl.RecStatus = model.RecStatus;
|
alldtl.Creater = model.Creater;
|
alldtl.Createtime = model.Createtime;
|
alldtl.Modifier = model.Modifier;
|
alldtl.Modifytime = model.Modifytime;
|
alldtl.Classify1 = model.Classify1;
|
alldtl.CreatetimeStr = model.Createtime.ToString();
|
alldtl.RecStatusName = model.RecStatus.ToString().Equals("A") ? "启用" : "停用";
|
}
|
else
|
{
|
var syscode = _context.SysCodes.Where(x => x.RecStatus == "A" && x.CodeTable == CodeTable && x.CodeField == CodeField).FirstOrDefault();
|
if (syscode != null)
|
{
|
alldtl.Contents = WentiId;
|
alldtl.CodeId = syscode.Id;
|
}
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
return alldtl;
|
}
|
|
public ResultEntity SaveSysCodeDtl(SysCodeDtlEntity Entity)
|
{
|
var resultEntity = new ResultEntity();
|
|
|
//事务
|
resultEntity.Result = true;
|
try
|
{
|
if (!string.IsNullOrEmpty(Entity.CodeSn))
|
{
|
var list = _context.SysCodeDtls.Where(e => e.CodeSn == Entity.CodeSn && e.RecStatus == "A" && e.Id != Entity.Id && e.CodeId == Entity.CodeId).ToList();
|
if (list.Count > 0)
|
{
|
resultEntity.Result = false;
|
resultEntity.Message = "该编码已经存在";
|
return resultEntity;
|
}
|
}
|
|
|
if (!string.IsNullOrEmpty(Entity.Id))
|
{
|
var mModel = _context.SysCodeDtls.Find(Entity.Id);
|
if (mModel != null)
|
{
|
mModel.CodeSn = Entity.CodeSn + "";
|
mModel.RoleId = "";
|
mModel.CodeId = Entity.CodeId;
|
mModel.Comments = Entity.Comments + "";
|
mModel.Contents = Entity.Contents + "";
|
mModel.Sort = Entity.Sort;
|
mModel.RecStatus = "A";
|
mModel.Classify1 = Entity.Classify1;
|
|
mModel.Modifier = Entity.Modifier;
|
mModel.Modifytime = Entity.Modifytime;
|
|
|
|
|
|
|
}
|
|
}
|
else
|
{
|
|
_context.SysCodeDtls.Add(new SysCodeDtl()
|
{
|
Id = Guid.NewGuid().ToString(),
|
CodeSn = Entity.CodeSn + "",
|
RoleId = "",
|
CodeId = Entity.CodeId,
|
Comments = Entity.Comments + "",
|
Contents = Entity.Contents + "",
|
Sort = Entity.Sort,
|
RecStatus = "A",
|
Creater = Entity.Modifier,
|
Createtime = Entity.Modifytime,
|
Modifier = Entity.Modifier,
|
Modifytime = Entity.Modifytime,
|
Classify1 = Entity.Classify1,
|
});
|
|
|
}
|
_context.SaveChanges();
|
|
}
|
catch (Exception ex)
|
{
|
resultEntity.Message = "信息保存失败,请联系管理人员。" + ex.Message; ;
|
resultEntity.Result = false;
|
|
}
|
|
return resultEntity;
|
}
|
}
|
}
|