huangxiaoqiang
2025-06-12 c54e0666bdd34fbe133fe521bf9d46dd6c0fe53e
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs
@@ -4,6 +4,7 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
namespace WIDESEAWCS_Server.Controllers.QuartzJob
@@ -14,11 +15,210 @@
    {
        public DeviceProtocolController(IDeviceProtocolService service) : base(service)
        {
        }
        [HttpPost, Route("GetImportData"), AllowAnonymous]
        public WebResponseContent GetImportData(List<IFormFile> fileInput)
        {
            return Service.GetImportData(fileInput);
        }
        [HttpPost, Route("GetImportData2"), AllowAnonymous]
        public void GetImportData2()
        {
            try
            {
                List<Dt_DeviceProtocol> dt_Devices = new List<Dt_DeviceProtocol>();
                for (int i = 0; i < 4; i++)
                {
                    //写入模块
                    #region
                    Dt_DeviceProtocol dt_DeviceProtocol = new Dt_DeviceProtocol();
                    dt_DeviceProtocol.DeviceId = 1002;
                    dt_DeviceProtocol.DeviceChildCode = ("B" +1+i + "02").ToString();
                    dt_DeviceProtocol.DeviceProDataBlock = "DB50";
                    dt_DeviceProtocol.DeviceProOffset = (decimal)0 + (16 * i);  //指值多少
                    dt_DeviceProtocol.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtocol.DeviceProParamName = "Backup01";     //名称
                    dt_DeviceProtocol.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtocol.DeviceProParamType = "DeviceCommand"; //读取
                    dt_DeviceProtocol.DeviceProParamDes = "";
                    dt_DeviceProtocol.DeviceProRemark = "备用1";    //备注
                    dt_DeviceProtocol.Creater = "admin";
                    dt_DeviceProtocol.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtocol);
                    Dt_DeviceProtocol dt_DeviceProtoco2 = new Dt_DeviceProtocol();
                    dt_DeviceProtoco2.DeviceId = 1002;
                    dt_DeviceProtoco2.DeviceChildCode = ("B" + 1 + i + "02").ToString();
                    dt_DeviceProtoco2.DeviceProDataBlock = "DB50";
                    dt_DeviceProtoco2.DeviceProOffset = (decimal)0.1 + (16 * i);  //指值多少
                    dt_DeviceProtoco2.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtoco2.DeviceProParamName = "Backup02";     //名称
                    dt_DeviceProtoco2.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtoco2.DeviceProParamType = "DeviceCommand"; //读取
                    dt_DeviceProtoco2.DeviceProParamDes = "";
                    dt_DeviceProtoco2.DeviceProRemark = "备用2";    //备注
                    dt_DeviceProtoco2.Creater = "admin";
                    dt_DeviceProtoco2.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtoco2);
                    Dt_DeviceProtocol dt_DeviceProtoco3 = new Dt_DeviceProtocol();
                    dt_DeviceProtoco3.DeviceId = 1002;
                    dt_DeviceProtoco3.DeviceChildCode = ("B" + 1 + i + "02").ToString();
                    dt_DeviceProtoco3.DeviceProDataBlock = "DB50";
                    dt_DeviceProtoco3.DeviceProOffset = (decimal)0.2 + (16 * i);  //指值多少
                    dt_DeviceProtoco3.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtoco3.DeviceProParamName = "Backup03";     //名称
                    dt_DeviceProtoco3.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtoco3.DeviceProParamType = "DeviceCommand"; //读取
                    dt_DeviceProtoco3.DeviceProParamDes = "";
                    dt_DeviceProtoco3.DeviceProRemark = "备用3";    //备注
                    dt_DeviceProtoco3.Creater = "admin";
                    dt_DeviceProtoco3.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtoco3);
                    Dt_DeviceProtocol dt_DeviceProtoco4 = new Dt_DeviceProtocol();
                    dt_DeviceProtoco4.DeviceId = 1002;
                    dt_DeviceProtoco4.DeviceChildCode = ("B" + 1 + i + "02").ToString();
                    dt_DeviceProtoco4.DeviceProDataBlock = "DB50";
                    dt_DeviceProtoco4.DeviceProOffset = (decimal)0.3 + (16 * i);  //指值多少
                    dt_DeviceProtoco4.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtoco4.DeviceProParamName = "Backup04";     //名称
                    dt_DeviceProtoco4.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtoco4.DeviceProParamType = "DeviceCommand"; //读取
                    dt_DeviceProtoco4.DeviceProParamDes = "";
                    dt_DeviceProtoco4.DeviceProRemark = "备用4";    //备注
                    dt_DeviceProtoco4.Creater = "admin";
                    dt_DeviceProtoco4.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtoco4);
                    #endregion
                    //读取模块
                    #region
                    Dt_DeviceProtocol dt_DeviceProtoco5 = new Dt_DeviceProtocol();
                    dt_DeviceProtoco5.DeviceId = 1002;
                    dt_DeviceProtoco5.DeviceChildCode = ("B" + 1 + i + "02").ToString();
                    dt_DeviceProtoco5.DeviceProDataBlock = "DB50";
                    dt_DeviceProtoco5.DeviceProOffset = (decimal)8 + (16 * i);  //指值多少
                    dt_DeviceProtoco5.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtoco5.DeviceProParamName = "Heartbeat";     //名称
                    dt_DeviceProtoco5.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtoco5.DeviceProParamType = "ReadDeviceCommand"; //读取
                    dt_DeviceProtoco5.DeviceProParamDes = "";
                    dt_DeviceProtoco5.DeviceProRemark = "心跳";    //备注
                    dt_DeviceProtoco5.Creater = "admin";
                    dt_DeviceProtoco5.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtoco5);
                    Dt_DeviceProtocol dt_DeviceProtoco6 = new Dt_DeviceProtocol();
                    dt_DeviceProtoco6.DeviceId = 1002;
                    dt_DeviceProtoco6.DeviceChildCode = ("B" + 1 + i + "02").ToString();
                    dt_DeviceProtoco6.DeviceProDataBlock = "DB50";
                    dt_DeviceProtoco6.DeviceProOffset = (decimal)8.1 + (16 * i);  //指值多少
                    dt_DeviceProtoco6.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtoco6.DeviceProParamName = "Allowpickup";     //名称
                    dt_DeviceProtoco6.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtoco6.DeviceProParamType = "ReadDeviceCommand"; //读取
                    dt_DeviceProtoco6.DeviceProParamDes = "";
                    dt_DeviceProtoco6.DeviceProRemark = "请求取货状态";    //备注
                    dt_DeviceProtoco6.Creater = "admin";
                    dt_DeviceProtoco6.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtoco6);
                    Dt_DeviceProtocol dt_DeviceProtoco7 = new Dt_DeviceProtocol();
                    dt_DeviceProtoco7.DeviceId = 1002;
                    dt_DeviceProtoco7.DeviceChildCode = ("B" + 1 + i + "02").ToString();
                    dt_DeviceProtoco7.DeviceProDataBlock = "DB50";
                    dt_DeviceProtoco7.DeviceProOffset = (decimal)8.2 + (16 * i);  //指值多少
                    dt_DeviceProtoco7.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtoco7.DeviceProParamName = "Allowreleasegoods";     //名称
                    dt_DeviceProtoco7.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtoco7.DeviceProParamType = "ReadDeviceCommand"; //读取
                    dt_DeviceProtoco7.DeviceProParamDes = "";
                    dt_DeviceProtoco7.DeviceProRemark = "允许放货状态";    //备注
                    dt_DeviceProtoco7.Creater = "admin";
                    dt_DeviceProtoco7.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtoco7);
                    Dt_DeviceProtocol dt_DeviceProtoco8 = new Dt_DeviceProtocol();
                    dt_DeviceProtoco8.DeviceId = 1002;
                    dt_DeviceProtoco8.DeviceChildCode = ("B" + 1 + i + "02").ToString();
                    dt_DeviceProtoco8.DeviceProDataBlock = "DB50";
                    dt_DeviceProtoco8.DeviceProOffset = (decimal)8.3 + (16 * i);  //指值多少
                    dt_DeviceProtoco8.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtoco8.DeviceProParamName = "Backup01";     //名称
                    dt_DeviceProtoco8.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtoco8.DeviceProParamType = "ReadDeviceCommand"; //读取
                    dt_DeviceProtoco8.DeviceProParamDes = "";
                    dt_DeviceProtoco8.DeviceProRemark = "备用1";    //备注
                    dt_DeviceProtoco8.Creater = "admin";
                    dt_DeviceProtoco8.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtoco8);
                    Dt_DeviceProtocol dt_DeviceProtoco9 = new Dt_DeviceProtocol();
                    dt_DeviceProtoco9.DeviceId = 1002;
                    dt_DeviceProtoco9.DeviceChildCode = ("B" + 1 + i + "02").ToString();
                    dt_DeviceProtoco9.DeviceProDataBlock = "DB50";
                    dt_DeviceProtoco9.DeviceProOffset = (decimal)8.4 + (16 * i);  //指值多少
                    dt_DeviceProtoco9.DeviceProDataType = "bool";  //类型
                    dt_DeviceProtoco9.DeviceProParamName = "Backup02";     //名称
                    dt_DeviceProtoco9.DeviceProDataLength = 1;  //长度
                    dt_DeviceProtoco9.DeviceProParamType = "ReadDeviceCommand"; //读取
                    dt_DeviceProtoco9.DeviceProParamDes = "";
                    dt_DeviceProtoco9.DeviceProRemark = "备用2";    //备注
                    dt_DeviceProtoco9.Creater = "admin";
                    dt_DeviceProtoco9.CreateDate = DateTime.Now;
                    dt_Devices.Add(dt_DeviceProtoco9);
                    #endregion
                }
                foreach (var deviceProtocol in dt_Devices)
                {
                    base.AddData(deviceProtocol);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        [HttpPost, HttpPost,Route("AddCommonConveyorLineProtocol"), AllowAnonymous]
        public WebResponseContent AddCommonConveyorLineProtocol(int DeviceId, string DeviceChildCode, decimal DeviceProOffset)
        {
            WebResponseContent content = new WebResponseContent();
            var protocols = new List<Dt_DeviceProtocol>
                            {
                                CreateDeviceProtocol(DeviceId, DeviceChildCode, DeviceProOffset,  "DeviceCommand"),
                                CreateDeviceProtocol(DeviceId, DeviceChildCode, DeviceProOffset+8,  "ReadDeviceCommand"),
                            };
            foreach (var deviceProtocol in protocols)
            {
                base.AddData(deviceProtocol);
            }
            return content.OK();
        }
        private Dt_DeviceProtocol CreateDeviceProtocol(int DeviceID, string DeviceChildCode, decimal DeviceProOffset, string DeviceProParamType)
        {
            return new Dt_DeviceProtocol
            {
                DeviceId = DeviceID,
                DeviceChildCode = DeviceChildCode,
                DeviceProDataBlock = "DB50",
                DeviceProOffset = DeviceProOffset,
                DeviceProDataLength = 1,
                DeviceProDataType = "int",
                DeviceProParamName = "InteractiveSignal",
                DeviceProParamType = DeviceProParamType,
                DeviceProParamDes = "1",
                DeviceProRemark = "",
                Creater = "admin",
                CreateDate = DateTime.Now,
            };
        }
    }
}