EquipmentVisualService.cs 5.9 KB
using Hh.Mes.Common.Request;
using Hh.Mes.POJO.Entity;
using Hh.Mes.POJO.EnumEntitys;
using Hh.Mes.POJO.Response;
using Hh.Mes.Service.Repository;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Security.Claims;
using System.Text;

namespace Hh.Mes.Service.WebService.Equipment
{
    /// <summary>
    /// 设备可视化参数
    /// </summary>
    public class EquipmentVisualService : RepositorySqlSugar<base_equipment>
    {
        /// <summary>
        /// 设备文件、设备报警记录
        /// </summary>
        public Response GetEquipmentFileList(base_equipment model)
        {
            var result = new Response();
            var stringBuilder = new StringBuilder();

            stringBuilder.AppendLine($@" select * from sys_File
                                         where targetId=@targetId and targetTableName='base_equipment'
                                         union all
                                         select * from sys_File
                                         where targetId=@targetId2 and targetTableName='base_equipment_type';

                                        select * from daq_equipment_alarm_record t1  with (nolock)
                                        where t1.IsHandled =0 and t1.EquipmentCode=@EquipmentCode
                                        order by  t1.CreateTime desc");
            var dt = base.Context.Ado.GetDataSetAll(stringBuilder.ToString(), new List<SugarParameter>(){
                      new SugarParameter("@targetId", model.equipmentCode),
                      new SugarParameter("@targetId2", model.equipmentTypeCode),
                      new SugarParameter("@EquipmentCode", model.equipmentCode),
            });
            result.Result = new {
                fileList = dt.Tables[0],
                alarmList = dt.Tables[1],
            };
            result.Count = 1;
            return result;
        }

        public Response GetEquipmentMaintainList(base_equipment model)
        {
            var result = new Response();
            var stringBuilder = new StringBuilder();
            //设备保养概述总表关联部件基础信息表
            stringBuilder.AppendLine(@"SELECT
                                            t.EquipmentCode AS equipmentCode,
                                            t.EquipmentName AS equipmentName,
                                            p.partCode,
                                            p.partName,
                                            rd.indicator,
                                            rd.indicatorType,
                                            rd.price,
                                            t.MaintainNumber AS maintainNumber, --总保养
                                            t.ToBeMaintainedNumber AS toBeMaintainNumber --待保养次数
                                        FROM dbo.bus_equipment_maintain_record_top t
                                        LEFT JOIN  dbo.base_equipment_part p ON t.EquipmentTypeCode=p.equipmentTypeCode
                                        LEFT JOIN  dbo.bus_equipment_maintain_rule_detail  rd ON rd.equipmentPartCode=p.partCode
                                        WHERE t.EquipmentCode='@equipmentCode'");
            var dt = base.Context.Ado.GetDataTable(stringBuilder.ToString(), new List<SugarParameter>(){
                      new SugarParameter("@equipmentCode", model.equipmentCode),
            });
            result.Result = dt;
            return result;
        }

        /// <summary>
        /// 获取设备部件保养记录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public Response GetEquipmentMaintainRecordList(base_equipment_part model)
        {
            var result=new Response();
            var stringBuilder = new StringBuilder();
            stringBuilder.AppendLine(@"SELECT
                                            h.EquipmentCode,
                                            h.EquipmentTypeCode,
                                            h.PartCode,
                                            h.PartName,
                                            h.LastMaintainTime,
                                            h.NextMaintainTime,
                                            d.MaintainTime,
                                            d.Maintainer,
                                            d.MaintainContent,
                                            d.MaintainPrice,
                                            d.PushStatus,
                                            d.Attachment,
                                            d.Remark
                                        FROM dbo.bus_equipment_maintain_record_head h LEFT
                                        JOIN dbo.bus_equipment_maintain_record_detail d
                                        ON h.Keys=d.HeadKeys
                                        WHERE h.EquipmentCode='@equipmentCode' AND h.PartCode='@partCode' AND h.Status='@status'");
            //已保养
            var dt = base.Context.Ado.GetDataTable(stringBuilder.ToString(), new List<SugarParameter>(){
                      new SugarParameter("@equipmentCode", model.partCode),
                      new SugarParameter("@partCode", model.partCode),
                      new SugarParameter("@status", MaintainStatus.Maintained),
            });

            //待保养
            var dt_tobe = base.Context.Ado.GetDataTable(stringBuilder.ToString(), new List<SugarParameter>(){
                      new SugarParameter("@equipmentCode", model.partCode),
                      new SugarParameter("@partCode", model.partCode),
                      new SugarParameter("@status", MaintainStatus.ToBeMaintain),
            });
            result.Result = new {
                maintainList = dt,
                tobemaintainList = dt_tobe
            };
            return result;
        }
    }
}