我的中控考勤机操作类

news/2024/7/24 9:31:53 标签: windows, java, 前端

请注意 上传图片的方法

public class ZhongkongCamGets
    {
        public bool bIsConnected = false; 
        public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
        private int iMachineNumber = 1;
        private MZhongkongInfo ZhongkongModel;
        public ZhongkongCamGets(MZhongkongInfo ThisZHongkong)
        {
            ZhongkongModel = ThisZHongkong;
            iMachineNumber = ThisZHongkong.MNo;
            bIsConnected = axCZKEM1.Connect_Net(ThisZHongkong.IPAdd, 4370);
        }


        /// <summary>
        ///删除单独考勤号所有数据
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public ResultMsg SSR_DeleteCleanAllInfs()
        {
            ResultMsg Msg = new ResultMsg();
            if (bIsConnected)
            {
                int ErrCode = -1;
                int iDataFlag = 5; 
             
                if (axCZKEM1.ClearData(iMachineNumber, iDataFlag))
                {
                    Msg.Success = true;
                    axCZKEM1.RefreshData(iMachineNumber);//the data in the device should be refreshed 
                }
                else
                {
                    Msg.Success = false;
                    axCZKEM1.GetLastError(ref ErrCode);
                    Msg.ErrMsg = "数据处理失败!错误码是:" + ErrCode.ToString(); 
                }
            }
            else
            {
                Msg.Success = false;
                Msg.ErrMsg = "未连接考勤机";
            }
            return Msg;
        }


        /// <summary>
        ///删除单独考勤号所有数据
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public ResultMsg SSR_DeleteEnrollDataAllInfo(int UserId)
        {
            ResultMsg Msg = new ResultMsg();
           
            if (bIsConnected)
            {
                int ErrCode = -1;
                if (axCZKEM1.SSR_DeleteEnrollData(iMachineNumber, UserId.ToString(), 0))
                {
                    Msg.Success = true;
                    axCZKEM1.RefreshData(iMachineNumber);
                }
                else
                {
                    Msg.Success = false;
                    axCZKEM1.GetLastError(ref ErrCode);
                    Msg.ErrMsg = "数据处理失败!错误码是:" + ErrCode.ToString();
                }
            }
            else
            {
                Msg.Success = false;
                Msg.ErrMsg = "未连接考勤机";
            }
            return Msg;
        }

        /// <summary>
        /// 删除当前考情号码的面部信息
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public ResultMsg SSR_DeleteEnrollDataFaceInfo(int UserId)
        {

            ResultMsg Msg = new ResultMsg();
            if (bIsConnected)
            {
                int ErrCode = -1;
                if (axCZKEM1.DelUserFace(iMachineNumber, UserId.ToString(), 50))
                {
                    axCZKEM1.RefreshData(iMachineNumber);
                    Msg.Success = true;
                    Msg.ErrMsg = "数据处理完成";
                }
                else
                {
                    Msg.Success = false;
                    axCZKEM1.GetLastError(ref ErrCode);
                    Msg.ErrMsg = "数据处理失败!错误码是:" + ErrCode.ToString();
                }
            }
            else
            {
                Msg.Success = false;
                Msg.ErrMsg = "未连接考勤机";
            }
            return Msg;
        } 

        /// <summary>
        ///批量上传人员数据
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public ResultMsg SSR_SetUserInfo(List<StaffInfo> UserList)
        {
            if (!Directory.Exists(GModel.ImageUpDownSavePath))
            {
                Directory.CreateDirectory(GModel.ImageUpDownSavePath);
            }
            ResultMsg Msg = new ResultMsg();
            if (bIsConnected)
            {
                int ErrCode = -1;
                int IndexThis = 0;
                OPCommon.FrmPrograss showFrm = new OPCommon.FrmPrograss();
                showFrm.Show();
                showFrm.CountAll = UserList.Count;
                foreach (StaffInfo oneInf in UserList)
                {
                    showFrm.ValueSet = IndexThis;
                    string PathUpload = $"{GModel.ImageUpDownSavePath}verify_biophoto_9_{oneInf.id}.jpg";
                    //if (!File.Exists(PathUpload))
                    //{
                        string ThisPICImage = GModel.ImageCamSavePath + "\\" + oneInf.PicFileName;
                        if (File.Exists(ThisPICImage))
                        {
                            OPCommon.FileOP.CopyFileNoUsed(ThisPICImage, PathUpload);
                        }
                    //}
                    
                    if (axCZKEM1.SSR_SetUserInfo(iMachineNumber, oneInf.id.ToString(), oneInf.name, "", 0, true))
                    {
                        if (File.Exists(PathUpload))//如果文件存在则上传数据
                        {
                            if (axCZKEM1.SendUserFacePhoto(iMachineNumber, PathUpload))
                            {
                                new DAL.DALStaffInfo().UpdateIsUpdateZhongkong(oneInf.id, true);
                                Msg.Success = true;
                            }
                            else
                            {
                                Msg.ReturnInt++;
                                axCZKEM1.GetLastError(ref ErrCode);
                                Msg.ErrMsg = $"{oneInf.name}面部信息上传出错!错误码是:{ ErrCode.ToString()}\n";
                                LogWrite.WriteLog(Msg.ErrMsg);
                            }
                        }
                        LogWrite.WriteLog($"{oneInf.name}信息上传完成!");
                        axCZKEM1.RefreshData(iMachineNumber);//the data in the device should be refreshed
                    }
                    else
                    {
                        Msg.Success = false;
                        Msg.ReturnInt++;
                        axCZKEM1.GetLastError(ref ErrCode);
                        Msg.ErrMsg = $"{oneInf.name}上传信息出错!错误码是:{ ErrCode.ToString()}\n";
                        LogWrite.WriteLog(Msg.ErrMsg);
                    }
                    IndexThis++;
                }
                showFrm.Close();
            }
            else
            {
                Msg.Success = false;
                Msg.ErrMsg = "未连接考勤机";
            }
            return Msg;
        }

        /// <summary>
        ///批量上传人员图片
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public ResultMsg SSR_SetUserInfoPhotos(List<StaffInfo> UserList)
        {
            ResultMsg Msg = new ResultMsg();
            if (bIsConnected)
            {
                int ErrCode = -1;
                int IndexThis = 0;
                OPCommon.FrmPrograss showFrm = new OPCommon.FrmPrograss();
                showFrm.Show();
                showFrm.CountAll = UserList.Count;
                foreach (StaffInfo oneInf in UserList)
                {
                    showFrm.ValueSet = IndexThis;
                    string ThisPICImage = GModel.ImageCamSavePath + "\\" + oneInf.PicFileName;
                    if (axCZKEM1.SSR_SetUserInfo(iMachineNumber, oneInf.id.ToString(), oneInf.name, "", 0, true))
                    {
                        if (File.Exists(ThisPICImage))//如果文件存在则上传数据
                        {
                            if (axCZKEM1.SendFile(iMachineNumber, ThisPICImage))
                            {
                                new DAL.DALStaffInfo().UpdateIsUpdateZhongkong(oneInf.id, true);
                            }
                            else
                            {
                                Msg.ReturnInt++;
                                axCZKEM1.GetLastError(ref ErrCode);
                                Msg.ErrMsg = $"{oneInf.name}面部信息上传出错!错误码是:{ ErrCode.ToString()}\n";
                            }
                        }
                        axCZKEM1.RefreshData(iMachineNumber);//the data in the device should be refreshed
                    }
                    else
                    {
                        Msg.Success = false;
                        Msg.ReturnInt++;
                        axCZKEM1.GetLastError(ref ErrCode);
                        Msg.ErrMsg = $"{oneInf.name}上传信息出错!错误码是:{ ErrCode.ToString()}\n";
                    }
                    IndexThis++;
                }
                showFrm.Close();
            }
            else
            {
                Msg.Success = false;
                Msg.ErrMsg = "未连接考勤机";
            }
            return Msg;
        }
     


    }

    public class ZhongkongUsers
    {
        /// <summary>
        /// 用户号
        /// </summary>
        public int dwEnrollNumber { get; set; }
        /// <summary>
        /// 用户姓名
        /// </summary>
        public string Name { get; set; }
        public string Password { get; set; }
        public int Privilege { get; set; }
        public bool Enabled { get; set; }
    }

http://www.niftyadmin.cn/n/5015443.html

相关文章

Spring Boot与Kubernetes:现代云部署的完美组合

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Python 图片处理

Step1 提取PDF中的图片&#xff0c;并另存 Step2 去除灰色纸张背景 import PyPDF2 from PIL import ImageEnhance,Image,ImageFilter import cv2 import numpy as np from skimage.filters import unsharp_mask from skimage.filters import gaussian from skimage.restora…

NV12数据格式转H265编码格式实现过程

一、需求 在视频处理和传输应用中&#xff0c;将视频数据编码为高效的格式是非常重要的。H.265&#xff08;也称为HEVC&#xff09;是一种先进的视频编码标准&#xff0c;具有更好的压缩性能和图像质量&#xff0c;相比于传统的编码标准&#xff08;如H.264&#xff09;&#…

UMA 2 - Unity Multipurpose Avatar☀️七.UMA API介绍

文章目录 🟥 UMA Data DNA参数引用位置🟥 UMA API介绍🟥 UMA Data DNA参数引用位置 我们想通过代码去控制如图所示参数,达到捏脸的目的.下面就是可以控制的代码: _dna["headSize"].Set(1); _avatar.BuildCharacter();我们观察发现操控代码类似Material去设置…

【Redis】深入探索 Redis 的数据类型 —— 哈希表 hash

文章目录 前言一、hash 类型相关命令1.1 HSET 和 HSETNX1.2 HGET 和 HMGET1.3 HKEYS、HVALS 和 HGETALL1.4 HEXISTS 和 HDEL1.5 HLEN1.6 HINCRBY 和 HINCRBYFLOAT1.7 哈希相关命令总结 二、hash 类型内部编码三、hash 类型的应用场景四、原生&#xff0c;序列化&#xff0c;哈希…

C# Solidworks二次开发:创建草图文本和创建草图中心线API详解

今天要介绍的是关于如何创建草图文本的API以及创建草图中心线的API&#xff0c;同时把一些连带的API也会和大家介绍一下&#xff0c;依然是满满的干货。 &#xff08;1&#xff09;创建草图文本API&#xff0c;InsertSketchText() 这个API的输入参数如下图所示&#xff1a; 一…

设计模式之访问器模式(Visitor)的C++实现

1、访问器模式的提出 在软件开发过程中&#xff0c;早已发布的软件版本&#xff0c;由于需求的变化&#xff0c;需要给某个类层次结构增加新的方法。如果在该基类和子类中都添加新的行为方法&#xff0c;将给代码原有的结构带来破坏&#xff0c;同时&#xff0c;也违反了修改封…

2023年高教社杯全国大学生数学建模竞赛-【赛题解析篇】A题:定日镜场的优化设计

解题思路和完整论文更新中,各位小伙伴稍安勿躁 比赛注意事项及完整赛题详见 比赛规则及比赛指导 2023年高教社杯全国大学生数学建模竞赛-完整赛题及数据 赛题描述 构建以新能源为主体的新型电力系统,是我国实现“碳达峰”“碳中和”目标的一项重要 措施。塔式太阳能光热发…