123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- using Dm;
- using MathNet.Numerics.RootFinding;
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection.Emit;
- using System.Reflection.PortableExecutable;
- using System.Text;
- using System.Threading.Tasks;
- using wms.sqlsugar.model.fj;
- using WMS.BZModels;
- using WMS.BZModels.Dto.FJ.BillMachInfoDtos;
- using WMS.BZSqlSugar;
- using WMS.Info;
- using WMS.Info.Models;
- using static System.Runtime.CompilerServices.RuntimeHelpers;
- namespace WMS.BZServices.FJ
- {
- public class BillMachinfoService
- {
- private readonly Repository<BillMachinfo> _billMachinfoRepository;
- private readonly Repository<BaseWarehouse> _baseWarehouseRepository;
- private readonly Repository<BaseWarearea> _baseWareareaRepository;
- public BillMachinfoService(Repository<BillMachinfo> billMachinfoRepository, Repository<BaseWarehouse> baseWarehouseRepository, Repository<BaseWarearea> baseWareareaRepository)
- {
- _billMachinfoRepository = billMachinfoRepository;
- _baseWarehouseRepository = baseWarehouseRepository;
- _baseWareareaRepository = baseWareareaRepository;
- }
- public PagedInfo<BillMachinfoDto> GetPageList(Pagination pagination, BillMachinfoQueryDto billDocsinfoQueryDto)
- {
- var predicate = Expressionable.Create<BillMachinfo, BaseWarehouse, BaseWarearea>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.Name), (billMachinfo, warehouse, warearea) => billMachinfo.Name.Contains(billDocsinfoQueryDto.Name));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.KeyWord), (billMachinfo, warehouse, warearea) => billMachinfo.MachNo.Contains(billDocsinfoQueryDto.KeyWord)
- || billMachinfo.Name.Contains(billDocsinfoQueryDto.KeyWord) || billMachinfo.Station.Contains(billDocsinfoQueryDto.KeyWord) || billMachinfo.GrpCode.Contains(billDocsinfoQueryDto.KeyWord));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.WarehouseId), (billMachinfo, warehouse, warearea) => billMachinfo.WarehouseId.ToString().Contains(billDocsinfoQueryDto.WarehouseId));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.MachNo), (billMachinfo, warehouse, warearea) => billMachinfo.MachNo.Contains(billDocsinfoQueryDto.MachNo));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.Station), (billMachinfo, warehouse, warearea) => billMachinfo.Station.Contains(billDocsinfoQueryDto.Station));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.GrpCode), (billMachinfo, warehouse, warearea) => billMachinfo.GrpCode.Contains(billDocsinfoQueryDto.GrpCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.BillCode), (billMachinfo, warehouse, warearea) => billMachinfo.BillCode.Equals(billDocsinfoQueryDto.BillCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.WareDirect), (billMachinfo, warehouse, warearea) => billMachinfo.WareDirect.Equals(billDocsinfoQueryDto.WareDirect));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.WareAreaId), (billMachinfo, warehouse, warearea) => billMachinfo.WareAreaId.Equals(billDocsinfoQueryDto.WareAreaId));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.Direction), (billMachinfo, warehouse, warearea) => billMachinfo.Direction.Contains(billDocsinfoQueryDto.Direction));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.WorkOrder), (billMachinfo, warehouse, warearea) => billMachinfo.WorkOrder.Equals(billDocsinfoQueryDto.WorkOrder));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.SetGrpCode), (billMachinfo, warehouse, warearea) => billMachinfo.SetGrpCode.Equals(billDocsinfoQueryDto.SetGrpCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.ProBillCode), (billMachinfo, warehouse, warearea) => billMachinfo.ProBillCode.Equals(billDocsinfoQueryDto.ProBillCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.ProWorkOrder), (billMachinfo, warehouse, warearea) => billMachinfo.ProWorkOrder.Equals(billDocsinfoQueryDto.ProWorkOrder));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.ProSetGrpCode), (billMachinfo, warehouse, warearea) => billMachinfo.ProSetGrpCode.Equals(billDocsinfoQueryDto.ProSetGrpCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.MacTypeCode), (billMachinfo, warehouse, warearea) => billMachinfo.MacTypeCode.Equals(billDocsinfoQueryDto.MacTypeCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billDocsinfoQueryDto?.MacTypeName), (billMachinfo, warehouse, warearea) => billMachinfo.MacTypeName.Contains(billDocsinfoQueryDto.MacTypeName));
- var list = _billMachinfoRepository.Context.Queryable<BillMachinfo, BaseWarehouse, BaseWarearea>((billMachinfo, warehouse, warearea) => new object[] {
- JoinType.Left,billMachinfo.WarehouseId == warehouse.Id , JoinType.Left, warehouse.Id==warearea.WarehouseId}).Where(predicate.ToExpression())
- .Select((billMachinfo, warehouse, warearea) => new BillMachinfoDto
- {
- Id = billMachinfo.Id.ToString(),
- WarehouseName = warehouse.Name,
- WarehouseId = billMachinfo.WarehouseId.ToString(),
- WarehouseCode = billMachinfo.WarehouseCode,
- WarehouseSort = billMachinfo.WarehouseSort,
- WareDirect = billMachinfo.WareDirect,
- WareAreaId = billMachinfo.WareAreaId.ToString(),
- IsStop = billMachinfo.IsStop,
- MachNo = billMachinfo.MachNo,
- Name = billMachinfo.Name,
- GrpCode = billMachinfo.GrpCode,
- Station = billMachinfo.Station,
- Direction = billMachinfo.Direction,
- BillCode = billMachinfo.BillCode,
- WorkOrder = billMachinfo.WorkOrder,
- SetGrpCode = billMachinfo.SetGrpCode,
- ProBillCode = billMachinfo.ProBillCode,
- ProWorkOrder = billMachinfo.ProWorkOrder,
- ProSetGrpCode = billMachinfo.ProSetGrpCode,
- Memo = billMachinfo.Memo,
- AddWho = billMachinfo.AddWho,
- EditWho = billMachinfo.EditWho,
- AddTime = billMachinfo.AddTime,
- EditTime = billMachinfo.EditTime,
- MacTypeCode = billMachinfo.MacTypeCode,
- MacTypeName = billMachinfo.MacTypeName,
- AgvPoint = billMachinfo.AgvPoint,
- NearestWarehouseName = billMachinfo.NearestWarehouseName
- }).MergeTable().ToPage(pagination);
- return list;
- }
- public void Save(LoginUserInfo loginUser, string keyValue, BillMachinfo entity)
- {
- if (string.IsNullOrWhiteSpace(entity.Name))
- {
- throw new ArgumentException("机台名称不能为空");
- }
- var warehouse = _baseWarehouseRepository.Queryable().First(o => o.Id == entity.WarehouseId);
- if (warehouse == null)
- {
- throw new ArgumentException("仓库不存在!");
- }
- var warearea = _baseWareareaRepository.Queryable().First(o => o.Id == entity.WareAreaId);
- if (keyValue.IsEmpty() || keyValue == "undefined")
- {
- var mat = _billMachinfoRepository.Count(p => p.MachNo == entity.MachNo);
- if (mat > 0)
- {
- throw new ArgumentException("机台号已存在");
- }
- entity.WarehouseId = warehouse.Id;
- entity.WarehouseCode = warehouse.Code;
- entity.WareAreaId = warearea == null ? 0 : warearea.Id;
- entity.AddTime = DateTime.Now;
- entity.AddWho = loginUser.UserNo;
- entity.EditTime = DateTime.Now;
- entity.EditWho = loginUser.UserNo;
- entity.IsStop = 0;
- _billMachinfoRepository.Insert(entity);
- }
- else
- {
- if (!long.TryParse(keyValue, out var id))
- {
- throw BZSysExCore.ThrowFailException("机台id错误!");
- }
- var mat = _billMachinfoRepository.Count(p => p.MachNo == entity.MachNo && p.Id != id);
- if (mat > 0)
- {
- throw new ArgumentException("机台号已存在");
- }
- entity.WarehouseId = warehouse.Id;
- entity.WarehouseCode = warehouse.Code;
- entity.WareAreaId = warearea == null ? 0 : warearea.Id;
- entity.EditTime = DateTime.Now;
- entity.EditWho = loginUser.UserNo;
- //注意更新的列。
- _billMachinfoRepository.AsUpdateable(entity).UpdateColumns(it => new { it.Name, it.WarehouseId, it.WarehouseCode, it.WareAreaId, it.EditTime, it.EditWho, it.MachNo, it.WareDirect, it.GrpCode, it.Station, it.Direction, it.MacTypeCode, it.MacTypeName, it.NearestWarehouseName }).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).IgnoreColumns(ignoreAllNullColumns: true).Where(it => it.Id == id).ExecuteCommand();
- }
- }
- public void Delete(long id)
- {
- var entity = _billMachinfoRepository.GetSingle(o => o.Id == id);
- if (entity == null)
- {
- throw BZSysExCore.ThrowFailException("机台不存在!");
- }
- _billMachinfoRepository.Deleteable().Where(it => it.Id == id).ExecuteCommand();
- }
- public void SaveWareDirect(LoginUserInfo loginUser, SaveWareDirectDto Data)
- {
- if (Data.Ids != null && Data.Ids.Length == 0)
- {
- throw BZSysExCore.ThrowFailException("没有选择数据!");
- }
- if (string.IsNullOrEmpty(Data.WarehouseId))
- {
- throw BZSysExCore.ThrowFailException("仓库不能为空!");
- }
- var wearhouse = _baseWarehouseRepository.Queryable().First(o => o.Id.Equals(Data.WarehouseId));
- if (wearhouse == null)
- {
- throw BZSysExCore.ThrowFailException("仓库不存在!");
- }
- var wareDirect = "N";
- if (wearhouse.Name.Contains("南"))
- {
- wareDirect = "S";
- }
- var lists = _billMachinfoRepository.Queryable().Where(o => Data.Ids.Contains(o.Id.ToString())).ToList();
- if (lists == null || lists.Count == 0)
- {
- throw BZSysExCore.ThrowFailException("没有机台数据!");
- }
- lists.ForEach(it =>
- {
- it.EditTime = DateTime.Now;
- it.EditWho = loginUser.UserNo;
- it.WarehouseId = wearhouse.Id;
- it.WarehouseCode = wearhouse.Code;
- it.WareDirect = wareDirect;
- });
- _billMachinfoRepository.UpdateRange(lists);
- }
- }
- }
|