PLC
yanjinhui
2025-04-24 461ccbda1d9d3fef42f250771c2fd30702755c16
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/SerialPortService/ArticleInfomServer.cs
@@ -1,4 +1,5 @@
using System;
using OfficeOpenXml.Style;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -6,6 +7,7 @@
using WIDESEA_ISerialPortRepository;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
@@ -13,9 +15,12 @@
{
    public class ArticleInfomServer : ServiceBase<Dt_ArticleInfom, IArticleInfomRepository>, IArticleInfomServer
    {
        public ArticleInfomServer(IArticleInfomRepository BaseDal) : base(BaseDal)
        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)
        {
@@ -26,5 +31,96 @@
        }
        //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 };
            }
        }
    }
}