2021-01-19 00:51:02 +08:00

153 lines
5.7 KiB
C#

using Abp.Application.Services;
using Abp.Application.Services.Dto;
using Abp.Collections.Extensions;
using Abp.Domain.Repositories;
using MineTec.ProManager.BOMDetails.Dto;
using MineTec.ProManager.Commd;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MineTec.ProManager.BOMDetails
{
public class BOMDetailsAppService : AsyncCrudAppService<Entitys.Order.BOM.BOMDetails, BOMDetailsDto, Guid, PagedResultRequestDto,
CreateUpdateBOMDetailsDto, CreateUpdateBOMDetailsDto>, IBOMDetailsAppService
{
private readonly IRepository<Entitys.Order.BOM.BOMDetails, Guid> _BOMDetailsRepository;
public BOMDetailsAppService(IRepository<Entitys.Order.BOM.BOMDetails, Guid> repository, IRepository<Entitys.Order.BOM.BOMDetails, Guid> BOMDetailsRepository)
: base(repository)
{
_BOMDetailsRepository = BOMDetailsRepository;
}
public OutputBase CreateBOMDetails(CreateUpdateBOMDetailsDto input)
{
var result = new OutputBase();
try
{
var entity = _BOMDetailsRepository.GetAll().Where(a => a.CodeOrFigureNum == input.CodeOrFigureNum && a.IsDelete == 0)
.WhereIf(!string.IsNullOrEmpty(input.BOMID), t => t.BOMID == input.BOMID).FirstOrDefault();
if (entity == null)
{
_BOMDetailsRepository.InsertAndGetId(ObjectMapper.Map<Entitys.Order.BOM.BOMDetails>(input));
//base.CreateAsync(input);
result.code = 1;//成功
result.msg = "保存成功!";
}
else
{
result.code = 2;//重复
result.msg = "已经存在相同的BOM代号(图号),请修改!";
}
}
catch (Exception e)
{
result.code = 0;//失败
result.msg = e.Message;
}
return result;
}
public BOMDetailsOutPut GetAllBOMDetails(GetAllBOMDetails input)
{
var result = new BOMDetailsOutPut();
try
{
var query = base.CreateFilteredQuery(input).Where(t => t.IsDelete != 1)
.WhereIf(!string.IsNullOrEmpty(input.BOMID), t => t.BOMID == input.BOMID)
.WhereIf(!string.IsNullOrEmpty(input.CodeOrFigureNum), t => t.CodeOrFigureNum.Contains(input.CodeOrFigureNum))
.WhereIf(!string.IsNullOrEmpty(input.NameAndSpecs), t => t.NameAndSpecs.Contains(input.NameAndSpecs))
.WhereIf(!string.IsNullOrEmpty(input.Materials), t => t.Materials.Contains(input.Materials));
var bometailscount = query.Count();
var bometailslist = query.ToList();
var list = ObjectMapper.Map<List<BOMDetailsDto>>(bometailslist);
result.code = 0;
result.count = bometailscount;
result.data = list;
}
catch (Exception ex)
{
result.msg = ex.Message;
}
return result;
}
public OutputBase UpdateBOMDetails(UpdateBOMDetails input)
{
var result = new OutputBase();
try
{
var query = _BOMDetailsRepository.GetAll().FirstOrDefault(a => a.Id == input.id);
if (input.IsDelete == 1)
{
query.IsDelete = 1;
}
query.UpdateTime = DateTime.Now;
query.UpdateUserID = input.UpdateUserID;
query.UpdateUserName = input.UpdateUserName;
if (!string.IsNullOrEmpty(input.RelationshipID))
{
query.RelationshipID = input.RelationshipID;
}
if (!string.IsNullOrEmpty(input.RelationshipName))
{
query.RelationshipName = input.RelationshipName;
}
if (!string.IsNullOrEmpty(input.NameAndSpecs))
{
query.NameAndSpecs = input.NameAndSpecs;
}
if (!string.IsNullOrEmpty(input.Materials))
{
query.Materials = input.Materials;
}
if (!string.IsNullOrEmpty(input.SuppliersID))
{
query.SuppliersID = input.SuppliersID;
}
if (!string.IsNullOrEmpty(input.SuppliersName))
{
query.SuppliersName = input.SuppliersName;
}
query.AmountOfUnit = input.AmountOfUnit;
if (!string.IsNullOrEmpty(input.Unit))
{
query.Unit = input.Unit;
}
query.Price = input.Price;
query.Amount = input.Amount;
if (!string.IsNullOrEmpty(input.Borrowings))
{
query.Borrowings = input.Borrowings;
}
if (!string.IsNullOrEmpty(input.Remark))
{
query.Remark = input.Remark;
}
result.code = 1;//1成功0失败
}
catch (Exception ex)
{
result.code = 0;
result.msg = ex.Message;
}
return result;
}
}
}