| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600 |
- using System;
- using System.Collections.Generic;
- using System.Data.Entity;
- using System.Globalization;
- using System.Linq;
- using System.Linq.Dynamic.Core;
- using System.Reflection;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- using System.Web.Http.Results;
- using System.Web.Mvc;
- using System.Web.UI.WebControls;
- using System.Xml;
- using Abp.Application.Services;
- using Abp.Application.Services.Dto;
- using Abp.Auditing;
- using Abp.Authorization;
- using Abp.Domain.Repositories;
- using Abp.Extensions;
- using Abp.Linq;
- using Abp.Linq.Extensions;
- using Abp.Runtime.Caching;
- using IwbZero.AppServiceBase;
- using IwbZero.IdentityFramework;
- using IwbZero.Setting;
- using Microsoft.AspNet.Identity;
- using NPOI.SS.Formula.Functions;
- using ShwasherSys.BasicInfo;
- using ShwasherSys.BasicInfo.OutFactory;
- using ShwasherSys.BasicInfo.OutFactory.Dto;
- using ShwasherSys.BasicInfo.StoreHouseLocations.Dto;
- using ShwasherSys.Common.Dto;
- using ShwasherSys.CompanyInfo;
- using ShwasherSys.CompanyInfo.DeviceInfo.Dto;
- using ShwasherSys.CompanyInfo.FixedAssetInfo.Dto;
- using ShwasherSys.CompanyInfo.MoldInfo.Dto;
- using ShwasherSys.CustomerInfo;
- using ShwasherSys.CustomerInfo.Dto;
- using ShwasherSys.Inspection;
- using ShwasherSys.Invoice;
- using ShwasherSys.Lambda;
- using ShwasherSys.NotificationInfo;
- using ShwasherSys.NotificationInfo.Dto;
- using ShwasherSys.Order;
- using ShwasherSys.OrderSendInfo;
- using ShwasherSys.PackageInfo;
- using ShwasherSys.ProductInfo;
- using ShwasherSys.ProductInfo.Dto;
- using ShwasherSys.ProductionOrderInfo;
- using ShwasherSys.ProductionOrderInfo.Dto;
- using ShwasherSys.ProductStoreInfo;
- using ShwasherSys.RmStore;
- using ShwasherSys.SemiProductStoreInfo;
- using TemplateInfo = ShwasherSys.Inspection.TemplateInfo;
- namespace ShwasherSys.Common
- {
- public interface IQueryAppService : IApplicationService
- {
- /// <summary>
- /// 查询外协厂商信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- Task<PagedResultDto<OutFactoryDto>> GetOutFactory(IwbPagedRequestDto input);
- /// <summary>
- /// 查询客户信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- Task<PagedResultDto<CustomerDto>> GetCustomer(IwbPagedRequestDto input);
-
- /// <summary>
- /// 查询半成品实时库存信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- Task<PagedResultDto<ViewCurrentSemiStoreHouse>> GetCurrentSemiStore(IwbPagedRequestDto input);
- /// <summary>
- /// 查询半成品信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- Task<PagedResultDto<SemiProductDto>> GetSemiProduct(IwbPagedRequestDto input);
- Task<string> GetSemiProductName(string id);
- Task<SemiProductDto> GetSingleSemiProduct(string input);
- /// <summary>
- /// 查询产品信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- Task<PagedResultDto<ProductDto>> GetProduct(IwbPagedRequestDto input);
- Task<Product> GetProductById(EntityDto<string> input);
- Task<string> GetProductName(string id);
- /// <summary>
- /// 查询库位信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- Task<PagedResultDto<StoreHouseLocationDto>> GetStoreHouseLocation(IwbPagedRequestDto input);
- Task<PagedResultDto<ProductionLogDto>> QueryProductionLog(IwbPagedRequestDto input);
- string GetDefualtProductByOrderNo(string orderNo);
- string GetDefaultProductByPartNo(string partNo,string orderNo);
- string QueryProductByCustomerAndPartNo(string partNo, string customerId) ;
- string GetDefualtProductByCustomerId(string customerId);
- Customer GetCustomerInfo(EntityDto<string> input);
- CustomerSend GetCustomerSendInfo(EntityDto<int> input);
- List<CustomerSendDto> GetCustomerSendDtoByCustomerId(CustomerSendDto customerId);
- List<SelectListItem> GetProductPropertyList(string pcPropertyName);
-
- List<CurrentProductStoreHouse> QueryStore(string productNo);
- List<CurrentProductStoreHouse> QueryStoreFilter(string productNo,string customerId);
- BulletinInfo GetBulletinInfo(EntityDto input);
- ShortMessage GetShortMsgDetailInfo(ShortMsgDetailDto input);
- Task<PagedResultDto<Product>> GetQueryCustomerDefaultProduct(IwbPagedRequestDto input);
- List<StoreHouse> QueryStoreHouse(int houseType=0);
- List<SelectListItem> QueryStoreHouseSelect(int houseType=0);
- string QueryStoreHouseSelectStr(int houseType = 0);
- List<ViewSemiEnterStore> QueryEnterStoresByPoNo(string productionOrderNo);
- Task<TemplateInfo> QueryTemplate(string tmpKey, int type);
- Task<List<Currency>> QueryAllCurrency();
- Task<List<CurrencyExchangeRate>> QueryCurrencyRate(string from,string to);
- Task<string> GetExpressNameById(int id);
- PagedResultDto<ViewEmployee> QueryEmployee(IwbPagedRequestDto input);
- Task<PagedResultDto<MoldDto>> QueryMold(IwbPagedRequestDto input);
- Task<PagedResultDto<FixedAssetDto>> QueryFixedAsset(IwbPagedRequestDto input);
- Task<PagedResultDto<ViewOrderSend>> QuerySendGood(IwbPagedRequestDto input);
- Task<PagedResultDto<ViewStickBill>> QueryInvoice(IwbPagedRequestDto input);
- Task<PagedResultDto<RmProduct>> GetRmProduct(IwbPagedRequestDto input);
- Task<PagedResultDto<ViewCurrentRmStoreHouse>> GetRmCurrentStore(IwbPagedRequestDto input);
- Task<PagedResultDto<ViewSemiEnterStore>> GetSemiEnterStoreCheckUnqualified(IwbPagedRequestDto input);
- Task<PagedResultDto<ProductPropertyDto>> GetProductProperty(IwbPagedRequestDto input);
- Task<string> CalcTaxPrice(int type, string input,string rate);
- Task<PagedResultDto<ViewOrderItems>> QueryOrderItem(IwbPagedRequestDto input);
- Task<OrderProductProcessDto> QueryOrderProductProcess(int orderItemId);
- #region 2023
- Task<PagedResultDto<ProductionOrderDto>> QueryProductionOrderDtoByProNo(PagedRequestDto input);
- Task<PagedResultDto<ViewCurrentProductStoreHouse>> QueryViewCurrentProductStoreHouseByProNo(
- PagedRequestDto input);
- Task<PagedResultDto<ViewCurrentSemiStoreHouse>> QueryViewCurrentSemiStoreHouseByProNo(PagedRequestDto input);
- #endregion
- #region 2024
- Task<Dictionary<int, List<DeviceMgPlanDto>>> QueryNeedMaintenanceMoldPlan();
- #endregion
- #region 2025
- Task<List<CustomerDefaultProduct>> GetCustomerDefaultProductByCustomerId(string customerId);
- Task<List<ProductProperty>> GetProductPropertyEntity(string productPropertyType);
- ShortMsgDetail ReadShortMsgDetailInfo(ShortMsgDetailDto input);
- #endregion
- }
- [AbpAuthorize,DisableAuditing]
- public class QueryAppService : ApplicationService, IQueryAppService
- {
- protected ICacheManager CacheManager { get; set; }
- protected new IIwbSettingManager SettingManager { get; set; }
- public QueryAppService(
- IRepository<Customer,string> customerRepository,
- IRepository<ViewCurrentSemiStoreHouse> currentSemiRepository,
- IRepository<SemiProducts, string> semiProductRepository,
- IRepository<Product, string> productRepository,
- IRepository<StoreHouseLocation> shlRepository,
- IIwbSettingManager settingManager,
- ICacheManager cacheManager, IRepository<CustomerDefaultProduct> customerDefaultProductRepository, IRepository<CustomerSend> customerSendRepository, IRepository<OrderHeader, string> orderHeaderRepository, IRepository<CurrentProductStoreHouse> currentProductStoreHouseRepository, IRepository<BulletinInfo> bulletinInfoRepository, IRepository<ShortMessage> shortMessageRepository, IRepository<ShortMsgDetail> shortMsgDetailRepository, IRepository<StoreHouse> storeHouseRepository, IRepository<ViewSemiEnterStore> viewSemiEnterStoreRepository, IRepository<OutFactory, string> outFactoryRepository, IRepository<TemplateInfo> templateInfoRepository, IRepository<Currency, string> currencyRepository, IRepository<CurrencyExchangeRate> currencyExchangeRateRepository, IRepository<ViewEmployee> viewEmployeeRepository, IRepository<RmProduct, string> rmRepository, IRepository<ViewCurrentRmStoreHouse, string> viewCurrentRmStoreHouseRepository, IRepository<ProductionLog> productionLogRepository, IRepository<CustomerDisabledProduct> customerDisabledProductRepository, IRepository<ExpressLogistics> expressRepository, IRepository<Mold> moldRepository, IRepository<FixedAsset> fixedAssetRepository, IRepository<ViewOrderSend> viewOrderSendRepository, IRepository<ViewStickBill, string> viewStickBillRepository, IRepository<ProductProperty> productPropertyRepository, IRepository<ViewOrderItems> viewOrderItemsRepository, IRepository<OrderProduction> orderProductionRepository, IRepository<ProductionOrder> productionOrderRepository, IRepository<PackageApply> packageApplyRepository, IRepository<ViewCurrentProductStoreHouse> viewCurrentProductStoreHouseRepository, IRepository<ViewCurrentSemiStoreHouse> viewCurrentSemiStoreHouseRepository, IRepository<DeviceMgPlan> deviceMgPlanRepository)
- {
- CustomerRepository = customerRepository;
- CurrentSemiRepository = currentSemiRepository;
- SemiProductRepository = semiProductRepository;
- ProductRepository = productRepository;
- ShlRepository = shlRepository;
- CacheManager = cacheManager;
- CustomerDefaultProductRepository = customerDefaultProductRepository;
- CustomerSendRepository = customerSendRepository;
- OrderHeaderRepository = orderHeaderRepository;
- CurrentProductStoreHouseRepository = currentProductStoreHouseRepository;
- BulletinInfoRepository = bulletinInfoRepository;
- SettingManager = settingManager;
- ShortMessageRepository = shortMessageRepository;
- ShortMsgDetailRepository = shortMsgDetailRepository;
- StoreHouseRepository = storeHouseRepository;
- ViewSemiEnterStoreRepository = viewSemiEnterStoreRepository;
- OutFactoryRepository = outFactoryRepository;
- TemplateInfoRepository = templateInfoRepository;
- CurrencyRepository = currencyRepository;
- CurrencyExchangeRateRepository = currencyExchangeRateRepository;
- ViewEmployeeRepository = viewEmployeeRepository;
- RmRepository = rmRepository;
- ViewCurrentRmStoreHouseRepository = viewCurrentRmStoreHouseRepository;
- ProductionLogRepository = productionLogRepository;
- CustomerDisabledProductRepository = customerDisabledProductRepository;
- ExpressRepository = expressRepository;
- MoldRepository = moldRepository;
- FixedAssetRepository = fixedAssetRepository;
- ViewOrderSendRepository = viewOrderSendRepository;
- ViewStickBillRepository = viewStickBillRepository;
- ProductPropertyRepository = productPropertyRepository;
- ViewOrderItemsRepository = viewOrderItemsRepository;
- OrderProductionRepository = orderProductionRepository;
- ProductionOrderRepository = productionOrderRepository;
- PackageApplyRepository = packageApplyRepository;
- ViewCurrentProductStoreHouseRepository = viewCurrentProductStoreHouseRepository;
- ViewCurrentSemiStoreHouseRepository = viewCurrentSemiStoreHouseRepository;
- AsyncQueryableExecuter = NullAsyncQueryableExecuter.Instance;
- DeviceMgPlanRepository = deviceMgPlanRepository;
- }
- protected IRepository<FixedAsset> FixedAssetRepository { get; }
- protected IRepository<Mold> MoldRepository { get; }
- protected IRepository<ExpressLogistics> ExpressRepository { get; }
- protected IRepository<ProductionLog> ProductionLogRepository { get; }
- protected IRepository<OutFactory, string> OutFactoryRepository { get; }
- protected IRepository<Customer, string> CustomerRepository { get; }
- protected IRepository<ViewCurrentSemiStoreHouse> CurrentSemiRepository { get; }
- protected IRepository<SemiProducts, string> SemiProductRepository { get; }
- protected IRepository<Product, string> ProductRepository { get; }
- public IRepository<StoreHouseLocation> ShlRepository { get; }
- protected IRepository<CustomerDefaultProduct> CustomerDefaultProductRepository { get; }
- protected IRepository<CustomerSend> CustomerSendRepository { get; }
- protected IRepository<OrderHeader, string> OrderHeaderRepository { get; }
- protected IRepository<CurrentProductStoreHouse> CurrentProductStoreHouseRepository { get; }
- protected IRepository<BulletinInfo> BulletinInfoRepository { get; }
- protected IRepository<ShortMessage> ShortMessageRepository { get; }
- protected IRepository<ShortMsgDetail> ShortMsgDetailRepository { get; }
- protected IRepository<StoreHouse> StoreHouseRepository { get; }
- protected IRepository<ViewSemiEnterStore> ViewSemiEnterStoreRepository { get; }
- protected IRepository<TemplateInfo> TemplateInfoRepository { get; }
- protected IRepository<Currency,string> CurrencyRepository { get; }
- protected IRepository<CurrencyExchangeRate> CurrencyExchangeRateRepository { get; }
- protected IRepository<ViewEmployee> ViewEmployeeRepository { get; }
- protected IRepository<RmProduct,string> RmRepository { get; }
- protected IRepository<ViewCurrentRmStoreHouse, string> ViewCurrentRmStoreHouseRepository { get; }
- protected IRepository<CustomerDisabledProduct> CustomerDisabledProductRepository { get; }
- protected IRepository<ViewOrderSend> ViewOrderSendRepository { get; }
- public IAsyncQueryableExecuter AsyncQueryableExecuter { get; set; }
- protected IRepository<ProductProperty> ProductPropertyRepository { get; }
- protected IRepository<ViewOrderItems> ViewOrderItemsRepository { get; }
- protected IRepository<OrderProduction> OrderProductionRepository { get; }
- protected IRepository<ProductionOrder> ProductionOrderRepository { get; }
- protected IRepository<PackageApply> PackageApplyRepository { get; }
- protected IRepository<ViewCurrentProductStoreHouse> ViewCurrentProductStoreHouseRepository { get; }
-
- protected IRepository<ViewCurrentSemiStoreHouse> ViewCurrentSemiStoreHouseRepository { get; }
- protected IRepository<DeviceMgPlan> DeviceMgPlanRepository { get; }
- /// <summary>
- /// 查询快递名称
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public async Task<string> GetExpressNameById(int id)
- {
- var express = await ExpressRepository.FirstOrDefaultAsync(a => a.Id == id);
- return express?.ExpressName ?? "";
- }
- /// <summary>
- /// 查询外协厂商信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<OutFactoryDto>> GetOutFactory(IwbPagedRequestDto input)
- {
- var query = OutFactoryRepository.GetAll().Where(a => a.IsLock == "N");
- if (input.SearchList != null && input.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in input.SearchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<OutFactory>();
- query = query.Where(exp);
- }
- var totalCount = await query.CountAsync();
- query = query.OrderByDescending(i => i.TimeCreated);
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var entities = await query.ToListAsync();
- var dtos = new PagedResultDto<OutFactoryDto>(
- totalCount,
- entities.Select(ObjectMapper.Map<OutFactoryDto>).ToList()
- );
- return dtos;
- }
- /// <summary>
- /// 查询客户信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<CustomerDto>> GetCustomer(IwbPagedRequestDto input)
- {
- var query = CustomerRepository.GetAll().Where(a => a.IsLock == "N");
- if (input.SearchList != null && input.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in input.SearchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<Customer>();
- query = query.Where(exp);
- }
- var totalCount = await query.CountAsync();
- query = query.OrderByDescending(i => i.TimeCreated);
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var entities = await query.ToListAsync();
- var dtos = new PagedResultDto<CustomerDto>(
- totalCount,
- entities.Select(ObjectMapper.Map<CustomerDto>).ToList()
- );
- return dtos;
- }
- /// <summary>
- /// 查询半成品实时库存信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<ViewCurrentSemiStoreHouse>> GetCurrentSemiStore(IwbPagedRequestDto input)
- {
- var query = CurrentSemiRepository.GetAll();
- if (input.SearchList != null && input.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in input.SearchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<ViewCurrentSemiStoreHouse>();
- query = query.Where(exp);
- }
- query = query.Where(i => (i.ActualQuantity - i.FreezeQuantity) > 0);//过滤掉可用数量小于等于0
- var totalCount = await query.CountAsync();
- query = query.OrderByDescending(i => i.TimeCreated);
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var entities = await query.ToListAsync();
- var dtos = new PagedResultDto<ViewCurrentSemiStoreHouse>(totalCount,entities);
- return dtos;
- }
- /// <summary>
- /// 查询半成品信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<SemiProductDto>> GetSemiProduct(IwbPagedRequestDto input)
- {
- var query = SemiProductRepository.GetAll().Where(a => a.IsLock == "N");
- if (input.SearchList != null && input.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in input.SearchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- //检查查询条件中带有规格且多个分割条件的
- ProductModelSearch.CheckModelGreaterOneFilter(o, ref keyWords);
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<SemiProducts>();
- query = query.Where(exp);
- }
- var totalCount = await query.CountAsync();
- query = query.OrderByDescending(i => i.TimeCreated);
- //query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- //var entities = await query.ToListAsync();
- string pattern = ProductModelSearch.GetModelGreaterOneReg(input.SearchList);
- List<SemiProducts> entities;
- //检查查询条件中带有规格且多个分割条件的
- if (!pattern.IsNullOrEmpty())
- {
- var es = query.ToList();
- es = es.Where(f => f.Model != null && Regex.IsMatch(f.Model, pattern)).ToList();
- totalCount = es.Count;
- entities = es.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();
- }
- else
- {
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- entities = await AsyncQueryableExecuter.ToListAsync(query);
- }
- var dtos = new PagedResultDto<SemiProductDto>(
- totalCount,
- entities.Select(ObjectMapper.Map<SemiProductDto>).ToList()
- );
- return dtos;
- }
- public async Task<SemiProductDto> GetSingleSemiProduct(string input)
- {
- var query = await SemiProductRepository.FirstOrDefaultAsync(i=>i.Id==input);
- return ObjectMapper.Map<SemiProductDto>(query);
- }
- public async Task<string> GetSemiProductName(string id)
- {
- var entity = await CacheManager.GetCache(ShwasherConsts.SemiProductCache)
- .GetAsync(id, () => SemiProductRepository.FirstOrDefaultAsync(i => i.Id == id));
- return entity?.SemiProductName ?? "";
- }
- public async Task<string> GetProductName(string id)
- {
- var entity = await CacheManager.GetCache(ShwasherConsts.FinshedProductCache)
- .GetAsync(id, () => ProductRepository.FirstOrDefaultAsync(i => i.Id == id));
- return entity?.ProductName ?? "";
- }
- /// <summary>
- /// 查询产品信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<ProductDto>> GetProduct(IwbPagedRequestDto input)
- {
- var query = ProductRepository.GetAll().Where(a => a.IsLock == "N");
- if (input.SearchList != null && input.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in input.SearchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- //检查查询条件中带有规格且多个分割条件的
- ProductModelSearch.CheckModelGreaterOneFilter(o, ref keyWords);
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<Product>();
- query = query.Where(exp);
- }
- var totalCount = await query.CountAsync();
- query = !input.Sorting.IsNullOrWhiteSpace() ? query.OrderBy(input.Sorting) : query.OrderByDescending(i => i.TimeCreated);
- string pattern = ProductModelSearch.GetModelGreaterOneReg(input.SearchList);
- List<Product> entities;
- //检查查询条件中带有规格且多个分割条件的
- if (!pattern.IsNullOrEmpty())
- {
- var es = query.ToList();
- es = es.Where(f => f.Model != null && Regex.IsMatch(f.Model, pattern)).ToList();
- totalCount = es.Count;
- entities = es.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();
- }
- else
- {
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- entities = await AsyncQueryableExecuter.ToListAsync(query);
- }
- //query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- //var entities = await query.ToListAsync();
- var dtos = new PagedResultDto<ProductDto>(
- totalCount,
- entities.Select(ObjectMapper.Map<ProductDto>).ToList()
- );
- return dtos;
- }
-
- public async Task<Product> GetProductById(EntityDto<string> input)
- {
- return await ProductRepository.FirstOrDefaultAsync(input.Id);
- }
- /// <summary>
- /// 查询库位信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<StoreHouseLocationDto>> GetStoreHouseLocation(IwbPagedRequestDto input)
- {
- var query = ShlRepository.GetAll();
- if (input.SearchList != null && input.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in input.SearchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<StoreHouseLocation>();
- query = query.Where(exp);
- }
- var totalCount = await query.CountAsync();
- query = query.OrderByDescending(i => i.CreationTime);
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var entities = await query.ToListAsync();
- var dtos = new PagedResultDto<StoreHouseLocationDto>(
- totalCount,
- entities.Select(ObjectMapper.Map<StoreHouseLocationDto>).ToList()
- );
- return dtos;
- }
- /// <summary>
- /// 根据订单号查询当前客户默认的产品
- /// </summary>
- /// <param name="orderNo"></param>
- /// <returns></returns>
- public string GetDefualtProductByOrderNo(string orderNo)
- {
- var orderHeader = OrderHeaderRepository.Get(orderNo);
- return GetDefualtProductByCustomerId(orderHeader.CustomerId);
- }
- /// <summary>
- /// 根据订单号和零件号查询当前客户默认的产品
- /// </summary>
- /// <param name="partNo"></param>
- /// <param name="orderNo"></param>
- /// <returns></returns>
- public string GetDefaultProductByPartNo(string partNo,string orderNo)
- {
- var orderHeader = OrderHeaderRepository.Get(orderNo);
- var defaultProduct = CustomerDefaultProductRepository.FirstOrDefault(i => i.CustomerId == orderHeader.CustomerId&&i.PartNo== partNo);
- if (defaultProduct != null)
- {
- return defaultProduct.ProductNo;
- }
- return "";
- }
- /// <summary>
- /// 根据订单号和客户编码查询当前客户默认的产品
- /// </summary>
- /// <param name="partNo"></param>
- /// <param name="customerId"></param>
- /// <returns></returns>
- public string QueryProductByCustomerAndPartNo(string partNo, string customerId)
- {
- var defaultProduct = CustomerDefaultProductRepository.FirstOrDefault(i => i.CustomerId == customerId && i.PartNo == partNo);
- if (defaultProduct != null)
- {
- return defaultProduct.ProductNo;
- }
- return "";
- }
- /// <summary>
- /// 根据客户号查询当前客户默认的产品
- /// </summary>
- /// <param name="orderNo"></param>
- /// <returns></returns>
- public string GetDefualtProductByCustomerId(string customerId)
- {
- var defualtProducts = CustomerDefaultProductRepository.GetAll().Where(i => i.CustomerId == customerId);
- string lcRetval = "";
- foreach (var item in defualtProducts)
- {
- lcRetval += $"<option value=\"{item.ProductNo}\">{item.ProductNo}</option>";
- }
- return lcRetval;
- }
- public Customer GetCustomerInfo(EntityDto<string> input)
- {
- return CustomerRepository.FirstOrDefault(input.Id);
- }
- public CustomerSend GetCustomerSendInfo(EntityDto<int> input)
- {
- return CustomerSendRepository.FirstOrDefault(input.Id);
- }
- [DisableAuditing]
- public List<SelectListItem> GetProductPropertyList(string pcPropertyName)
- {
- var objList = new List<SelectListItem>();
- if (pcPropertyName.IsNullOrEmpty())
- {
- return objList;
- }
- var entitys = ProductRepository.GetAll().Where(i => i.IsLock == "N");
- var loPropertyInfo = typeof(Product).GetProperty(pcPropertyName,
- BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public);
- if (loPropertyInfo == null)
- {
- throw new ArgumentException($"{pcPropertyName} is not a property of type {typeof(Product)}.");
- }
- IQueryable<string> query = null;
- switch (pcPropertyName)
- {
- case "Material":
- query = entitys.Select(i => i.Material).Distinct();
- break;
- case "SurfaceColor":
- query = entitys.Select(i => i.SurfaceColor).Distinct();
- break;
- case "Rigidity":
- query = entitys.Select(i => i.Rigidity).Distinct();
- break;
- }
- if (query != null)
- {
- foreach (var product in query)
- {
- objList.Add(new SelectListItem()
- {
- Text = product,
- Value = product
- });
- }
- }
- return objList;
- }
- #region 库存记录查询
- public List<CurrentProductStoreHouse> QueryStore(string productNo)
- {
- if (string.IsNullOrEmpty(productNo))
- {
- CheckErrors(IwbIdentityResult.Failed("请求的产品编码不存在!"));
- }
- var entity = CurrentProductStoreHouseRepository.GetAll().Where(i => i.ProductNo == productNo && (i.Quantity > 0||i.ProductionOrderNo.StartsWith("VS"))).OrderByDescending(i => i.TimeLastMod);
- List<CurrentProductStoreHouse> productionOrder = new List<CurrentProductStoreHouse>();
- List<CurrentProductStoreHouse> hasProductionOrder = new List<CurrentProductStoreHouse>();
- if (entity.Any())
- {
- productionOrder = entity.Where(i => string.IsNullOrEmpty(i.ProductionOrderNo)).ToList();
- hasProductionOrder = entity.Where(i => !string.IsNullOrEmpty(i.ProductionOrderNo)).ToList();
- }
- productionOrder.AddRange(hasProductionOrder);
- return productionOrder;
- }
- public List<CurrentProductStoreHouse> QueryStoreFilter(string productNo,string customerId)
- {
- if (string.IsNullOrEmpty(productNo))
- {
- CheckErrors(IwbIdentityResult.Failed("请求的产品编码不存在!"));
- }
- var entity = CurrentProductStoreHouseRepository.GetAll().Where(i => i.ProductNo == productNo && (i.Quantity > 0 || i.ProductionOrderNo.StartsWith("VS"))&&i.InventoryCheckState!=2);
- var disabledOrderNo = CustomerDisabledProductRepository.GetAll().Where(i => i.CustomerNo == customerId)
- .Select(i => i.ProductOrderNo).Distinct();
- entity = entity.Where(i => !disabledOrderNo.Contains(i.ProductionOrderNo))
- .OrderByDescending(i => i.TimeLastMod);
- List<CurrentProductStoreHouse> productionOrder = new List<CurrentProductStoreHouse>();
- List<CurrentProductStoreHouse> hasProductionOrder = new List<CurrentProductStoreHouse>();
- if (entity.Any())
- {
- productionOrder = entity.Where(i => string.IsNullOrEmpty(i.ProductionOrderNo)&& i.Quantity>0).ToList();
- hasProductionOrder = entity.Where(i => !string.IsNullOrEmpty(i.ProductionOrderNo)&& i.Quantity>0).ToList();
- }
- productionOrder.AddRange(hasProductionOrder);
- return productionOrder;
- }
- #endregion
- public BulletinInfo GetBulletinInfo(EntityDto input)
- {
- var entity = BulletinInfoRepository.FirstOrDefault(i => i.Id == input.Id);
- return entity;
- }
- protected virtual void CheckErrors(IdentityResult identityResult)
- {
- identityResult.CheckErrors(LocalizationManager);
- }
- protected virtual void CheckErrors(String error)
- {
- var identityResult = IdentityResult.Failed(error);
- CheckErrors(identityResult);
-
- //identityResult.CheckErrors(LocalizationManager);
- }
- public ShortMessage GetShortMsgDetailInfo(ShortMsgDetailDto input)
- {
- var entity = ShortMessageRepository.FirstOrDefault(input.MsgID);
- //var detailInfo = ShortMsgDetailRepository.FirstOrDefault(input.Id);
- //detailInfo.IsRead = "Y";
- //ShortMsgDetailRepository.UpdateAsync(detailInfo);
- return entity;
- }
- public ShortMsgDetail ReadShortMsgDetailInfo(ShortMsgDetailDto input)
- {
- //var entity = ShortMessageRepository.FirstOrDefault(input.MsgID);
- var detailInfo = ShortMsgDetailRepository.FirstOrDefault(input.Id);
- detailInfo.IsRead = "Y";
- ShortMsgDetailRepository.UpdateAsync(detailInfo);
- return detailInfo;
- }
- public List<CustomerSendDto> GetCustomerSendDtoByCustomerId(CustomerSendDto customerId)
- {
- var entities = CustomerSendRepository.GetAll().Where(i => i.CustomerId == customerId.CustomerId && i.IsLock == "N");
- return ObjectMapper.Map<List<CustomerSendDto>>(entities.ToList());
- }
- public async Task<PagedResultDto<Product>> GetQueryCustomerDefaultProduct(IwbPagedRequestDto input)
- {
- var query = ProductRepository.GetAll();
- query = query.Where(i => i.IsLock == "N");
- string lcCustomerId = "";
- if (input.SearchList != null && input.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in input.SearchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- if (o.KeyField == "CustomerId" || o.KeyField == "customerId")
- {
- lcCustomerId = keyWords + "";
- continue;
- }
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<Product>();
- if (exp != null)
- {
- query = query.Where(exp);
- }
- }
- List<string> loNotContain = new List<string>();
- if (!lcCustomerId.IsNullOrEmpty())
- {
- var loDefualtProducts = CustomerDefaultProductRepository.GetAll().Where(i => i.CustomerId == lcCustomerId);
- foreach (CustomerDefaultProduct defaultProduct in loDefualtProducts)
- {
- loNotContain.Add(defaultProduct.ProductNo);
- }
- }
- if (loNotContain.Any())
- {
- query = query.Where(i => !loNotContain.Contains(i.Id));
- }
- var totalCount = query.Count();
- query = query.SortBy("Id");
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var entities = query.ToList();
- var dtos = new PagedResultDto<Product>(
- totalCount,
- entities
- );
- return dtos;
- }
-
- public async Task<PagedResultDto<ProductionLogDto>> QueryProductionLog(IwbPagedRequestDto input)
- {
- var query = ProductionLogRepository.GetAllIncluding(a=>a.EmployeeInfo);
- query = ApplyFilter<ProductionLog>(query,input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = query.OrderBy(a=>a.CreationTime);
- query = _ApplyPaging(query, input);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<ProductionLogDto>(totalCount, entities.Select(a=>new ProductionLogDto
- {
- Id = a.Id,
- ProductionNo = a.ProductionNo,
- ProductOrderNo = a.ProductOrderNo,
- EmployeeId = a.EmployeeId,
- EmployeeNo = a.EmployeeInfo.No,
- EmployeeName = a.EmployeeInfo.Name,
- CarNo = a.CarNo,
- QuantityWeight = a.QuantityWeight,
- QuantityPcs = a.QuantityPcs,
- KgWeight = a.KgWeight,
- CreationTime = a.CreationTime
- }).ToList());
- return dtoList;
- }
- public List<StoreHouse> QueryStoreHouse(int houseType=0)
- {
- /*List<StoreHouse> result = CacheManager.GetCache(ShwasherConsts.StoreHouseCache).Get("All",
- () => { return StoreHouseRepository.GetAllList(i => i.IsLock == "N"); });*/
- var query = StoreHouseRepository.GetAll().Where(i => i.IsLock == "N" );
- if (houseType > 0)
- {
- query = query.Where(i => i.StoreHouseTypeId == houseType);
- }
- return query.ToList();
- }
- public List<SelectListItem> QueryStoreHouseSelect(int houseType=0)
- {
- var query = StoreHouseRepository.GetAll().Where(i => i.IsLock == "N");
- if (houseType > 0)
- {
- query = query.Where(i => i.StoreHouseTypeId == houseType);
- }
-
- List<SelectListItem> resultList = new List<SelectListItem>()
- {
- new SelectListItem()
- {
- Text = @"请选择仓库...",
- Value = "",
- Selected = true
- }
- };
- foreach (var entityHouse in query)
- {
- SelectListItem item = new SelectListItem()
- {
- Text = entityHouse.StoreHouseName,
- Value = entityHouse.Id.ToString()
- };
- resultList.Add(item);
- }
- return resultList;
- }
- public string QueryStoreHouseSelectStr(int houseType=0)
- {
- var query = StoreHouseRepository.GetAll().Where(i => i.IsLock == "N");
- if (houseType > 0)
- {
- query = query.Where(i => i.StoreHouseTypeId == houseType);
- }
- string str = "";// "<option data-type=\"\" value=\"\">请选择仓库...</option>";
- foreach (var l in query)
- {
- str += $"<option data-type=\"{l.StoreHouseTypeId}\" value=\"{l.Id}\">{l.StoreHouseName}</option>";
- }
- return str;
- }
- public List<ViewSemiEnterStore> QueryEnterStoresByPoNo(string productionOrderNo)
- {
- var entities = ViewSemiEnterStoreRepository.GetAllList(i => i.ProductionOrderNo == productionOrderNo);
- return entities;
- }
- public async Task<TemplateInfo> QueryTemplate(string tmpKey, int type)
- {
- var tmps =await TemplateInfoRepository.FirstOrDefaultAsync(i => i.TempKey == tmpKey && i.Type == type);
- return tmps;
- }
- public async Task<List<Currency>> QueryAllCurrency()
- {
- return await CurrencyRepository.GetAllListAsync();
- }
- public async Task<List<CurrencyExchangeRate>> QueryCurrencyRate(string from="", string to="")
- {
- if (from.IsNullOrEmpty()&&!to.IsNullOrEmpty())
- {
- return await CurrencyExchangeRateRepository.GetAllListAsync(i => i.ToCurrencyId == to);
- }
- else if (!from.IsNullOrEmpty() && to.IsNullOrEmpty())
- {
- return await CurrencyExchangeRateRepository.GetAllListAsync(i => i.FromCurrencyId == from );
- }
- else
- {
- return await CurrencyExchangeRateRepository.GetAllListAsync(i => i.FromCurrencyId == from && i.ToCurrencyId == to);
- }
-
- }
- public PagedResultDto<ViewEmployee> QueryEmployee(IwbPagedRequestDto input)
- {
- var query = ViewEmployeeRepository.GetAll();
- if (input.SearchList != null && input.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in input.SearchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<ViewEmployee>();
- if (exp != null)
- {
- query = query.Where(exp);
- }
- }
- var totalCount = query.Count();
- query = query.SortBy("No");
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var entities = query.ToList();
- var dtos = new PagedResultDto<ViewEmployee>(
- totalCount,
- entities
- );
- return dtos;
- }
- /// <summary>
- /// 查询模具信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<MoldDto>> QueryMold(IwbPagedRequestDto input)
- {
- var query = MoldRepository.GetAll();
- query = ApplyFilter(query,input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = _ApplySorting(query, input);
- query = _ApplyPaging(query, input);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<MoldDto>(totalCount, entities.Select(ObjectMapper.Map<MoldDto>).ToList());
- return dtoList;
- }
- /// <summary>
- /// 查询模具信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<FixedAssetDto>> QueryFixedAsset(IwbPagedRequestDto input)
- {
- var query = FixedAssetRepository.GetAll();
- query = ApplyFilter(query,input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = _ApplySorting(query, input);
- query = _ApplyPaging(query, input);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<FixedAssetDto>(totalCount, entities.Select(ObjectMapper.Map<FixedAssetDto>).ToList());
- return dtoList;
- }
- /// <summary>
- /// 查询发货明细信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<ViewOrderSend>> QuerySendGood(IwbPagedRequestDto input)
- {
- var query = ViewOrderSendRepository.GetAll().Where(a=>!string.IsNullOrEmpty(a.OrderSendBillNo));
- query = ApplyFilter(query,input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = query.OrderByDescending(a=>a.OrderItemId);
- query = _ApplyPaging(query, input);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<ViewOrderSend>(totalCount, entities);
- return dtoList;
- }
- protected IRepository<ViewStickBill, string> ViewStickBillRepository { get; }
- /// <summary>
- /// 查询发票信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<ViewStickBill>> QueryInvoice(IwbPagedRequestDto input)
- {
- var query = ViewStickBillRepository.GetAll();
- query = ApplyFilter(query,input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = query.OrderByDescending(a=>a.TimeCreated);
- query = _ApplyPaging(query, input);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<ViewStickBill>(totalCount, entities);
- return dtoList;
- }
- public async Task<PagedResultDto<RmProduct>> GetRmProduct(IwbPagedRequestDto input)
- {
- var query = RmRepository.GetAll();
- query = ApplyFilter<RmProduct>(query,input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = _ApplySorting(query, input);
- query = _ApplyPaging(query, input);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<RmProduct>(totalCount, entities);
- return dtoList;
- }
- public async Task<PagedResultDto<ViewCurrentRmStoreHouse>> GetRmCurrentStore(IwbPagedRequestDto input)
- {
- var query = ViewCurrentRmStoreHouseRepository.GetAll();
- query = ApplyFilter<ViewCurrentRmStoreHouse>(query, input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = _ApplySorting(query, input);
- query = _ApplyPaging(query, input);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<ViewCurrentRmStoreHouse>(totalCount, entities);
- return dtoList;
- }
- public async Task<PagedResultDto<ViewSemiEnterStore>> GetSemiEnterStoreCheckUnqualified(IwbPagedRequestDto input)
- {
- var checkState = EnterStoreApplyStatusEnum.UnChecked.ToInt() + "";
- var query = ViewSemiEnterStoreRepository.GetAll().Where(a => a.ApplyStatus == checkState);
- query = ApplyFilter<ViewSemiEnterStore>(query, input);
- var totalCount = query.Count();
- query = query.OrderByDescending(i => i.TimeCreated);
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dots = new PagedResultDto<ViewSemiEnterStore>(
- totalCount, entities
- );
- return dots;
- }
- /// <summary>
- /// 查询产品属性
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<ProductPropertyDto>> GetProductProperty(IwbPagedRequestDto input)
- {
- var query = ProductPropertyRepository.GetAll();
- query = ApplyFilter(query, input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = _ApplySorting(query, input);
- query = _ApplyPaging(query, input);
- var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<ProductPropertyDto>(totalCount, entities.Select(ObjectMapper.Map<ProductPropertyDto>).ToList());
- return dtoList;
- }
- /// <summary>
- /// 查询订单明细信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public async Task<PagedResultDto<ViewOrderItems>> QueryOrderItem(IwbPagedRequestDto input)
- {
- var query = ViewOrderItemsRepository.GetAll();
- query = ApplyFilter(query, input);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = query.OrderByDescending(a => a.SendDate);
- string pattern = ProductModelSearch.GetModelGreaterOneReg(input.SearchList);
- List<ViewOrderItems> entities;
- //检查查询条件中带有规格且多个分割条件的
- if (!pattern.IsNullOrEmpty())
- {
- var es = query.ToList();
- es = es.Where(f => f.Model != null && Regex.IsMatch(f.Model, pattern)).ToList();
- totalCount = es.Count;
- entities = es.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();
- }
- else
- {
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- entities = await AsyncQueryableExecuter.ToListAsync(query);
- }
- //query = _ApplyPaging(query, input);
- //var entities = await AsyncQueryableExecuter.ToListAsync(query);
- var dtoList = new PagedResultDto<ViewOrderItems>(totalCount, entities);
- return dtoList;
- }
- public async Task<OrderProductProcessDto> QueryOrderProductProcess(int orderItemId)
- {
- OrderProductProcessDto result = new OrderProductProcessDto();
- var rs = OrderProductionRepository.GetAllList(i => i.OrderItemId == orderItemId);
- if (rs.Any())
- {
- var productionNoArr = rs.Select(i => i.ProductionOrderNo);
- List<PackageApply> pas =
- await PackageApplyRepository.GetAllListAsync(i => productionNoArr.Contains(i.ProductionOrderNo));
- List<ProductionOrder> pos = await ProductionOrderRepository.GetAllListAsync(i => productionNoArr.Contains(i.ProductionOrderNo));
- result.PackageApplyList = pas;
- result.ProductionOrderList = pos;
- }
- return result;
- }
- protected IQueryable<T> ApplyFilter<T>(IQueryable<T> query, IwbPagedRequestDto input)
- {
- var pagedInput = input as IIwbPagedRequest;
- if (pagedInput == null)
- {
- return query;
- }
- if (!string.IsNullOrEmpty(pagedInput.KeyWords))
- {
- object keyWords = pagedInput.KeyWords;
- LambdaObject obj = new LambdaObject()
- {
- FieldType = (LambdaFieldType)pagedInput.FieldType,
- FieldName = pagedInput.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)pagedInput.ExpType
- };
- var exp = obj.GetExp<T>();
- query = exp != null ? query.Where(exp) : query;
- }
- if (pagedInput.SearchList != null && pagedInput.SearchList.Count > 0)
- {
- List<LambdaObject> objList = new List<LambdaObject>();
- foreach (var o in pagedInput.SearchList)
- {
- if (string.IsNullOrEmpty(o.KeyWords))
- continue;
- object keyWords = o.KeyWords;
- //检查查询条件中带有规格且多个分割条件的
- ProductModelSearch.CheckModelGreaterOneFilter(o, ref keyWords);
- objList.Add(new LambdaObject
- {
- FieldType = (LambdaFieldType)o.FieldType,
- FieldName = o.KeyField,
- FieldValue = keyWords,
- ExpType = (LambdaExpType)o.ExpType
- });
- }
- var exp = objList.GetExp<T>();
- query = exp != null ? query.Where(exp) : query;
- }
- return query;
- }
- /// <summary>
- /// 分页
- /// </summary>
- /// <param name="query">The query.</param>
- /// <param name="input">The input.</param>
- protected IQueryable<T> _ApplyPaging<T>(IQueryable<T> query, IwbPagedRequestDto input)
- {
- //Try to use paging if available
- var pagedInput = input as IPagedResultRequest;
- if (pagedInput != null)
- {
- return query.PageBy(pagedInput);
- }
- //Try to limit query result if available
- var limitedInput = input as ILimitedResultRequest;
- if (limitedInput != null)
- {
- return query.Take(limitedInput.MaxResultCount);
- }
- //No paging
- return query;
- }
- /// <summary>
- /// 排序
- /// </summary>
- /// <param name="query">The query.</param>
- /// <param name="input">The input.</param>
- protected IQueryable<T> _ApplySorting<T>(IQueryable<T> query, IwbPagedRequestDto input)
- {
- //Try to sort query if available
- var sortInput = input as ISortedResultRequest;
- if (sortInput != null)
- {
- if (!sortInput.Sorting.IsNullOrWhiteSpace())
- {
- return query.OrderBy(sortInput.Sorting);
- }
- }
- //IQueryable.Task requires sorting, so we should sort if Take will be used.
- if (input is ILimitedResultRequest)
- {
- return query.OrderBy("CreationTime DESC");
- }
- //No sorting
- return query;
- }
- public async Task<string> CalcTaxPrice(int type, string input,string rate)
- {
- decimal result = 0;
- try
- {
- decimal inputDec = Convert.ToDecimal(input);
- decimal rateDec = Convert.ToDecimal(rate);
- switch (type)
- {
- case 1:
- result = inputDec / (1 + (rateDec / 100));
- break;
- case 2:
- result = inputDec * (1 + (rateDec / 100));
- break;
- }
- }
- catch (Exception e)
- {
- result = 0;
- }
- return Convert.ToDouble(result).ToString("f3");
- }
- #region 2023
- private void GetPropertiesNo(List<MultiSearchDto> searchList,ref string modelNo, ref string materialNo, ref string rigidityNo, ref string surfaceColorNo)
- {
- foreach (var o in searchList)
- {
- if (o.KeyWords.IsNullOrEmpty())
- continue;
- object keyWords = o.KeyWords;
- if (o.KeyField?.ToLower() == "modelno")
- {
- modelNo = keyWords.ToString();
- }
- if (o.KeyField?.ToLower() == "materialno")
- {
- materialNo = keyWords.ToString();
- }
- if (o.KeyField?.ToLower() == "rigidityno")
- {
- rigidityNo = keyWords.ToString();
- }
- if (o.KeyField?.ToLower() == "surfacecolorno")
- {
- surfaceColorNo = keyWords.ToString();
- }
- }
- }
- public async Task<PagedResultDto<ProductionOrderDto>> QueryProductionOrderDtoByProNo(PagedRequestDto input)
- {
- var query = ProductionOrderRepository.GetAll();
- var result = from u in query
- join s in SemiProductRepository.GetAll() on u.SemiProductNo equals s.Id into l
- from luq in l.DefaultIfEmpty()
- select new ProductionOrderDto
- {
- Model = luq.Model ?? "",
- CarNo = u.CarNo,
- EnterQuantity = u.EnterQuantity,
- Id = u.Id,
- ProductionType = u.ProductionType,
- OutsourcingFactory = u.OutsourcingFactory,
- CreatorUserId = u.CreatorUserId,
- IsChecked = u.IsChecked,
- IsLock = u.IsLock,
- Material = luq.Material ?? "",
- PartNo = luq.PartNo ?? "",
- PlanProduceDate = u.PlanProduceDate,
- RawMaterials = u.RawMaterials,
- SurfaceColor = luq.SurfaceColor ?? "",
- Rigidity = luq.Rigidity ?? "",
- Remark = u.Remark,
- UserIDLastMod = u.UserIDLastMod,
- TimeCreated = u.TimeCreated,
- TimeLastMod = u.TimeLastMod,
- Size = u.Size,
- ProcessingType = u.ProcessingType,
- ProcessingLevel = u.ProcessingLevel,
- SourceProductionOrderNo = u.SourceProductionOrderNo,
- StoveNo = u.StoveNo,
- Quantity = u.Quantity,
- ProductionOrderNo = u.ProductionOrderNo,
- ProductionOrderStatus = u.ProductionOrderStatus,
- SemiProductNo = u.SemiProductNo,
- SemiProductName = luq.SemiProductName,
- KgWeight = u.KgWeight,
- EnterDate = u.EnterDate,
- InspectDate = u.InspectDate,
- HasExported = u.HasExported
- };
- var endState = ProductionOrderStatusEnum.End.ToInt();
- result = result.Where(a => (a.ProductionOrderStatus != endState));
-
- var searchList = input.SearchList;
- if (searchList != null && searchList.Count > 0)
- {
- //List<LambdaObject> objList = new List<LambdaObject>();
- string modelNo = "", materialNo = "", rigidityNo = "", surfaceColorNo = "";
- GetPropertiesNo(searchList,ref modelNo, ref materialNo, ref rigidityNo, ref surfaceColorNo);
- if (modelNo.IsNullOrEmpty())
- {
- CheckErrors("规格不能为空!");
- }
-
-
- //111,110,100,000
- if ((materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty())||(!materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty())|| (!materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty()) || (!materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty()))
- {
- result = result.Where(i => i.SemiProductNo.StartsWith("s" + modelNo + materialNo + rigidityNo + surfaceColorNo));
-
- }//101,001,011
- else if((!materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()) || (materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()) || (materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()))
- {
- result = result.Where(i => i.SemiProductNo.StartsWith("s" + modelNo + materialNo) && i.SemiProductNo.Contains(rigidityNo + surfaceColorNo));
- }//010
- else if (materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty())
- {
- result = result.Where(i => i.SemiProductNo.StartsWith("s" + modelNo));
- result = result.Where(i => i.SemiProductNo.Contains( rigidityNo));
- }
- }
- var totalCount = await AsyncQueryableExecuter.CountAsync(result);
- result = result.OrderByDescending(i => i.TimeCreated);
- result = result.Skip(input.SkipCount).Take(input.MaxResultCount);
- var dtos = new PagedResultDto<ProductionOrderDto>(
- totalCount,
- result.ToList()
- );
- return dtos;
- }
- public async Task<PagedResultDto<ViewCurrentProductStoreHouse>> QueryViewCurrentProductStoreHouseByProNo(PagedRequestDto input)
- {
- var query = ViewCurrentProductStoreHouseRepository.GetAll();
-
- var searchList = input.SearchList;
- if (searchList != null && searchList.Count > 0)
- {
- //List<LambdaObject> objList = new List<LambdaObject>();
- //foreach (var o in searchList)
- //{
- // if (o.KeyWords.IsNullOrEmpty())
- // continue;
- // object keyWords = o.KeyWords;
- // if (o.KeyField?.ToLower() == "productno")
- // {
- // query = query.Where(a => a.ProductNo.StartsWith(o.KeyWords));
- // }
- //}
- string modelNo = "", materialNo = "", rigidityNo = "", surfaceColorNo = "";
- GetPropertiesNo(searchList, ref modelNo, ref materialNo, ref rigidityNo, ref surfaceColorNo);
- if (modelNo.IsNullOrEmpty())
- {
- CheckErrors("规格不能为空!");
- }
-
- //111,110,100,000
- if ((materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty()) || (!materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()) || (!materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty()) || (!materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty()))
- {
- query = query.Where(i => i.ProductNo.StartsWith("s" + modelNo + materialNo + rigidityNo + surfaceColorNo));
- }//101,001,011
- else if ((!materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()) || (materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()) || (materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()))
- {
- query = query.Where(i => i.ProductNo.StartsWith("s" + modelNo + materialNo) && i.ProductNo.Contains(rigidityNo + surfaceColorNo));
- //query = query.Where(i => i.ProductNo.EndsWith(rigidityNo + surfaceColorNo));
- }//010
- else if (materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty())
- {
- query = query.Where(i => i.ProductNo.StartsWith("s" + modelNo));
- query = query.Where(i => i.ProductNo.Contains(rigidityNo));
- }
- }
- query = query.Where(i => i.ActualQuantity > 0);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = query.OrderByDescending(i => i.TimeCreated);
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var dtos = new PagedResultDto<ViewCurrentProductStoreHouse>(
- totalCount,
- query.ToList()
- );
- return dtos;
- }
- public async Task<PagedResultDto<ViewCurrentSemiStoreHouse>> QueryViewCurrentSemiStoreHouseByProNo(PagedRequestDto input)
- {
- var query = ViewCurrentSemiStoreHouseRepository.GetAll();
- var searchList = input.SearchList;
- if (searchList != null && searchList.Count > 0)
- {
- //List<LambdaObject> objList = new List<LambdaObject>();
- //foreach (var o in searchList)
- //{
- // if (o.KeyWords.IsNullOrEmpty())
- // continue;
- // object keyWords = o.KeyWords;
- // if (o.KeyField?.ToLower() == "productno")
- // {
- // query = query.Where(a => a.SemiProductNo.StartsWith(o.KeyWords));
- // }
- //}
- string modelNo = "", materialNo = "", rigidityNo = "", surfaceColorNo = "";
- GetPropertiesNo(searchList, ref modelNo, ref materialNo, ref rigidityNo, ref surfaceColorNo);
- if (modelNo.IsNullOrEmpty())
- {
- CheckErrors("规格不能为空!");
- }
-
- //111,110,100,000
- if ((materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty()) || (!materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()) || (!materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty()) || (!materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty()))
- {
- query = query.Where(i => i.SemiProductNo.StartsWith("s" + modelNo + materialNo + rigidityNo + surfaceColorNo));
- }//101,001,011
- else if ((!materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()) || (materialNo.IsNullOrEmpty() && rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()) || (materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && !surfaceColorNo.IsNullOrEmpty()))
- {
- query = query.Where(i => i.SemiProductNo.StartsWith("s" + modelNo + materialNo)&& i.SemiProductNo.Contains(rigidityNo + surfaceColorNo));
- }//010
- else if (materialNo.IsNullOrEmpty() && !rigidityNo.IsNullOrEmpty() && surfaceColorNo.IsNullOrEmpty())
- {
- query = query.Where(i => i.SemiProductNo.StartsWith("s" + modelNo));
- query = query.Where(i => i.SemiProductNo.Contains(rigidityNo));
- }
- }
- query = query.Where(i => i.ActualQuantity > 0);
- var totalCount = await AsyncQueryableExecuter.CountAsync(query);
- query = query.OrderByDescending(i => i.TimeCreated);
- query = query.Skip(input.SkipCount).Take(input.MaxResultCount);
- var dtos = new PagedResultDto<ViewCurrentSemiStoreHouse>(
- totalCount,
- query.ToList()
- );
- return dtos;
- }
- #endregion
- #region 2024
- public async Task<Dictionary<int, List<DeviceMgPlanDto>>> QueryNeedMaintenanceMoldPlan()
- {
- Dictionary<int, List<DeviceMgPlanDto>> result = new Dictionary<int, List<DeviceMgPlanDto>>();
- var over =await DeviceMgPlanRepository.GetAllListAsync(i=>i.PlanType==1&&i.NumberOfUsers>=i.MaintenanceCycle );
- var comingSoon = await DeviceMgPlanRepository.GetAllListAsync(i => i.PlanType == 1
- && i.MaintenanceCycle > i.NumberOfUsers
- && ((i.MaintenanceCycle -
- i.NumberOfUsers) >= 10000));
- var overDtos = ObjectMapper.Map<List<DeviceMgPlanDto>>(over);
- var comingsoonDtos = ObjectMapper.Map<List<DeviceMgPlanDto>>(comingSoon);
- result.Add(1,overDtos);
- result.Add(2, comingsoonDtos);
- return result;
- }
- #endregion
- #region 2025
- /// <summary>
- /// 获取客户默认的产品信息
- /// </summary>
- /// <param name="customerId"></param>
- /// <returns></returns>
- public async Task<List<CustomerDefaultProduct>> GetCustomerDefaultProductByCustomerId(string customerId)
- {
- var allListAsync = await CustomerDefaultProductRepository.GetAllListAsync(i=>i.CustomerId == customerId);
- return allListAsync;
- }
- /// <summary>
- /// 获取产品属性
- /// </summary>
- /// <param name="productPropertyType"></param>
- /// <returns></returns>
- public async Task<List<ProductProperty>> GetProductPropertyEntity(string productPropertyType)
- {
- var types = new string[]{"1","2","3","4","5"};
- if (productPropertyType == "" || !types.Contains(productPropertyType))
- {
- return await ProductPropertyRepository.GetAllListAsync();
- }
- return await ProductPropertyRepository.GetAllListAsync(i=>i.PropertyType == productPropertyType);
- }
-
- #endregion
- }
- public class CommonQueryService
- {
- /// <summary>
- /// 获取产品海关编码
- /// </summary>
- /// <param name="customerId"></param>
- /// <param name="productNo"></param>
- /// <param name="customerDefaultProducts"></param>
- /// <returns></returns>
- public static string GetProductHsCode(string customerId, string productNo,
- List<CustomerDefaultProduct> customerDefaultProducts)
- {
- var customerDefaultProduct = customerDefaultProducts.FirstOrDefault(i => i.CustomerId == customerId && i.ProductNo == productNo);
- return customerDefaultProduct == null ? "" : customerDefaultProduct.ProductHsCode;
- }
- /// <summary>
- /// 根据产品编号获取产品HS码
- /// </summary>
- /// <param name="productNo"></param>
- /// <param name="productProperties"></param>
- /// <returns></returns>
- public static string GetMaterialHsCode(string productNo,
- List<ProductProperty> productProperties)
- {
- string materialNo = "";
- //新的产品编码标准,旧编码不处理
- if (productNo.StartsWith("s") && productNo.Length == 14)
- {
- // 提取第6到7个字符(索引5和6)
- materialNo = productNo.Substring(5, 2);
- }
- var type = ProductProperty.ProductMaterial + "";
- var property = productProperties.FirstOrDefault(i => i.PropertyType == type && i.PropertyNo == materialNo);
- return property != null ? property.HsCode : "";
- }
- }
- }
|