ningshuxia
2022-11-29 a46259b6f1d8d66e0917126eced4a7be16026299
苏州金庭肯特修改
已修改5个文件
已添加10个文件
1440 ■■■■■ 文件已修改
Application/IStation.Application.Product/IStation.Application.Product.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/sim_card/SimCard_Controller.cs 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/sim_card/dto/AddSimCardInput.cs 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/sim_card/dto/SimCardDto.cs 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/sim_card/dto/UpdateSimCardInput.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/sim_card/helper/SimCardTransferHelper.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/tong_xin_she_bei/Communication_Controller.cs 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/tong_xin_she_bei/dto/AddCommunicationInput.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/tong_xin_she_bei/dto/CommunicationDto.cs 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/tong_xin_she_bei/dto/UpdateCommunicationInput.cs 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/special/tong_xin_she_bei/helper/CommunicationTransferHelper.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Run/data_docking/DataDocking_StandardController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Entity/IStation.Entity.Product/sim/SimPaymentRecord.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Entry/IStation.WebApi.Entry/IStation.WebApi.Entry.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/IStation.Model.Core/IStation.Model.Core.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Product/IStation.Application.Product.csproj
@@ -25,8 +25,4 @@
    <ProjectReference Include="..\IStation.Application.Core\IStation.Application.Core.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="tong_xin_she_bei\" />
  </ItemGroup>
</Project>
Application/IStation.Application.Product/special/sim_card/SimCard_Controller.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,223 @@
using Microsoft.AspNetCore.Mvc;
using System.Net;
using System.Net.Http.Headers;
using Microsoft.Extensions.Hosting.Internal;
using Microsoft.AspNetCore.Http.Extensions;
using IStation.Untity;
using Furion.DynamicApiController;
using System.ComponentModel.DataAnnotations;
using Mapster;
namespace IStation.Application
{
    /// <summary>
    /// SimCard
    /// </summary>
    [Route("Product/SimCard")]
    [ApiDescriptionSettings("Product", Name = "SIM卡", Order = 600)]
    public class SimCard_Controller : IDynamicApiController
    {
        private readonly Service.Product _service = new Service.Product();
        #region Query
        /// <summary>
        /// é€šè¿‡ CorpID èŽ·å–
        /// </summary>
        [Route("GetByCorpID@V1.0")]
        [HttpGet]
        public List<SimCardDto> GetByCorpID([FromQuery][Required] CorpIDInput input)
        {
            var list = _service.GetByCatalog(input.CorpID, Product.Catalog_Sim);
            var vm_list = list?.Select(x => new SimCardDto(x)).ToList();
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        [Route("GetByID@V1.0")]
        [HttpGet]
        public SimCardDto GetByID([FromQuery][Required] IDUnderCorpInput input)
        {
            var model = _service.GetByID(input.CorpID, input.ID);
            if (model == null)
                return null;
            if (model.Catalog != Product.Catalog_Sim)
                return null;
            return new SimCardDto(model);
        }
        /// <summary>
        /// é€šè¿‡ Ids èŽ·å–
        /// </summary>
        [Route("GetByIds@V1.0")]
        [HttpGet]
        public List<SimCardDto> GetByIds([FromQuery][Required] IdsUnderCorpInput input)
        {
            var ids = LongListHelper.ToList(input.Ids);
            var list = _service.GetByIds(input.CorpID, ids);
            list = list?.Where(x => x.Catalog == Product.Catalog_Sim).ToList();
            var vm_list = list?.Select(x => new SimCardDto(x)).ToList();
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ BelongType and BelongID获取
        /// </summary>
        [Route("GetByBelongTypeAndBelongID@V1.0")]
        [HttpGet]
        public List<SimCardDto> GetByBelongTypeAndBelongID([FromQuery][Required] BelongUnderCorpInput input)
        {
            var list = _service.GetByBelongTypeAndBelongID(input.CorpID, input.BelongType, input.BelongID);
            list = list?.Where(x => x.Catalog == Product.Catalog_Sim).ToList();
            var vm_list = list?.Select(x => new SimCardDto(x)).ToList();
            return vm_list; ;
        }
        /// <summary>
        /// é€šè¿‡ BelongType and BelongIds èŽ·å–
        /// </summary>
        [Route("GetByBelongTypeAndBelongIds@V1.0")]
        [HttpGet]
        public List<SimCardDto> GetByBelongTypeAndBelongIds([FromQuery][Required] BelongIdsUnderCorpInput input)
        {
            var list = _service.GetByBelongTypeAndBelongIds(input.CorpID, input.BelongType, LongListHelper.ToList(input.BelongIds));
            list = list?.Where(x => x.Catalog == Product.Catalog_Sim).ToList();
            var vm_list = list?.Select(x => new SimCardDto(x)).ToList();
            return vm_list; ;
        }
        #endregion
        #region Insert
        /// <summary>
        /// æ’入一条
        /// </summary>
        [Route("Insert@V1.0")]
        [HttpPost]
        public long Insert(AddSimCardInput input)
        {
            if (input == null)
                return default;
            var product = input.ToProduct();
            var id = _service.Insert(product);
            return id;
        }
        /// <summary>
        /// æ’入多条
        /// </summary>
        [Route("Inserts@V1.0")]
        [HttpPost]
        public bool Inserts(List<AddSimCardInput> inputList)
        {
            if (inputList == null || inputList.Count < 1)
                return false;
            var list = inputList.Select(x => x.ToProduct()).ToList();
            var bol = _service.Inserts(list);
            return bol;
        }
        #endregion
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        [Route("Update@V1.0")]
        [HttpPut]
        public bool Update(UpdateSimCardInput input)
        {
            if (input == null)
                return false;
            var product = _service.GetByID(input.CorpID, input.ID);
            if (product == null)
                return false;
            input.UpdateProduct(product);
            var bol = _service.Update(product);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°å¤šæ¡
        /// </summary>
        [Route("Updates@V1.0")]
        [HttpPut]
        public bool Updates(List<UpdateSimCardInput> inputList)
        {
            if (inputList == null || inputList.Count() < 1)
            {
                return false;
            }
            var corpIds = inputList.Select(x => x.CorpID).Distinct().ToList();
            if (corpIds.Count > 1)
                return false;
            var productList = _service.GetByIds(corpIds[0], inputList.Select(x => x.ID).ToList());
            if (productList == null || productList.Count < 1)
                return false;
            var rhsList = new List<Model.Product>();
            productList.ForEach(x =>
            {
                var input = inputList.Find(t => t.ID == x.ID);
                if (input != null)
                {
                    var rhs = new Model.Product(x);
                    input.UpdateProduct(rhs);
                    rhsList.Add(rhs);
                }
            });
            if (rhsList.Count < 1)
                return false;
            var bol = _service.Updates(rhsList);
            return bol;
        }
        #endregion
        #region Exist
        /// <summary>
        /// åˆ¤æ–­TagName是否存在
        /// </summary>
        [Route("IsExistTagName@V1.0")]
        [HttpGet]
        public bool IsExistTagName([FromQuery][Required] TagNameUnderCorpInput input)
        {
            var bol = _service.IsExistTagName(input.CorpID, input.TagName);
            return bol;
        }
        /// <summary>
        ///  åˆ¤æ–­TagName是否存在 ExceptID
        /// </summary>
        [Route("IsExistTagNameExceptID@V1.0")]
        [HttpGet]
        public bool IsExistTagNameExceptID([FromQuery][Required] TagNameExceptUnderCorpInput input)
        {
            var bol = _service.IsExistTagNameExceptID(input.CorpID, input.TagName, input.ExceptID);
            return bol;
        }
        #endregion
        #region Delete
        /// <summary>
        /// åˆ é™¤
        /// </summary>
        [Route("DeleteByID@V1.0")]
        [HttpDelete]
        public DeleteReasonOutput DeleteByID([FromQuery][Required] IDUnderCorpInput input)
        {
            var bol = _service.DeleteByID(input.CorpID, input.ID, out string Msg);
            return new DeleteReasonOutput() { Success = bol, Reason = Msg };
        }
        #endregion
    }
}
Application/IStation.Application.Product/special/sim_card/dto/AddSimCardInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,110 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static IStation.Model.Product;
using static IStation.Model.SimCard;
namespace IStation.Application
{
    /// <summary>
    /// æ·»åŠ SIM卡input
    /// </summary>
    public class AddSimCardInput
    {
        /// <summary>
        /// å®¢æˆ·æ ‡è¯†
        /// </summary>
        public long CorpID { get; set; }
        /// <summary>
        /// æ‰€å±žç±»åž‹
        /// </summary>
        public string BelongType { get; set; }
        /// <summary>
        /// æ‰€å±žæ ‡è¯†
        /// </summary>
        public long BelongID { get; set; }
        /// <summary>
        /// ç»„标识
        /// </summary>
        public long GroupID { get; set; }
        /// <summary>
        /// è®¾å¤‡ç±»åž‹æ ‡è¯†
        /// </summary>
        public long ProductTypeID { get; set; }
        /// <summary>
        /// çˆ¶èŠ‚ç‚¹æ ‡è¯†åˆ—è¡¨
        /// </summary>
        public List<long> ParentIds { get; set; }
        /// <summary>
        /// ç¼–号
        /// </summary>
        public string NO { get; set; }
        /// <summary>
        /// åž‹å·
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// åނ商
        /// </summary>
        public long ManufacturerID { get; set; }
        /// <summary>
        /// SMI卡号
        /// </summary>
        public string CardNO { get; set; }
        /// <summary>
        /// å……值方式
        /// </summary>
        public eRechargeMode RechargeMode { get; set; }
        /// <summary>
        /// å……值信息
        /// </summary>
        public string RechargeInfo { get; set; }
        /// <summary>
        /// é™„加属性
        /// </summary>
        public Dictionary<long, string> PropsParas { get; set; }
        /// <summary>
        /// å·¡æ£€å‘¨æœŸ
        /// </summary>
        public eInspectionSchedule InspectionSchedule { get; set; }
        /// <summary>
        /// ç»ˆç«¯æ ‡è¯†
        /// </summary>
        public string TerminalId { get; set; }
        /// <summary>
        /// æ ‡ç­¾
        /// </summary>
        public string TagName { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
Application/IStation.Application.Product/special/sim_card/dto/SimCardDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,180 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static IStation.Model.Product;
using static IStation.Model.SimCard;
namespace IStation.Application
{
    /// <summary>
    /// SIM卡dto
    /// </summary>
    public class SimCardDto
    {
        /// <summary>
        ///
        /// </summary>
        public SimCardDto() { }
        /// <summary>
        ///
        /// </summary>
        public SimCardDto(Model.Product pro)
        {
            var rhs = new Model.Product<Model.SimCard>(pro);
            this.ID = rhs.ID;
            this.CorpID = rhs.CorpID;
            this.BelongType = rhs.BelongType;
            this.BelongID = rhs.BelongID;
            this.GroupID = rhs.GroupID;
            this.ProductTypeID = rhs.ProductTypeID;
            this.ParentIds = rhs.ParentIds;
            this.NO = rhs.NO;
            this.Code = rhs.Code;
            this.ManufacturerID = rhs.ManufacturerID;
            this.CardNO = rhs.RatedParas.CardNO;
            this.RechargeMode = rhs.RatedParas.RechargeMode;
            this.RechargeInfo = rhs.RatedParas.RechargeInfo;
            this.PropsParas = rhs.PropsParas;
            this.InspectionSchedule = rhs.InspectionSchedule;
            this.TerminalId = rhs.TerminalId;
            this.TagName = rhs.TagName;
            this.SortCode = rhs.SortCode;
            this.UseStatus = rhs.UseStatus;
            this.Description = rhs.Description;
        }
        /// <summary>
        ///
        /// </summary>
        public SimCardDto(Model.Product<Model.SimCard> rhs)
        {
            this.ID = rhs.ID;
            this.CorpID = rhs.CorpID;
            this.BelongType = rhs.BelongType;
            this.BelongID = rhs.BelongID;
            this.GroupID = rhs.GroupID;
            this.ProductTypeID = rhs.ProductTypeID;
            this.ParentIds = rhs.ParentIds;
            this.NO = rhs.NO;
            this.Code = rhs.Code;
            this.ManufacturerID = rhs.ManufacturerID;
            this.CardNO = rhs.RatedParas.CardNO;
            this.RechargeMode = rhs.RatedParas.RechargeMode;
            this.RechargeInfo = rhs.RatedParas.RechargeInfo;
            this.PropsParas = rhs.PropsParas;
            this.InspectionSchedule = rhs.InspectionSchedule;
            this.TerminalId = rhs.TerminalId;
            this.TagName = rhs.TagName;
            this.SortCode = rhs.SortCode;
            this.UseStatus = rhs.UseStatus;
            this.Description = rhs.Description;
        }
        /// <summary>
        /// æ ‡è¯†
        /// </summary>
        public long ID { get; set; }
        /// <summary>
        /// å®¢æˆ·æ ‡è¯†
        /// </summary>
        public long CorpID { get; set; }
        /// <summary>
        /// æ‰€å±žç±»åž‹
        /// </summary>
        public string BelongType { get; set; }
        /// <summary>
        /// æ‰€å±žæ ‡è¯†
        /// </summary>
        public long BelongID { get; set; }
        /// <summary>
        /// ç»„标识
        /// </summary>
        public long GroupID { get; set; }
        /// <summary>
        /// è®¾å¤‡ç±»åž‹æ ‡è¯†
        /// </summary>
        public long ProductTypeID { get; set; }
        /// <summary>
        /// çˆ¶èŠ‚ç‚¹æ ‡è¯†åˆ—è¡¨
        /// </summary>
        public List<long> ParentIds { get; set; }
        /// <summary>
        /// ç¼–号
        /// </summary>
        public string NO { get; set; }
        /// <summary>
        /// åž‹å·
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// åނ商
        /// </summary>
        public long ManufacturerID { get; set; }
        /// <summary>
        /// SMI卡号
        /// </summary>
        public string CardNO { get; set; }
        /// <summary>
        /// å……值方式
        /// </summary>
        public eRechargeMode RechargeMode { get; set; }
        /// <summary>
        /// å……值信息
        /// </summary>
        public string RechargeInfo { get; set; }
        /// <summary>
        /// é™„加属性
        /// </summary>
        public Dictionary<long, string> PropsParas { get; set; }
        /// <summary>
        /// å·¡æ£€å‘¨æœŸ
        /// </summary>
        public eInspectionSchedule InspectionSchedule { get; set; }
        /// <summary>
        /// ç»ˆç«¯æ ‡è¯†
        /// </summary>
        public string TerminalId { get; set; }
        /// <summary>
        /// æ ‡ç­¾
        /// </summary>
        public string TagName { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// ä½¿ç”¨çŠ¶æ€
        /// </summary>
        public eUseStatus UseStatus { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
Application/IStation.Application.Product/special/sim_card/dto/UpdateSimCardInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static IStation.Model.Product;
using static IStation.Model.SimCard;
namespace IStation.Application
{
    /// <summary>
    /// æ·»åŠ SIM卡input
    /// </summary>
    public class UpdateSimCardInput
    {
        /// <summary>
        /// æ ‡è¯†
        /// </summary>
        public long ID { get; set; }
        /// <summary>
        /// å®¢æˆ·æ ‡è¯†
        /// </summary>
        public long CorpID { get; set; }
        /// <summary>
        /// ç¼–号
        /// </summary>
        public string NO { get; set; }
        /// <summary>
        /// åž‹å·
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// åނ商
        /// </summary>
        public long ManufacturerID { get; set; }
        /// <summary>
        /// SMI卡号
        /// </summary>
        public string CardNO { get; set; }
        /// <summary>
        /// å……值方式
        /// </summary>
        public eRechargeMode RechargeMode { get; set; }
        /// <summary>
        /// å……值信息
        /// </summary>
        public string RechargeInfo { get; set; }
        /// <summary>
        /// é™„加属性
        /// </summary>
        public Dictionary<long, string> PropsParas { get; set; }
        /// <summary>
        /// å·¡æ£€å‘¨æœŸ
        /// </summary>
        public eInspectionSchedule InspectionSchedule { get; set; }
        /// <summary>
        /// ç»ˆç«¯æ ‡è¯†
        /// </summary>
        public string TerminalId { get; set; }
        /// <summary>
        /// æ ‡ç­¾
        /// </summary>
        public string TagName { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
Application/IStation.Application.Product/special/sim_card/helper/SimCardTransferHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Application
{
    /// <summary>
    /// SIM卡转换辅助类
    /// </summary>
    public static class SimCardTransferHelper
    {
        /// <summary>
        /// è½¬æ¢ä¸ºè®¾å¤‡
        /// </summary>
        public static Model.Product ToProduct(this AddSimCardInput input)
        {
            var product = new Model.Product();
            product.ID = 0;
            product.CorpID = input.CorpID;
            product.BelongType = input.BelongType;
            product.BelongID = input.BelongID;
            product.GroupID = input.GroupID;
            product.Catalog = Product.Catalog_Sim;
            product.ProductTypeID = input.ProductTypeID;
            product.ParentIds = input.ParentIds;
            product.NO = input.NO;
            product.Name = input.CardNO;
            product.Code = input.Code;
            product.ManufacturerID = input.ManufacturerID;
            var simCard = new Model.SimCard();
            simCard.CardNO = input.CardNO;
            simCard.RechargeMode = input.RechargeMode;
            simCard.RechargeInfo = input.RechargeInfo;
            product.RatedParas = simCard.ToJson();
            product.PropsParas=input.PropsParas;
            product.InspectionSchedule = input.InspectionSchedule;
            product.TerminalId = input.TerminalId;
            product.TagName = input.TagName;
            product.SortCode = input.SortCode;
            product.UseStatus = Model.Product.eUseStatus.Enable;
            product.Description = input.Description;
            return product;
        }
        /// <summary>
        /// æ›´æ–°è®¾å¤‡
        /// </summary>
        public static Model.Product UpdateProduct(this UpdateSimCardInput input, Model.Product product)
        {
            product.NO = input.NO;
            product.Name = input.CardNO;
            product.Code = input.Code;
            product.ManufacturerID = input.ManufacturerID;
            var simCard = new Model.SimCard();
            simCard.CardNO = input.CardNO;
            simCard.RechargeMode = input.RechargeMode;
            simCard.RechargeInfo = input.RechargeInfo;
            product.RatedParas = simCard.ToJson();
            product.PropsParas = input.PropsParas;
            product.InspectionSchedule = input.InspectionSchedule;
            product.TerminalId = input.TerminalId;
            product.TagName = input.TagName;
            product.Description = input.Description;
            return product;
        }
    }
}
Application/IStation.Application.Product/special/tong_xin_she_bei/Communication_Controller.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,223 @@
using Microsoft.AspNetCore.Mvc;
using System.Net;
using System.Net.Http.Headers;
using Microsoft.Extensions.Hosting.Internal;
using Microsoft.AspNetCore.Http.Extensions;
using IStation.Untity;
using Furion.DynamicApiController;
using System.ComponentModel.DataAnnotations;
using Mapster;
namespace IStation.Application
{
    /// <summary>
    /// Communication
    /// </summary>
    [Route("Product/Communication")]
    [ApiDescriptionSettings("Product", Name = "通信设备", Order = 600)]
    public class Communication_Controller : IDynamicApiController
    {
        private readonly Service.Product _service = new Service.Product();
        #region Query
        /// <summary>
        /// é€šè¿‡ CorpID èŽ·å–
        /// </summary>
        [Route("GetByCorpID@V1.0")]
        [HttpGet]
        public List<CommunicationDto> GetByCorpID([FromQuery][Required] CorpIDInput input)
        {
            var list = _service.GetByCatalog(input.CorpID,Product.Catalog_TongXinSheBei);
            var vm_list=list?.Select(x=>new CommunicationDto(x)).ToList();
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        [Route("GetByID@V1.0")]
        [HttpGet]
        public CommunicationDto GetByID([FromQuery][Required] IDUnderCorpInput input)
        {
            var model = _service.GetByID(input.CorpID, input.ID);
            if (model == null)
                return null;
            if (model.Catalog != Product.Catalog_TongXinSheBei)
                return null;
            return  new CommunicationDto(model);
        }
        /// <summary>
        /// é€šè¿‡ Ids èŽ·å–
        /// </summary>
        [Route("GetByIds@V1.0")]
        [HttpGet]
        public List<CommunicationDto> GetByIds([FromQuery][Required] IdsUnderCorpInput input)
        {
            var ids = LongListHelper.ToList(input.Ids);
            var list = _service.GetByIds(input.CorpID, ids);
            list = list?.Where(x => x.Catalog == Product.Catalog_TongXinSheBei).ToList();
            var vm_list = list?.Select(x => new CommunicationDto(x)).ToList();
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ BelongType and BelongID获取
        /// </summary>
        [Route("GetByBelongTypeAndBelongID@V1.0")]
        [HttpGet]
        public List<CommunicationDto> GetByBelongTypeAndBelongID([FromQuery][Required] BelongUnderCorpInput input)
        {
            var list = _service.GetByBelongTypeAndBelongID(input.CorpID, input.BelongType, input.BelongID);
            list = list?.Where(x => x.Catalog == Product.Catalog_TongXinSheBei).ToList();
            var vm_list = list?.Select(x => new CommunicationDto(x)).ToList();
            return vm_list; ;
        }
        /// <summary>
        /// é€šè¿‡ BelongType and BelongIds èŽ·å–
        /// </summary>
        [Route("GetByBelongTypeAndBelongIds@V1.0")]
        [HttpGet]
        public List<CommunicationDto> GetByBelongTypeAndBelongIds([FromQuery][Required] BelongIdsUnderCorpInput input)
        {
            var list = _service.GetByBelongTypeAndBelongIds(input.CorpID, input.BelongType, LongListHelper.ToList(input.BelongIds));
            list = list?.Where(x => x.Catalog == Product.Catalog_TongXinSheBei).ToList();
            var vm_list = list?.Select(x => new CommunicationDto(x)).ToList();
            return vm_list; ;
        }
        #endregion
        #region Insert
        /// <summary>
        /// æ’入一条
        /// </summary>
        [Route("Insert@V1.0")]
        [HttpPost]
        public long Insert(AddCommunicationInput input)
        {
            if (input == null)
                return default;
            var product = input.ToProduct();
            var id = _service.Insert(product);
            return id;
        }
        /// <summary>
        /// æ’入多条
        /// </summary>
        [Route("Inserts@V1.0")]
        [HttpPost]
        public bool Inserts(List<AddCommunicationInput> inputList)
        {
            if (inputList == null || inputList.Count < 1)
                return false;
            var list = inputList.Select(x => x.ToProduct()).ToList();
            var bol = _service.Inserts(list);
            return bol;
        }
        #endregion
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        [Route("Update@V1.0")]
        [HttpPut]
        public bool Update(UpdateCommunicationInput input)
        {
            if (input == null)
                return false;
            var product = _service.GetByID(input.CorpID, input.ID);
            if (product == null)
                return false;
            input.UpdateProduct(product);
            var bol = _service.Update(product);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°å¤šæ¡
        /// </summary>
        [Route("Updates@V1.0")]
        [HttpPut]
        public bool Updates(List<UpdateCommunicationInput> inputList)
        {
            if (inputList == null || inputList.Count() < 1)
            {
                return false;
            }
            var corpIds = inputList.Select(x => x.CorpID).Distinct().ToList();
            if (corpIds.Count > 1)
                return false;
            var productList = _service.GetByIds(corpIds[0], inputList.Select(x => x.ID).ToList());
            if (productList == null || productList.Count < 1)
                return false;
            var rhsList = new List<Model.Product>();
            productList.ForEach(x =>
            {
                var input = inputList.Find(t => t.ID == x.ID);
                if (input != null)
                {
                    var rhs = new Model.Product(x);
                    input.UpdateProduct(rhs);
                    rhsList.Add(rhs);
                }
            });
            if (rhsList.Count < 1)
                return false;
            var bol = _service.Updates(rhsList);
            return bol;
        }
        #endregion
        #region Exist
        /// <summary>
        /// åˆ¤æ–­TagName是否存在
        /// </summary>
        [Route("IsExistTagName@V1.0")]
        [HttpGet]
        public bool IsExistTagName([FromQuery][Required] TagNameUnderCorpInput input)
        {
            var bol = _service.IsExistTagName(input.CorpID, input.TagName);
            return bol;
        }
        /// <summary>
        ///  åˆ¤æ–­TagName是否存在 ExceptID
        /// </summary>
        [Route("IsExistTagNameExceptID@V1.0")]
        [HttpGet]
        public bool IsExistTagNameExceptID([FromQuery][Required] TagNameExceptUnderCorpInput input)
        {
            var bol = _service.IsExistTagNameExceptID(input.CorpID, input.TagName, input.ExceptID);
            return bol;
        }
        #endregion
        #region Delete
        /// <summary>
        /// åˆ é™¤
        /// </summary>
        [Route("DeleteByID@V1.0")]
        [HttpDelete]
        public DeleteReasonOutput DeleteByID([FromQuery][Required] IDUnderCorpInput input)
        {
            var bol = _service.DeleteByID(input.CorpID, input.ID, out string Msg);
            return new DeleteReasonOutput() { Success = bol, Reason = Msg };
        }
        #endregion
    }
}
Application/IStation.Application.Product/special/tong_xin_she_bei/dto/AddCommunicationInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static IStation.Model.Product;
namespace IStation.Application
{
    /// <summary>
    /// æ·»åŠ é€šä¿¡è®¾å¤‡input
    /// </summary>
    public class AddCommunicationInput
    {
        /// <summary>
        /// å®¢æˆ·æ ‡è¯†
        /// </summary>
        public long CorpID { get; set; }
        /// <summary>
        /// æ‰€å±žç±»åž‹
        /// </summary>
        public string BelongType { get; set; }
        /// <summary>
        /// æ‰€å±žæ ‡è¯†
        /// </summary>
        public long BelongID { get; set; }
        /// <summary>
        /// ç»„标识
        /// </summary>
        public long GroupID { get; set; }
        /// <summary>
        /// è®¾å¤‡ç±»åž‹æ ‡è¯†
        /// </summary>
        public long ProductTypeID { get; set; }
        /// <summary>
        /// ç¼–号
        /// </summary>
        public string NO { get; set; }
        /// <summary>
        /// åž‹å·
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// åނ商
        /// </summary>
        public long ManufacturerID { get; set; }
        /// <summary>
        /// æœåС噍IP
        /// </summary>
        public string ServerIP { get; set; }
        /// <summary>
        /// æœåŠ¡ç«¯å£
        /// </summary>
        public int ServerPort { get; set; }
        /// <summary>
        /// è®¾å¤‡ç¼–码
        /// </summary>
        public string SpecialNO { get; set; }
        /// <summary>
        /// æ³¨å†Œç 
        /// </summary>
        public string RegisterCode { get; set; }
        /// <summary>
        /// å¿ƒè·³åŒ…
        /// </summary>
        public string Heartbeat { get; set; }
        /// <summary>
        /// å¿ƒè·³é—´éš” ï¼ˆç§’)
        /// </summary>
        public int HeartInterval { get; set; }
        /// <summary>
        /// æ³¢ç‰¹çއ
        /// </summary>
        public int BaudRate { get; set; }
        /// <summary>
        /// é€šä¿¡åé¦ˆ
        /// </summary>
        public bool FeedBack { get; set; }
        /// <summary>
        /// é™„加属性
        /// </summary>
        public Dictionary<long, string> PropsParas { get; set; }
        /// <summary>
        /// å·¡æ£€å‘¨æœŸ
        /// </summary>
        public eInspectionSchedule InspectionSchedule { get; set; }
        /// <summary>
        /// ç»ˆç«¯æ ‡è¯†
        /// </summary>
        public string TerminalId { get; set; }
        /// <summary>
        /// æ ‡ç­¾
        /// </summary>
        public string TagName { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
Application/IStation.Application.Product/special/tong_xin_she_bei/dto/CommunicationDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static IStation.Model.Product;
namespace IStation.Application
{
    /// <summary>
    /// é€šä¿¡è®¾å¤‡dto
    /// </summary>
    public class CommunicationDto
    {
        /// <summary>
        ///
        /// </summary>
        public CommunicationDto() { }
        /// <summary>
        ///
        /// </summary>
        public CommunicationDto(Model.Product pro)
        {
            var rhs = new Model.Product<Model.Communication>(pro);
            this.ID = rhs.ID;
            this.CorpID = rhs.CorpID;
            this.BelongType = rhs.BelongType;
            this.BelongID = rhs.BelongID;
            this.GroupID = rhs.GroupID;
            this.ProductTypeID = rhs.ProductTypeID;
            this.NO = rhs.NO;
            this.Code = rhs.Code;
            this.ManufacturerID = rhs.ManufacturerID;
            this.ServerIP = rhs.RatedParas.ServerIP;
            this.ServerPort = rhs.RatedParas.ServerPort;
            this.SpecialNO = rhs.RatedParas.SpecialNO;
            this.RegisterCode = rhs.RatedParas.RegisterCode;
            this.Heartbeat = rhs.RatedParas.Heartbeat;
            this.HeartInterval = rhs.RatedParas.HeartInterval;
            this.BaudRate = rhs.RatedParas.BaudRate;
            this.FeedBack = rhs.RatedParas.FeedBack;
            this.PropsParas = rhs.PropsParas;
            this.InspectionSchedule = rhs.InspectionSchedule;
            this.TerminalId = rhs.TerminalId;
            this.TagName = rhs.TagName;
            this.SortCode = rhs.SortCode;
            this.UseStatus = rhs.UseStatus;
            this.Description = rhs.Description;
        }
        /// <summary>
        ///
        /// </summary>
        public CommunicationDto(Model.Product<Model.Communication> rhs)
        {
            this.ID = rhs.ID;
            this.CorpID = rhs.CorpID;
            this.BelongType = rhs.BelongType;
            this.BelongID = rhs.BelongID;
            this.GroupID = rhs.GroupID;
            this.ProductTypeID = rhs.ProductTypeID;
            this.NO = rhs.NO;
            this.Code = rhs.Code;
            this.ManufacturerID = rhs.ManufacturerID;
            this.ServerIP = rhs.RatedParas.ServerIP;
            this.ServerPort = rhs.RatedParas.ServerPort;
            this.SpecialNO = rhs.RatedParas.SpecialNO;
            this.RegisterCode = rhs.RatedParas.RegisterCode;
            this.Heartbeat = rhs.RatedParas.Heartbeat;
            this.HeartInterval= rhs.RatedParas.HeartInterval;
            this.BaudRate = rhs.RatedParas.BaudRate;
            this.FeedBack= rhs.RatedParas.FeedBack;
            this.PropsParas = rhs.PropsParas;
            this.InspectionSchedule = rhs.InspectionSchedule;
            this.TerminalId = rhs.TerminalId;
            this.TagName = rhs.TagName;
            this.SortCode = rhs.SortCode;
            this.UseStatus = rhs.UseStatus;
            this.Description = rhs.Description;
        }
        /// <summary>
        /// æ ‡è¯†
        /// </summary>
        public long ID { get; set; }
        /// <summary>
        /// å®¢æˆ·æ ‡è¯†
        /// </summary>
        public long CorpID { get; set; }
        /// <summary>
        /// æ‰€å±žç±»åž‹
        /// </summary>
        public string BelongType { get; set; }
        /// <summary>
        /// æ‰€å±žæ ‡è¯†
        /// </summary>
        public long BelongID { get; set; }
        /// <summary>
        /// ç»„标识
        /// </summary>
        public long GroupID { get; set; }
        /// <summary>
        /// è®¾å¤‡ç±»åž‹æ ‡è¯†
        /// </summary>
        public long ProductTypeID { get; set; }
        /// <summary>
        /// ç¼–号
        /// </summary>
        public string NO { get; set; }
        /// <summary>
        /// åž‹å·
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// åނ商
        /// </summary>
        public long ManufacturerID { get; set; }
        /// <summary>
        /// æœåС噍IP
        /// </summary>
        public string ServerIP { get; set; }
        /// <summary>
        /// æœåŠ¡ç«¯å£
        /// </summary>
        public int ServerPort { get; set; }
        /// <summary>
        /// è®¾å¤‡ç¼–码
        /// </summary>
        public string SpecialNO { get; set; }
        /// <summary>
        /// æ³¨å†Œç 
        /// </summary>
        public string RegisterCode { get; set; }
        /// <summary>
        /// å¿ƒè·³åŒ…
        /// </summary>
        public string Heartbeat { get; set; }
        /// <summary>
        /// å¿ƒè·³é—´éš” ï¼ˆç§’)
        /// </summary>
        public int HeartInterval { get; set; }
        /// <summary>
        /// æ³¢ç‰¹çއ
        /// </summary>
        public int BaudRate { get; set; }
        /// <summary>
        /// é€šä¿¡åé¦ˆ
        /// </summary>
        public bool FeedBack { get; set; }
        /// <summary>
        /// é™„加属性
        /// </summary>
        public Dictionary<long, string> PropsParas { get; set; }
        /// <summary>
        /// å·¡æ£€å‘¨æœŸ
        /// </summary>
        public eInspectionSchedule InspectionSchedule { get; set; }
        /// <summary>
        /// ç»ˆç«¯æ ‡è¯†
        /// </summary>
        public string TerminalId { get; set; }
        /// <summary>
        /// æ ‡ç­¾
        /// </summary>
        public string TagName { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// ä½¿ç”¨çŠ¶æ€
        /// </summary>
        public eUseStatus UseStatus { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
Application/IStation.Application.Product/special/tong_xin_she_bei/dto/UpdateCommunicationInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static IStation.Model.Product;
namespace IStation.Application
{
    /// <summary>
    /// æ›´æ–°é€šè®¯è®¾å¤‡input
    /// </summary>
    public class UpdateCommunicationInput
    {
        /// <summary>
        /// æ ‡è¯†
        /// </summary>
        public long ID { get; set; }
        /// <summary>
        /// å®¢æˆ·æ ‡è¯†
        /// </summary>
        public long CorpID { get; set; }
        /// <summary>
        /// ç¼–号
        /// </summary>
        public string NO { get; set; }
        /// <summary>
        /// åž‹å·
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// åނ商
        /// </summary>
        public long ManufacturerID { get; set; }
        /// <summary>
        /// æœåС噍IP
        /// </summary>
        public string ServerIP { get; set; }
        /// <summary>
        /// æœåŠ¡ç«¯å£
        /// </summary>
        public int ServerPort { get; set; }
        /// <summary>
        /// è®¾å¤‡ç¼–码
        /// </summary>
        public string SpecialNO { get; set; }
        /// <summary>
        /// æ³¨å†Œç 
        /// </summary>
        public string RegisterCode { get; set; }
        /// <summary>
        /// å¿ƒè·³åŒ…
        /// </summary>
        public string Heartbeat { get; set; }
        /// <summary>
        /// å¿ƒè·³é—´éš” ï¼ˆç§’)
        /// </summary>
        public int HeartInterval { get; set; }
        /// <summary>
        /// æ³¢ç‰¹çއ
        /// </summary>
        public int BaudRate { get; set; }
        /// <summary>
        /// é€šä¿¡åé¦ˆ
        /// </summary>
        public bool FeedBack { get; set; }
        /// <summary>
        /// é™„加属性
        /// </summary>
        public Dictionary<long, string> PropsParas { get; set; }
        /// <summary>
        /// å·¡æ£€å‘¨æœŸ
        /// </summary>
        public eInspectionSchedule InspectionSchedule { get; set; }
        /// <summary>
        /// ç»ˆç«¯æ ‡è¯†
        /// </summary>
        public string TerminalId { get; set; }
        /// <summary>
        /// æ ‡ç­¾
        /// </summary>
        public string TagName { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
Application/IStation.Application.Product/special/tong_xin_she_bei/helper/CommunicationTransferHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Application
{
    /// <summary>
    /// é€šä¿¡è½¬æ¢è¾…助类
    /// </summary>
    public static class CommunicationTransferHelper
    {
        /// <summary>
        /// è½¬æ¢ä¸ºè®¾å¤‡
        /// </summary>
        public static Model.Product ToProduct(this AddCommunicationInput input)
        {
            var product=new Model.Product();
            product.ID = 0;
            product.CorpID = input.CorpID;
            product.BelongType = input.BelongType;
            product.BelongID = input.BelongID;
            product.GroupID = input.GroupID;
            product.Catalog = Product.Catalog_TongXinSheBei;
            product.ProductTypeID=input.ProductTypeID;
            product.NO=input.NO;
            product.Name = input.SpecialNO;
            product.Code= input.Code;
            product.ManufacturerID=input.ManufacturerID;
            var communication = new Model.Communication();
            communication.ServerIP = input.ServerIP;
            communication.ServerPort = input.ServerPort;
            communication.SpecialNO = input.SpecialNO;
            communication.RegisterCode=input.RegisterCode;
            communication.Heartbeat=input.Heartbeat;
            communication.HeartInterval= input.HeartInterval;
            communication.BaudRate= input.BaudRate;
            communication.FeedBack= input.FeedBack;
            product.RatedParas = communication.ToJson();
            product.TerminalId = input.TerminalId;
            product.TagName = input.TagName;
            product.SortCode = input.SortCode;
            product.UseStatus = Model.Product.eUseStatus.Enable;
            product.Description = input.Description;
            return product;
        }
        /// <summary>
        /// æ›´æ–°è®¾å¤‡
        /// </summary>
        public static Model.Product UpdateProduct(this UpdateCommunicationInput input,Model.Product product)
        {
            product.NO= input.NO;
            product.Code = input.Code;
            product.ManufacturerID = input.ManufacturerID;
            product.Name = input.SpecialNO;
            var communication = new Model.Communication();
            communication.ServerIP = input.ServerIP;
            communication.ServerPort = input.ServerPort;
            communication.SpecialNO = input.SpecialNO;
            communication.RegisterCode = input.RegisterCode;
            communication.Heartbeat = input.Heartbeat;
            communication.HeartInterval = input.HeartInterval;
            communication.BaudRate = input.BaudRate;
            communication.FeedBack = input.FeedBack;
            product.RatedParas = communication.ToJson();
            product.PropsParas = input.PropsParas;
            product.InspectionSchedule = input.InspectionSchedule;
            product.TerminalId= input.TerminalId;
            product.TagName = input.TagName;
            product.Description=input.Description;
            return product;
        }
    }
}
Application/IStation.Application.Run/data_docking/DataDocking_StandardController.cs
@@ -89,6 +89,7 @@
            var queueHelper = new RabbitMqQueueHelper();
            var bol = queueHelper.Push(Settings.Queue.DataDockingQueueName, new Model.MonitorDataDockingCorpRecord()
            {
                CorpID=standardConfigure.CorpID,
                ConfigureID = standardConfigure.ID,
                Records = records
            });
Entity/IStation.Entity.Product/sim/SimPaymentRecord.cs
@@ -32,7 +32,7 @@
        }
        /// <summary>
        /// ç‰©è”卡标识
        /// SIM卡标识
        /// </summary>    
        public long CardID
        {
Entry/IStation.WebApi.Entry/IStation.WebApi.Entry.csproj.user
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <NameOfLastUsedPublishProfile>D:\WorkData\IStation\IStationV4.1\Core\Service.V4.1\Entry\IStation.WebApi.Entry\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\WorkData\git\istation\webapi\v4\Entry\IStation.WebApi.Entry\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <ActiveDebugProfile>IIS Express</ActiveDebugProfile>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
Model/IStation.Model.Core/IStation.Model.Core.csproj
@@ -17,6 +17,7 @@
  <ItemGroup>
    <ProjectReference Include="..\..\Component\IStation.Newtonsoft\IStation.Newtonsoft.csproj" />
    <ProjectReference Include="..\..\Core\IStation.Core\IStation.Core.csproj" />
    <ProjectReference Include="..\..\Untity\IStation.Unit\IStation.Unit.csproj" />
    <ProjectReference Include="..\..\Untity\IStation.Untity\IStation.Untity.csproj" />
  </ItemGroup>