| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356 |
- using AutoMapper;
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Wms.Screen.DataService.Impl;
- using Wms.Screen.DataService.Interface;
- using Wms.Screen.Dto.ZhongTian.Response;
- using Wms.Screen.Dto;
- using Wms.Screen.Service.IService;
- using System.Linq;
- using Wms.Screen.Dto.ZhongTian.Request;
- using Wms.Screen.Dto.ZhongTian;
- using WCS.Entity.Protocol.DataStructure;
- using System.Linq.Expressions;
- using static Dm.net.buffer.ByteArrayBuffer;
- using WCS.Protocol.SX.DataStructure;
- using WCS.Protocol.SX.QT;
- using System.Collections;
- namespace Wms.Screen.Service.Service
- {
- /// <summary>
- /// 时效
- /// </summary>
- public class ZhongTianSxService : IZhongTianSxService
- {
- private IZhongTianSxDataService _zhongTianSxDataService;
- private IMapper _Mapper;
- private readonly FreeRedis.RedisClient _freeRedisClient;
- public ZhongTianSxService(IZhongTianSxDataService zhongTianSxDataService, IMapper mapper, FreeRedis.RedisClient freeRedisClient)
- {
- _zhongTianSxDataService = zhongTianSxDataService;
- _Mapper = mapper;
- _freeRedisClient = freeRedisClient;
- }
- public PageResult<ReverseErrorInfo> GetReverseErrorInfo()
- {
- var result = new PageResult<ReverseErrorInfo>() { ReturnValue = new List<ReverseErrorInfo>() };
- var list = _zhongTianSxDataService.GetReverseErrorInfo();
- result.ReturnValue = list.ToList();
- return result;
- }
- public List<TorsiveTestEquipDto> GetTorsiveTestEquips(GetEquipsRequest reqEntity)
- {
- var real = new List<TorsiveTestEquipDto>();
- // var list = _zhongTianSxDataService.GetSxEquips(reqEntity);
- var Len = _freeRedisClient.LLen("Packs");
- var dataPack = _freeRedisClient.LIndex<DataPack>("Packs", Len - 1);
- List<TorsiveTestEquipDto> result = new List<TorsiveTestEquipDto>{
- new TorsiveTestEquipDto { Code = "QT1" }, new TorsiveTestEquipDto { Code = "QT2" }, new TorsiveTestEquipDto { Code = "QT3" }, new TorsiveTestEquipDto { Code = "QT4" }, new TorsiveTestEquipDto { Code = "QT5" }, new TorsiveTestEquipDto { Code = "QT6" }, new TorsiveTestEquipDto { Code = "QT7" }, new TorsiveTestEquipDto { Code = "QT8" }, new TorsiveTestEquipDto { Code = "QT9" }, new TorsiveTestEquipDto { Code = "QT10" } };
- foreach (var equipDto in result)
- {
- try
- {
- if (equipDto.Code.Contains("QT"))
- {
- var qt = dataPack.QT51?.FirstOrDefault(o => o.Code.Equals(equipDto.Code));
- if (qt != null)
- {
- if (qt.Data?.Enable == QTStatus.启用 && qt.Data?.RunStatus == QTRunStatus.空闲 && qt.Data?.Fault == QTFault.非异常)
- {
- equipDto.EquipState = "1";
- }
- else if (qt.Data?.Fault == QTFault.异常)
- {
- equipDto.EquipState = "3";
- }
- else if (qt.Data?.RunStatus == QTRunStatus.非空闲 || qt.Data?.Enable == QTStatus.停用)
- {
- equipDto.EquipState = "2";
- }
- else
- {
- equipDto.EquipState = "0";
- }
- }
- //todo
- equipDto.ResidueTask = _zhongTianSxDataService.GetTorschWbCount(equipDto.Code.Replace("QT", "")).WbCount;
- equipDto.MatInfos = new List<string>();
- var bindlist = _zhongTianSxDataService.GetTorStaticsInfo(equipDto.Code.Replace("QT", ""));
- if (bindlist != null && bindlist.Any())
- {
- bindlist = bindlist.OrderBy(p => p.WorkStation).ToList();
- for (int j = 1; j < 5; j++)
- {
- var item = bindlist.FirstOrDefault(o => o.WorkStation == j.ToString());
- if (item != null)
- {
- equipDto.MatInfos.Add(item.ContBarCode);
- }
- else
- {
- equipDto.MatInfos.Add("");
- }
- }
- }
- else
- {
- for (int i = 0; i < 4; i++)
- {
- equipDto.MatInfos.Add("");
- }
- }
- }
- }
- catch
- {
- }
- }
- return result;
- }
- public List<SXPalletizingInfo> GetPalletizingInfo()
- {
- var real = new List<EquipDto>();
- var list = _zhongTianSxDataService.GetPalletizingTasks();
- var Len = _freeRedisClient.LLen("Packs");
- var dataPack = _freeRedisClient.LIndex<DataPack>("Packs", Len - 1);
- List<SXPalletizingInfo> result = new List<SXPalletizingInfo>
- {
- new SXPalletizingInfo
- {
- Code = "8090",
- Equips =new List<List<EquipDto>> {
- new List<EquipDto> { new EquipDto { Code = "SRM101" }, new EquipDto { Code = "SRM102" }, new EquipDto { Code = "SRM103" }, new EquipDto { Code = "SRM104" }, new EquipDto { Code = "SRM105" }, new EquipDto { Code = "SRM106" }, new EquipDto { Code = "SRM107" }, new EquipDto { Code = "SRM108" } },
- new List<EquipDto> { new EquipDto { Code = "SRM201" }, new EquipDto { Code = "SRM202" }, new EquipDto { Code = "SRM203" }, new EquipDto { Code = "SRM204" }, new EquipDto { Code = "SRM205" }, new EquipDto { Code = "SRM206" }, new EquipDto { Code = "SRM207" }, new EquipDto { Code = "SRM208" } },
- new List<EquipDto> { new EquipDto { Code = "SRM301" }, new EquipDto { Code = "SRM302" }, new EquipDto { Code = "SRM303" }, new EquipDto { Code = "SRM304" }, new EquipDto { Code = "SRM305" }, new EquipDto { Code = "SRM306" }, new EquipDto { Code = "SRM307" }, new EquipDto { Code = "SRM308" } }
- }},
- new SXPalletizingInfo
- {
- Code = "8092",
- Equips =new List<List<EquipDto>> {
- new List<EquipDto> { new EquipDto { Code = "SRM101" }, new EquipDto { Code = "SRM102" }, new EquipDto { Code = "SRM103" }, new EquipDto { Code = "SRM104" }, new EquipDto { Code = "SRM105" }, new EquipDto { Code = "SRM106" }, new EquipDto { Code = "SRM107" }, new EquipDto { Code = "SRM108" } },
- new List<EquipDto> { new EquipDto { Code = "SRM201" }, new EquipDto { Code = "SRM202" }, new EquipDto { Code = "SRM203" }, new EquipDto { Code = "SRM204" }, new EquipDto { Code = "SRM205" }, new EquipDto { Code = "SRM206" }, new EquipDto { Code = "SRM207" }, new EquipDto { Code = "SRM208" } },
- new List<EquipDto> { new EquipDto { Code = "SRM301" }, new EquipDto { Code = "SRM302" }, new EquipDto { Code = "SRM303" }, new EquipDto { Code = "SRM304" }, new EquipDto { Code = "SRM305" }, new EquipDto { Code = "SRM306" }, new EquipDto { Code = "SRM307" }, new EquipDto { Code = "SRM308" } }
- } },
- new SXPalletizingInfo
- {
- Code = "8096",
- Equips =new List<List<EquipDto>> {
- new List<EquipDto> { new EquipDto { Code = "SRM101" }, new EquipDto { Code = "SRM102" }, new EquipDto { Code = "SRM103" }, new EquipDto { Code = "SRM104" }, new EquipDto { Code = "SRM105" }, new EquipDto { Code = "SRM106" }, new EquipDto { Code = "SRM107" }, new EquipDto { Code = "SRM108" } },
- new List<EquipDto> { new EquipDto { Code = "SRM201" }, new EquipDto { Code = "SRM202" }, new EquipDto { Code = "SRM203" }, new EquipDto { Code = "SRM204" }, new EquipDto { Code = "SRM205" }, new EquipDto { Code = "SRM206" }, new EquipDto { Code = "SRM207" }, new EquipDto { Code = "SRM208" } },
- new List<EquipDto> { new EquipDto { Code = "SRM301" }, new EquipDto { Code = "SRM302" }, new EquipDto { Code = "SRM303" }, new EquipDto { Code = "SRM304" }, new EquipDto { Code = "SRM305" }, new EquipDto { Code = "SRM306" }, new EquipDto { Code = "SRM307" }, new EquipDto { Code = "SRM308" } }
- } },
- new SXPalletizingInfo
- {
- Code = "8098",
- Equips =new List<List<EquipDto>> {
- new List<EquipDto> { new EquipDto { Code = "SRM101" }, new EquipDto { Code = "SRM102" }, new EquipDto { Code = "SRM103" }, new EquipDto { Code = "SRM104" }, new EquipDto { Code = "SRM105" }, new EquipDto { Code = "SRM106" }, new EquipDto { Code = "SRM107" }, new EquipDto { Code = "SRM108" } },
- new List<EquipDto> { new EquipDto { Code = "SRM201" }, new EquipDto { Code = "SRM202" }, new EquipDto { Code = "SRM203" }, new EquipDto { Code = "SRM204" }, new EquipDto { Code = "SRM205" }, new EquipDto { Code = "SRM206" }, new EquipDto { Code = "SRM207" }, new EquipDto { Code = "SRM208" } },
- new List<EquipDto> { new EquipDto { Code = "SRM301" }, new EquipDto { Code = "SRM302" }, new EquipDto { Code = "SRM303" }, new EquipDto { Code = "SRM304" }, new EquipDto { Code = "SRM305" }, new EquipDto { Code = "SRM306" }, new EquipDto { Code = "SRM307" }, new EquipDto { Code = "SRM308" } }
- }}};
- foreach (var item in result)
- {
- foreach (var equips in item.Equips)
- {
- foreach (var equipDto in equips)
- {
- try
- {
- if (equipDto.Code.Contains("SRM"))
- {
- var srm521 = dataPack.SRM521?.FirstOrDefault(o => o.Code.Equals(equipDto.Code));
- if (srm521 != null)
- {
- equipDto.EquipState = srm521.Data?.Mode.GetHashCode() == 1 ? "1" : "2";
- }
- var srm542 = dataPack.SRM542?.FirstOrDefault(o => o.Code.Equals(equipDto.Code));
- if (srm542 != null && ((int)srm542?.Data.Alarm > 0 || (int)srm542?.Data.Alarm1 > 0))
- {
- equipDto.EquipState = "3";
- }
- equipDto.ResidueTask = list.Count(o => !string.IsNullOrEmpty(o.Device) && o.Device.Equals(equipDto.Code) && o.AddrTo == item.Code);
- }
- }
- catch
- {
- }
- }
- }
- item.TotalQty = list.Count(o => o.AddrTo == item.Code);
- }
- return result;
- }
- public List<List<EquipDto>> GetSxEquips(GetEquipsRequest reqEntity)
- {
- var real = new List<EquipDto>();
- var list = _zhongTianSxDataService.GetSxEquips(reqEntity);
- var Len = _freeRedisClient.LLen("Packs");
- var dataPack = _freeRedisClient.LIndex<DataPack>("Packs", Len - 1);
- List<List<EquipDto>> result = new List<List<EquipDto>>
- {
- new List<EquipDto> { new EquipDto { Code = "SRM101" }, new EquipDto { Code = "SRM102" }, new EquipDto { Code = "SRM103" }, new EquipDto { Code = "SRM104" }, new EquipDto { Code = "SRM105" }, new EquipDto { Code = "SRM106" }, new EquipDto { Code = "SRM107" }, new EquipDto { Code = "SRM108" } },
- new List<EquipDto> { new EquipDto { Code = "SRM201" }, new EquipDto { Code = "SRM202" }, new EquipDto { Code = "SRM203" }, new EquipDto { Code = "SRM204" }, new EquipDto { Code = "SRM205" }, new EquipDto { Code = "SRM206" }, new EquipDto { Code = "SRM207" }, new EquipDto { Code = "SRM208" }, new EquipDto { Code = "Robot1" } },
- new List<EquipDto> { new EquipDto { Code = "SRM301" }, new EquipDto { Code = "SRM302" }, new EquipDto { Code = "SRM303" }, new EquipDto { Code = "SRM304" }, new EquipDto { Code = "SRM305" }, new EquipDto { Code = "SRM306" }, new EquipDto { Code = "SRM307" }, new EquipDto { Code = "SRM308" }, new EquipDto { Code = "Robot2" } }
- };
- foreach (var item in result)
- {
- foreach (var equipDto in item)
- {
- try
- {
- if (equipDto.Code.Contains("SRM"))
- {
- var srm521 = dataPack.SRM521?.FirstOrDefault(o => o.Code.Equals(equipDto.Code));
- if (srm521 != null)
- {
- equipDto.EquipState = srm521.Data?.Mode.GetHashCode() == 1 ? "1" : "2";
- }
- var srm542 = dataPack.SRM542?.FirstOrDefault(o => o.Code.Equals(equipDto.Code));
- if (srm542 != null && ((int)srm542?.Data.Alarm > 0 || (int)srm542?.Data.Alarm1 > 0))
- {
- equipDto.EquipState = "3";
- }
- equipDto.ResidueTask = list.Count(o => !string.IsNullOrEmpty(o.Device) && o.Device.Equals(equipDto.Code)
- && ((o.Type == TaskType.OutDepot && o.Status <= 20 && o.Status >= 0)
- || (o.Type == TaskType.TransferDepot && o.Status <= 20 && o.Status >= 0)
- || (o.Type == TaskType.EnterDepot && o.Status >= 20 && o.Status < 99))
- );
- }
- else if (equipDto.Code.Contains("Robot"))
- {
- var robot521 = dataPack.Robot521?.FirstOrDefault(o => o.Code.Equals(equipDto.Code));
- if (robot521 != null)
- {
- equipDto.EquipState = robot521.Data?.Mode.GetHashCode().ToString();
- }
- var robot522 = dataPack.Robot522?.FirstOrDefault(o => o.Code.Equals(equipDto.Code));
- if (robot522 != null && (int)robot522.Data?.Alarm > 0)
- {
- equipDto.EquipState = "3";
- }
- equipDto.ResidueTask = list.Count(o => !string.IsNullOrEmpty(o.Robot) && o.Robot.Equals(equipDto.Code) && o.Type == TaskType.OutDepot && o.Status < 55 && o.Status > 0 && o.BusType == "装箱码垛");
- }
- }
- catch
- {
- }
- }
- }
- return result;
- }
- public List<LocationUsageReportViewDto> GetSxLocationUsageViewList()
- {
-
- var lists = _zhongTianSxDataService.GetSxLocationUsageReportList();
- //result.ReturnValue = list.ToList();
- //result.ItemGroupSum = new List<ItemGroup>() {
- //new ItemGroup(){ UnitName="总货位",qty=list.Sum(s=>s.AllLocationTotal)},
- //new ItemGroup(){ UnitName="有效货位",qty=list.Sum(s=>s.CanUseLocation)},
- //new ItemGroup(){ UnitName="空余货位",qty=list.Sum(s=>s.SpareLocation)},
- //new ItemGroup(){ UnitName="锁定货位",qty=list.Sum(s=>s.LockLocation)},
- //new ItemGroup(){ UnitName="停用货位",qty=list.Sum(s=>s.StopLocation)},
- //new ItemGroup(){ UnitName="有料货位",qty=list.Sum(s=>s.MaterilLocation)},
- //new ItemGroup(){ UnitName="有容器货位",qty=list.Sum(s=>s.ContainLocation)}
- //};
- var tunnellists = _zhongTianSxDataService.GetTunnelStopList();
- var confLocRateVal = _zhongTianSxDataService.GetSysConfig("LocRateVal");
- if (tunnellists != null && tunnellists.Any())
- {
- //更新巷道状态
- lists.ForEach(s =>
- {
- var conf = tunnellists.Where(m => m.Tunnel == s.Tunnel && m.Floor == s.Floor).ToList();
- if (conf != null)
- {
- if (conf.Where(o => o.Name.Contains("入库")).Any())
- {
- s.InStates = conf.Where(o => o.Name.Contains("入库")).First().StatuName;
- }
- if (conf.Where(o => o.Name.Contains("出库")).Any())
- {
- s.OutStates = conf.Where(o => o.Name.Contains("出库")).First().StatuName;
- }
- s.LocYWarnVal = int.Parse(confLocRateVal.Default2) ;
- s.LocRWarnVal = int.Parse(confLocRateVal.Default1);
- }
- });
- }
-
- lists = lists.OrderBy(s => s.Tunnel).ThenBy(o => o.Floor).ToList();
- lists.Add(new LocationUsageReportViewDto()
- {
- Tunnel = "",
- Floor = "",
- WarehouseName = "合计:",
- AllLocationTotal = lists.Sum(s => s.AllLocationTotal),
- CanUseLocation = lists.Sum(s => s.CanUseLocation),
- SpareLocation = lists.Sum(s => s.SpareLocation),
- LockLocation = lists.Sum(s => s.LockLocation),
- StopLocation = lists.Sum(s => s.StopLocation),
- MaterilLocation = lists.Sum(s => s.MaterilLocation),
- });
- return lists;
- }
- public List<ProductPackRule> GetSxProductPackRule(GetWorkPlanBillListRequest reqEntity)
- {
- var list = _zhongTianSxDataService.GetSxProductPackRule(reqEntity);
- return list;
- }
- public List<SXTaskInfoDto> GetSxTaskInfo(GetWcsTaskInfoRequest ReqEntity)
- {
- //List<TaskInfoDto> taskInfoDtos = new List<TaskInfoDto>();
- var taskInfoDtos = _zhongTianSxDataService.GetSxRunWcsTaskInfo(ReqEntity);
- return taskInfoDtos;
- }
- public List<SXStockDto> GetExceptionStockInfo()
- {
- var StockInfoDtos = _zhongTianSxDataService.GetExceptionStockInfo();
- return StockInfoDtos;
- }
- public List<CurStockInfo> GetCurStockInfo()
- {
- var StockInfoDtos = _zhongTianSxDataService.GetCurStockInfo();
- return StockInfoDtos;
- }
- public List<CurStockInfo> GetCurStockInfoControl()
- {
- var StockInfoDtos = _zhongTianSxDataService.GetCurStockInfoControl();
- return StockInfoDtos;
- }
- public TorStaticsInfo GetTorStaticsInfo()
- {
- var StockInfoDtos = _zhongTianSxDataService.GetTorStaticsInfo();
- return StockInfoDtos;
- }
- }
- }
|