| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487 |
- 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.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
- }
- [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)
- {
- 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;
- }
- 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; }
- /// <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 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
- }
- }
|