123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using wms.sqlsugar.model.fj;
- using WMS.BZModels.Dto.FJ.WCSPalletizingDtos;
- using WMS.BZModels;
- using WMS.BZSqlSugar;
- using WMS.Info;
- using WMS.BZModels.Dto.FJ.BillRingpalletizinginfoDtos;
- using Org.BouncyCastle.Crypto;
- namespace WMS.BZServices.FJ
- {
- public class BillRingpalletizinginfoService
- {
- private readonly Repository<BillRingpalletizinginfo> _billRingpalletizinginfoRepository;
- private readonly Repository<BillBomsetgrp> _billBomsetgrpRepository;
- private readonly Repository<BaseWarehouse> _wareHouserepository;
- public BillRingpalletizinginfoService(Repository<BillRingpalletizinginfo> billRingpalletizinginfoRepository, Repository<BillBomsetgrp> billBomsetgrpRepository, Repository<BaseWarehouse> wareHouserepository)
- {
- _billRingpalletizinginfoRepository = billRingpalletizinginfoRepository;
- _billBomsetgrpRepository = billBomsetgrpRepository;
- _wareHouserepository = wareHouserepository;
- }
- public PagedInfo<BillRingpalletizinginfoDto> GetPageList(Pagination pagination, BillRingpalletizinginfoQueryDto wcsPalletizingQueryDto)
- {
- var predicate = Expressionable.Create<BillRingpalletizinginfo, BillBomsetgrp>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.KeyWord), (Ringpalletizing, Bomsetgrp) => Ringpalletizing.BomCode.ToString().Contains(wcsPalletizingQueryDto.KeyWord) || Bomsetgrp.Name.Contains(wcsPalletizingQueryDto.KeyWord));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.WareHouseId), (Ringpalletizing, Bomsetgrp) => Ringpalletizing.WareHouseId.Equals(wcsPalletizingQueryDto.WareHouseId));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.BomSetGrpName), (Ringpalletizing, Bomsetgrp) => Bomsetgrp.Name.Equals(wcsPalletizingQueryDto.BomSetGrpName) || Bomsetgrp.Code.Equals(wcsPalletizingQueryDto.BomSetGrpName));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.BomCode), (Ringpalletizing, Bomsetgrp) => Ringpalletizing.BomCode.Contains(wcsPalletizingQueryDto.BomCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.Id), (Ringpalletizing, Bomsetgrp) => Ringpalletizing.Id.ToString().Contains(wcsPalletizingQueryDto.Id));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wcsPalletizingQueryDto?.Out), (Ringpalletizing, Bomsetgrp) => Ringpalletizing.Out.Equals(wcsPalletizingQueryDto.Out));
- predicate = predicate.AndIF(wcsPalletizingQueryDto != null && wcsPalletizingQueryDto.AddTimeFrom.HasValue, (Ringpalletizing, Bomsetgrp) => Ringpalletizing.AddTime >= wcsPalletizingQueryDto.AddTimeFrom);
- predicate = predicate.AndIF(wcsPalletizingQueryDto != null && wcsPalletizingQueryDto.AddTimeTo.HasValue, (Ringpalletizing, Bomsetgrp) => Ringpalletizing.AddTime <= wcsPalletizingQueryDto.AddTimeTo);
- var list = _billRingpalletizinginfoRepository.Context.Queryable<BillRingpalletizinginfo, BillBomsetgrp>((Ringpalletizing, Bomsetgrp) => new object[] { JoinType.Left, Ringpalletizing.BomSetGrpId == Bomsetgrp.Id }).Where(predicate.ToExpression())
- .Select((Ringpalletizing, Bomsetgrp) => new BillRingpalletizinginfoDto
- {
- Id = Ringpalletizing.Id.ToString(),
- WareHouseId = Ringpalletizing.WareHouseId.ToString(),
- BomSetGrpId = Ringpalletizing.BomSetGrpId.ToString(),
- BomSetGrpName = Bomsetgrp.Name,
- BomSetGrpCode = Bomsetgrp.Code,
- HWCountQty = Ringpalletizing.HWCountQty,
- BomCode = Ringpalletizing.BomCode,
- HaveQty = Ringpalletizing.HaveQty,
- Out = Ringpalletizing.Out,
- Memo = Ringpalletizing.Memo,
- AddWho = Ringpalletizing.AddWho,
- EditWho = Ringpalletizing.EditWho,
- AddTime = Ringpalletizing.AddTime,
- EditTime = Ringpalletizing.EditTime,
- LastXYNO = Ringpalletizing.LastXYNO,
- }).MergeTable()
- .ToPage(pagination);
- var wareHouses = _wareHouserepository.Queryable().Where(o => o.IsStop == 0).ToList();
- list.Result.ForEach(o =>
- {
- o.WarehouseName = wareHouses.FirstOrDefault(v => o.WareHouseId == v.Id.ToString())?.Name ?? "";
- });
- return list;
- }
- public bool UpdateOut(List<string> ids, string outstatus, string userId)
- {
- var list = _billRingpalletizinginfoRepository.Queryable().Where(o => ids.Contains(o.Id.ToString())).ToList();
- if (!list.Any())
- {
- throw new ArgumentException("没有找到该码垛数据!");
- }
- bool status = Convert.ToBoolean(Convert.ToInt32(outstatus));
- list.ForEach(o =>
- {
- o.Out = status;
- o.EditWho = userId;
- o.EditTime = DateTime.Now;
- o.Memo = o.Memo + "手动,";
- });
- var result = _billRingpalletizinginfoRepository.UpdateRange(list.ToArray());
- return result;
- }
- public bool UpdateHaveQty(LoginUserInfo loginUser, long keyValue, BillRingpalletizinginfo entity)
- {
- var first = _billRingpalletizinginfoRepository.Queryable().First(o => o.Id.Equals(keyValue));
- if (first == null)
- {
- throw new ArgumentException("没有找到该码垛数据!");
- }
- first.HaveQty = entity.HaveQty;
- first.LastXYNO = entity.LastXYNO;
- first.EditTime = DateTime.Now;
- first.EditWho = loginUser.UserNo;
- var result = _billRingpalletizinginfoRepository.UpdateEntity(first);
- return result;
- }
- public bool UpdateOvertimeOut(List<string> ids, string userId)
- {
- var list = _billRingpalletizinginfoRepository.Queryable().Where(o => ids.Contains(o.Id.ToString())).ToList();
- if (!list.Any())
- {
- throw new ArgumentException("没有找到该码垛数据!");
- }
- list.ForEach(o =>
- {
- o.AddTime = o.AddTime.AddHours(-72);
- o.EditWho = userId;
- o.EditTime = DateTime.Now;
- o.Memo = o.Memo + "手动超时,";
- });
- var result = _billRingpalletizinginfoRepository.UpdateRange(list.ToArray());
- return result;
- }
- }
- }
|