using OfficeOpenXml.Style;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_ISerialPortRepository;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_Core.BaseServices;
|
using WIDESEAWCS_Core.Helper;
|
using WIDESEAWCS_ITaskInfoService;
|
using WIDESEAWCS_Model.Models;
|
|
namespace WIDESEAWCS_TaskInfoService
|
{
|
public class ArticleInfomServer : ServiceBase<Dt_ArticleInfom, IArticleInfomRepository>, IArticleInfomServer
|
{
|
private readonly IProcessRepository _processRepository;
|
private readonly IPutakeRepository _ptakeRepository;
|
public ArticleInfomServer(IArticleInfomRepository BaseDal, IProcessRepository processRepository, IPutakeRepository ptakeRepository) : base(BaseDal)
|
{
|
_processRepository = processRepository;
|
_ptakeRepository = ptakeRepository;
|
}
|
public override PageGridData<Dt_ArticleInfom> GetPageData(PageDataOptions options)
|
{
|
OrderByParameters = new Dictionary<string, SqlSugar.OrderByType> {
|
{ nameof(Dt_ArticleInfom.ID),SqlSugar.OrderByType.Asc },
|
};
|
return base.GetPageData(options);
|
}
|
|
|
|
//public WebResponseContent PutPossorArticl()
|
//{
|
// try
|
// {
|
// var articl = BaseDal.QueryData();
|
// var process = _processRepository.QueryData();
|
// var putake = _ptakeRepository.QueryData();
|
|
// // 先获取基础查询结果
|
// var query = from a in articl
|
// from p in process
|
// from t in putake
|
// where (a.ID == p.ArticleTowid || a.ID == p.ArticleOneid)
|
// && (t.Pustatus == 0 || t.Pustatus == 2)
|
// orderby p.CraftType
|
// select new
|
// {
|
// t.Njtakeid,
|
// t.Pustatus,
|
// t.Grouptype,
|
// a.ArticleName,
|
// a.ArticleType
|
// };
|
|
// // 按 ArticleType 和 Pustatus 组合去重
|
// var result = query
|
// .GroupBy(x => new { x.ArticleType, x.Pustatus }) // 按类型和状态分组
|
// .Select(g => g.First()) // 每组取第一条
|
// .OrderBy(x => x.Grouptype) // 可以保持原有排序
|
// .ToList();
|
// return new WebResponseContent { Status = true, Data = result };
|
// }
|
// catch (Exception ex)
|
// {
|
|
// return new WebResponseContent { Status = false, Message = "错误:" + ex.Message };
|
// }
|
|
//}
|
public WebResponseContent PutPossorArticl()
|
{
|
try
|
{
|
var articl = BaseDal.QueryData();
|
var process = _processRepository.QueryData();
|
var putake = _ptakeRepository.QueryData();
|
|
// 先获取基础查询结果
|
var query = (
|
from t in putake
|
join p in process on t.Grouptype equals p.CraftType
|
join a in articl on p.ArticleOneid equals a.ID
|
where t.Pustatus == 0 || t.Pustatus == 2
|
select new
|
{
|
t.Njtakeid,
|
t.Pustatus,
|
t.Grouptype,
|
a.ArticleName,
|
a.ArticleType
|
})
|
.Union(
|
from t in putake
|
join p in process on t.Grouptype equals p.CraftType
|
join a in articl on p.ArticleTowid equals a.ID
|
where t.Pustatus == 0 || t.Pustatus == 2
|
select new
|
{
|
t.Njtakeid,
|
t.Pustatus,
|
t.Grouptype,
|
a.ArticleName,
|
a.ArticleType
|
});
|
|
var result = query
|
.GroupBy(x => new { x.ArticleType, x.Pustatus, x.Grouptype,x.Njtakeid }) // 根据套筒类型和任务状态,以及组别分组
|
.Select(g => g.First()) // 每组取第一条
|
.OrderBy(x => x.Grouptype)
|
.ToList();
|
|
return new WebResponseContent { Status = true, Data = result };
|
}
|
catch (Exception ex)
|
{
|
|
return new WebResponseContent { Status = false, Message = "错误:" + ex.Message };
|
}
|
|
}
|
}
|
}
|