示例#1
0
        /// <summary>
        /// 显示所有病人信息
        /// </summary>
        private void ShowAllPatient()
        {
            List <Patient> patients = MedicineLogic.QueryAllPatients();

            foreach (var patient in patients)
            {
                int index = this.dgvPatient.Rows.Add();
                this.dgvPatient.Rows[index].Cells[0].Value = patient.Id;
                this.dgvPatient.Rows[index].Cells[1].Value = patient.Name;
                DataGridViewImageCell img = new DataGridViewImageCell();
                Bitmap bitmap             = Properties.Resources.greenlight;
                if ((patient.MorningStatus == TakeStatus.正常 || patient.MorningStatus == TakeStatus.未知) &&
                    (patient.NoonStatus == TakeStatus.正常 || patient.NoonStatus == TakeStatus.未知) &&
                    (patient.EveningStatus == TakeStatus.正常 || patient.EveningStatus == TakeStatus.未知) &&
                    (patient.AdditionalStatus == TakeStatus.正常 || patient.AdditionalStatus == TakeStatus.未知))
                {
                    this.dgvPatient.Rows[index].Cells[2].Value = Properties.Resources.greenlight;
                }
                else
                {
                    this.dgvPatient.Rows[index].Cells[2].Value = Properties.Resources.redlight;
                }
            }
            this.dgvPatient.RowHeadersVisible  = false;
            this.dgvPatient.Columns[0].Visible = false;
        }
示例#2
0
        /// <summary>
        /// 初步处理更新服药时间
        /// </summary>
        /// <param name="recvMsg"></param>
        private void UpdateTakeTimeStatus(RecvMsg recvMsg)
        {
            string time   = recvMsg.Data.Substring(0, 2);
            string status = recvMsg.Data.Substring(2);
            int    id     = MedicineLogic.QueryPatientIdByDeviceNo(recvMsg.DeviceNo);

            switch (time)
            {
            case "31":     // 早
                UpdateTakeTimeStatus(id, "MorningStatus", status);
                break;

            case "32":     //中
                UpdateTakeTimeStatus(id, "NoonStatus", status);
                break;

            case "33":     //晚
                UpdateTakeTimeStatus(id, "EveningStatus", status);
                break;

            case "34":     //附加
                break;

            default:
                break;
            }
        }
示例#3
0
        /// <summary>
        /// 修改设备编号
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSaveNewDeviceNo_Click(object sender, EventArgs e)
        {
            if (labId.Text == "-1")
            {
                MessageBox.Show("请先选择病人");
                return;
            }
            int currDeviceNo = Convert.ToInt32(labDeviceNo.Text);
            int deviceNo     = Convert.ToInt32(txtNewDeviceNo.Text ?? "-1");

            if (deviceNo <= 0 || deviceNo >= 65535)
            {
                MessageBox.Show("设备号在1到65534之间");
                return;
            }
            if (MedicineLogic.IsDeviceExistbyDeviceNo(deviceNo))
            {
                MessageBox.Show("该设备已存在");
                return;
            }
            Device device = MedicineLogic.QueryDeviceByDeviceNo(currDeviceNo);

            MedicineLogic.UpdateDeviceNo(device.Id, deviceNo);
            byte[] zero        = { 0x00 };
            byte[] funcNo      = { 0x01 };
            byte[] oldDeviceNo = currDeviceNo > 255 ? Common.IntToHexByte(currDeviceNo) : zero.Concat(Common.IntToHexByte(currDeviceNo)).ToArray();
            byte[] newDeviceNo = deviceNo > 255 ? Common.IntToHexByte(deviceNo) : zero.Concat(Common.IntToHexByte(deviceNo)).ToArray();
            byte[] flg         = Common.BuildFlg();
            byte[] data        = oldDeviceNo.Concat(funcNo).Concat(newDeviceNo).Concat(flg).ToArray();
            AutoSendData(device.DeviceIP, data, flg);
            labDeviceNo.Text = deviceNo.ToString();
        }
    protected void Btn_Add_Click(object sender, EventArgs e)
    {
        HuaJiaCartModel huaJiaCartModel = new HuaJiaCartModel();

        huaJiaCartModel.setUsername(Session["username"].ToString());
        int medicineId = Int32.Parse(this.MedicineId.SelectedValue);

        huaJiaCartModel.setMedicineId(medicineId);
        float price = MedicineLogic.getPriceById(medicineId);

        huaJiaCartModel.setPrice(price);
        int count = Int32.Parse(this.Count.Text);

        huaJiaCartModel.setCount(count);
        float totalPrice = price * count;

        huaJiaCartModel.setTotalPrice(totalPrice);
        HuaJiaCartLogic huaJiaCartLogic = new HuaJiaCartLogic();

        if (huaJiaCartLogic.AddHuaJiaCartInfo(huaJiaCartModel))
        {
            Response.Write("<script>alert('药品划价销售信息添加成功!');location.href='HuaJiaAdd.aspx';</script>");
        }
        else
        {
            Response.Write("<script>alert('" + huaJiaCartLogic.getErrMessage() + "');location.href='HuaJiaAdd.aspx';</script>");
        }
    }
示例#5
0
 /// <summary>
 /// 重新查询数据
 /// </summary>
 /// <param name="patientid"></param>
 private void UpdateUi(int patientid)
 {
     if (dgvPatient.CurrentRow != null)
     {
         int currIndex = dgvPatient.CurrentRow.Index;
         foreach (DataGridViewRow row in dgvPatient.Rows)
         {
             if (row.Cells[0].Value.ToString() == patientid.ToString())
             {
                 Patient patient = MedicineLogic.QueryPatientById(patientid);
                 if ((patient.MorningStatus == TakeStatus.正常 || patient.MorningStatus == TakeStatus.未知) &&
                     (patient.NoonStatus == TakeStatus.正常 || patient.NoonStatus == TakeStatus.未知) &&
                     (patient.EveningStatus == TakeStatus.正常 || patient.EveningStatus == TakeStatus.未知) &&
                     (patient.AdditionalStatus == TakeStatus.正常 || patient.AdditionalStatus == TakeStatus.未知))
                 {
                     row.Cells[2].Value = Properties.Resources.greenlight;
                 }
                 else
                 {
                     row.Cells[2].Value = Properties.Resources.redlight;
                 }
                 if (row.Index == currIndex)
                 {
                     dgvPatient_CellClick(dgvPatient, new DataGridViewCellEventArgs(0, row.Index));
                     break;
                 }
             }
         }
     }
 }
 public WindowLinkingMed(ReceiptLogic logicReceipt, MedicineLogic logicMedicine, SymptomaticLogic logicSymptomatic)
 {
     InitializeComponent();
     this.logicSymptomatic = logicSymptomatic;
     this.logicMedicine    = logicMedicine;
     this.logicReceipt     = logicReceipt;
 }
示例#7
0
 /// <summary>
 /// 定时器,每秒触发的任务=发送消息
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void timer_EverySec_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
 {
     everySec.Enabled = false;
     if (DateTime.Now.Hour == 23 && DateTime.Now.Minute == 59)
     {
         MedicineLogic.ResetIsTake();
     }
     if (msgList.Count > 0)
     {
         lock (msgList)
         {
             for (int i = 0; i < msgList.Count; i++)
             {
                 if (msgList[i].ReTransmissionCount <= 0)
                 {
                     LogService.WriteLog($"超过重传次数,消息为:{Common.ByteToHexStr(msgList[i].SendMsg, msgList[i].SendMsg.Length)}");
                     msgList.RemoveAt(i);
                     continue;
                 }
                 SendData(msgList[i].SendMsg, msgList[i].Remote);
                 msgList[i].ReTransmissionCount--;
             }
         }
     }
     everySec.Enabled = true;
 }
示例#8
0
    protected void Btn_GuaHao_Click(object sender, EventArgs e)
    {
        string medicineName = this.MedicineName.Text;
        float  price        = Convert.ToSingle(this.Price.Text);
        int    stockCount   = Int32.Parse(this.StockCount.Text);
        string unit         = this.Unit.Text;
        string pzwh         = this.Pzwh.Text;
        string ingredient   = this.Ingredient.Text;
        string efficacy     = this.Efficacy.Text;
        string usage        = this.Usage.Text;

        MedicineModel medicineModel = new MedicineModel();

        medicineModel.setMedicineName(medicineName);
        medicineModel.setPrice(price);
        medicineModel.setStockCount(stockCount);
        medicineModel.setUnit(unit);
        medicineModel.setPzwh(pzwh);
        medicineModel.setIngredient(ingredient);
        medicineModel.setEfficacy(efficacy);
        medicineModel.setUsage(usage);

        MedicineLogic medicineLogic = new MedicineLogic();

        if (medicineLogic.AddMedicineInfo(medicineModel))
        {
            Response.Write("<script>alert('药品信息添加成功!');location.href='MedicineAdd.aspx';</script>");
        }
        else
        {
            Response.Write("<script>alert('" + medicineLogic.getErrMessage() + "');<script>");
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        MedicineLogic ml = new MedicineLogic();
        DataTable     dt = ml.SelectAll();

        Repeater1.DataSource = dt;
        Repeater1.DataBind();
    }
 public MainWindow(DoctorLogic logic, MedicineLogic mLogic, ReceiptLogic rLogic, ReportLogicDoctor rrLogic)
 {
     InitializeComponent();
     this.logic   = logic;
     this.mLogic  = mLogic;
     this.rLogic  = rLogic;
     this.rrLogic = rrLogic;
 }
    protected void Btn_Query_Click(object sender, EventArgs e)
    {
        string medicineName = this.MedicineName.Text;

        this.GridView1.DataSourceID = null;
        this.GridView1.DataSource   = MedicineLogic.QueryMedicineInfo(medicineName);
        this.GridView1.PageIndex    = 0;
        this.GridView1.DataBind();
    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        string medicineName = this.MedicineName.Text;

        this.GridView1.DataSourceID = null;
        this.GridView1.DataSource   = MedicineLogic.QueryMedicineInfo(medicineName);
        this.GridView1.PageIndex    = e.NewPageIndex;
        this.GridView1.DataBind();
    }
    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        int           id = Convert.ToInt32(e.CommandArgument);
        MedicineLogic ml = new MedicineLogic();
        Medicine      m  = ml.SelectByID(id);

        lblmediname.Text    = m.Name;
        lblmedidesc.Text    = m.Description;
        lblmedicost.Text    = m.Cost.ToString();
        lblmedipurpose.Text = m.Purpose;
    }
    protected void MediSave_Click(object sender, EventArgs e)
    {
        MedicineLogic ml = new MedicineLogic();
        Medicine      m  = new Medicine();

        m.Name        = txtMediName.Text;
        m.Description = txtMediDesc.Text;
        m.Cost        = float.Parse(txtMediCost.Text);
        m.Purpose     = txtMediPurpose.Text;

        ml.Insert(m);

        Response.Redirect("ViewMedicines.aspx");
    }
示例#15
0
        /// <summary>
        /// 保存服药时间
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSaveTakeTime_Click(object sender, EventArgs e)
        {
            if (labId.Text == "-1")
            {
                MessageBox.Show("请先选择病人");
                return;
            }
            TakeTimeInfo model;

            try
            {
                model = new TakeTimeInfo
                {
                    Id               = Convert.ToInt32(labId.Text ?? "-1"),
                    MorningHour      = Convert.ToInt32(txtMorningHour.Text ?? "-1"),
                    MorningMinute    = Convert.ToInt32(txtMorningMinute.Text ?? "-1"),
                    NoonHour         = Convert.ToInt32(txtNoonHour.Text ?? "-1"),
                    NoonMinute       = Convert.ToInt32(txtnoonMinute.Text ?? "-1"),
                    EveningHour      = Convert.ToInt32(txtEveningHour.Text ?? "-1"),
                    EveningMinute    = Convert.ToInt32(txtEveningMinute.Text ?? "-1"),
                    AdditionalHour   = Convert.ToInt32(txtAddHour.Text ?? "-1"),
                    AdditionalMinute = Convert.ToInt32(txtAddMinute.Text ?? "-1"),
                };
            }
            catch (Exception ex)
            {
                MessageBox.Show("请输入数字");
                return;
            }
            if (!Common.IsHour(model.MorningHour) ||
                !Common.IsHour(model.NoonHour) ||
                !Common.IsHour(model.EveningHour) ||
                !Common.IsHour(model.AdditionalHour))
            {
                MessageBox.Show("小时必须在1到24之间");
                return;
            }
            if (!Common.IsMinute(model.MorningMinute) ||
                !Common.IsMinute(model.NoonMinute) ||
                !Common.IsMinute(model.EveningMinute) ||
                !Common.IsMinute(model.AdditionalMinute))
            {
                MessageBox.Show("分钟必须在0到59之间");
                return;
            }
            MedicineLogic.UpdateTakeTime(model);
            SendTakeTime(model);
        }
示例#16
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            AdminModel adminModel = (new AdminLogic()).getAdminInfo(Session["username"].ToString());

            DataSet medicineDs = MedicineLogic.getAllMedicineInfo();
            for (int i = 0; i < medicineDs.Tables[0].Rows.Count; i++)
            {
                DataRow  dr = medicineDs.Tables[0].Rows[i];
                ListItem li = new ListItem(dr["medicineId"].ToString() + "-" + dr["medicineName"].ToString(), dr["medicineId"].ToString());
                this.MedicineId.Items.Add(li);
            }
            InitMedicineCartInfo();
        }
    }
示例#17
0
        /// <summary>
        /// 进一步处理更新服药时间
        /// </summary>
        /// <param name="id"></param>
        /// <param name="prop"></param>
        /// <param name="status"></param>
        private void UpdateTakeTimeStatus(int id, string prop, string status)
        {
            switch (status)
            {
            case "01":
                MedicineLogic.UpdateTakeTimeStatus(prop, TakeStatus.正常, id);
                break;

            case "02":
                MedicineLogic.UpdateTakeTimeStatus(prop, TakeStatus.异常, id);
                break;

            case "03":
                MedicineLogic.UpdateTakeTimeStatus(prop, TakeStatus.未吃药, id);
                break;

            default:
                break;
            }
        }
示例#18
0
        /// <summary>
        /// 发送配药指令
        /// </summary>
        /// <param name="id"></param>
        private void SendDispensing(int id)
        {
            Patient    patient    = MedicineLogic.QueryPatientById(id);
            Device     device     = MedicineLogic.QueryDeviceById(patient.DeviceId);
            Dispensing dispensing = MedicineLogic.QueryFirstDispensingByPatientId(id);

            if (dispensing == null || dispensing.Id <= 0)
            {
                return;
            }
            byte[] zero     = { 0x00 };
            byte[] deviceNo = device.DeviceNo <= 255 ? zero.Concat(Common.IntToHexByte(device.DeviceNo)).ToArray() : Common.IntToHexByte(device.DeviceNo);
            byte[] funcNo   = { 0x02 };
            byte[] data     = { };
            byte[] open     = { 0x31 };
            byte[] close    = { 0x30 };
            byte[] byteflg  = dispensing.Id > 255 ? Common.IntToHexByte(dispensing.Id) : zero.Concat(Common.IntToHexByte(dispensing.Id)).ToArray();
            data = Enum.GetValues(typeof(TakeTime)).Cast <object>().Aggregate(data, (current, i) => current.Concat((Convert.ToInt32(dispensing.TakeTime) & i.GetHashCode()) != 0 ? open : close).ToArray());
            data = deviceNo.Concat(funcNo).Concat(data).Concat(byteflg).ToArray();
            AutoSendData(device.DeviceIP, data, byteflg);
        }
示例#19
0
        /// <summary>
        /// 单元格点击事件,查询病人信息并显示
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvPatient_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex <= -1 || e.RowIndex <= -1)
            {
                return;
            }
            int     id      = Convert.ToInt32(dgvPatient.Rows[e.RowIndex].Cells[0].Value);
            Patient patient = MedicineLogic.QueryPatientById(id);
            Device  device  = MedicineLogic.QueryDeviceById(id);

            labId.Text      = id.ToString();
            labName.Text    = patient.Name;
            labSex.Text     = patient.Sex.ToString();
            labAge.Text     = patient.Age.ToString();
            labHeight.Text  = patient.Height.ToString("0.##");
            labWeight.Text  = patient.Weight.ToString("0.##");
            labIllness.Text = patient.Illness;
            labWardNo.Text  = patient.WardNo;
            labBedNo.Text   = patient.BedNo;

            labDeviceNo.Text = device.DeviceNo.ToString();

            txtMorningHour.Text   = patient.MorningHour == -1 ? string.Empty : patient.MorningHour.ToString();
            txtMorningMinute.Text = patient.MorningMinute == -1 ? string.Empty : patient.MorningMinute.ToString();
            txtNoonHour.Text      = patient.NoonHour == -1 ? string.Empty : patient.NoonHour.ToString();
            txtnoonMinute.Text    = patient.NoonMinute == -1 ? string.Empty : patient.NoonMinute.ToString();
            txtEveningHour.Text   = patient.EveningHour == -1 ? string.Empty : patient.EveningHour.ToString();
            txtEveningMinute.Text = patient.EveningMinute == -1 ? string.Empty : patient.EveningMinute.ToString();
            txtAddHour.Text       = patient.AdditionalHour == -1 ? string.Empty : patient.AdditionalHour.ToString();
            txtAddMinute.Text     = patient.AdditionalMinute == -1 ? string.Empty : patient.AdditionalMinute.ToString();

            picMorningStatus.Image = GetLight(patient.MorningStatus);
            picNoonStatus.Image    = GetLight(patient.NoonStatus);
            picEveningStatus.Image = GetLight(patient.EveningStatus);
            picAddStatus.Image     = GetLight(patient.AdditionalStatus);

            ShowDispensing(id);
        }
示例#20
0
        /// <summary>
        /// 显示配药信息
        /// </summary>
        /// <param name="id"></param>
        private void ShowDispensing(int id)
        {
            dgvDispensing.Rows.Clear();
            List <Dispensing> dispensingList = MedicineLogic.QueryDispensingByPatientId(id);

            foreach (var dispensing in dispensingList)
            {
                Medicine medicine = MedicineLogic.QueryMedicineById(dispensing.MedicineId);
                int      index    = dgvDispensing.Rows.Add();
                dgvDispensing.Rows[index].Cells[0].Value = dispensing.Id;
                dgvDispensing.Rows[index].Cells[1].Value = medicine.MedicineName;
                dgvDispensing.Rows[index].Cells[2].Value = dispensing.MedicineNumber.ToString("0.##");

                dgvDispensing.Rows[index].Cells[3].Value = ((dispensing.TakeTime & TakeTime.早上) != 0) ? "√" : "×";
                dgvDispensing.Rows[index].Cells[4].Value = ((dispensing.TakeTime & TakeTime.中午) != 0) ? "√" : "×";
                dgvDispensing.Rows[index].Cells[5].Value = ((dispensing.TakeTime & TakeTime.晚上) != 0) ? "√" : "×";
                dgvDispensing.Rows[index].Cells[6].Value = ((dispensing.TakeTime & TakeTime.附加) != 0) ? "√" : "×";

                dgvDispensing.Rows[index].Cells[7].Value = dispensing.IsTake == 1
                    ? Properties.Resources.greenlight
                    : Properties.Resources.redlight;
            }
            dgvDispensing.RowHeadersVisible = false;
        }
示例#21
0
        /// <summary>
        /// 发送服药时间
        /// </summary>
        /// <param name="info">服药时间信息</param>
        private void SendTakeTime(TakeTimeInfo info)
        {
            Device device = MedicineLogic.QueryDeviceById(info.Id);

            byte[] zero          = { 0x00 };
            byte[] nodata        = { 0xff };
            byte[] deviceNo      = device.DeviceNo <= 255 ? zero.Concat(Common.IntToHexByte(device.DeviceNo)).ToArray() : Common.IntToHexByte(device.DeviceNo);
            byte[] funcNo        = { 0x05 };
            byte[] morningHour   = info.MorningHour == -1 ? nodata : Common.IntToHexByte(info.MorningHour);
            byte[] morningMinute = info.MorningMinute == -1 ? nodata : Common.IntToHexByte(info.MorningMinute);

            byte[] noonHour   = info.NoonHour == -1 ? nodata : Common.IntToHexByte(info.NoonHour);
            byte[] noonMinute = info.NoonMinute == -1 ? nodata : Common.IntToHexByte(info.NoonMinute);

            byte[] eveningHour   = info.EveningHour == -1 ? nodata : Common.IntToHexByte(info.EveningHour);
            byte[] eveningMinute = info.EveningMinute == -1 ? nodata : Common.IntToHexByte(info.EveningMinute);

            byte[] addHour   = info.AdditionalHour == -1 ? nodata : Common.IntToHexByte(info.AdditionalHour);
            byte[] addMinute = info.AdditionalMinute == -1 ? nodata : Common.IntToHexByte(info.AdditionalMinute);

            byte[] byteflg = Common.BuildFlg();

            byte[] data =
                deviceNo.Concat(funcNo)
                .Concat(morningHour)
                .Concat(morningMinute)
                .Concat(noonHour)
                .Concat(noonMinute)
                .Concat(eveningHour)
                .Concat(eveningMinute)
                .Concat(addHour)
                .Concat(addMinute)
                .Concat(byteflg)
                .ToArray();
            AutoSendData(device.DeviceIP, data, byteflg);
        }
 public WindowSimulateForms(ReceiptLogic _rlogic, MedicineLogic _mlogic)
 {
     InitializeComponent();
     this._rlogic = _rlogic;
     this._mlogic = _mlogic;
 }
 public WindowLinkingMedDrugCourse(DrugCourseLogic logicCourse, MedicineLogic logicMedicine)
 {
     InitializeComponent();
     this.logicMedicine = logicMedicine;
     this.logicCourse   = logicCourse;
 }
示例#24
0
        /// <summary>
        /// 处理接收的数据
        /// </summary>
        /// <param name="obj"></param>
        private void HandleRecvDate(object obj)
        {
            IPEndPoint client = new IPEndPoint(IPAddress.Any, 0);
            EndPoint   remote = (EndPoint)client;

            byte[] data = new byte[128];
            while (true)
            {
                try
                {
                    var recv = sokListen.ReceiveFrom(data, ref remote);
                    LogService.WriteLog($"收到数据:{Common.ByteToHexStr(data, recv)}");
                    if (Common.IsDataComplete(data, recv))
                    {
                        string  strData = Common.GetData(Common.ByteToHexStr(data, recv));
                        RecvMsg recvMsg = new RecvMsg
                        {
                            DeviceNo = Convert.ToInt32(strData.Substring(0, 4), 16),
                            FuncNo   = strData.Substring(4, 2),
                            Data     = strData.Substring(6, strData.Length - 12),
                            Flg      = Common.HexStringToByte(strData.Substring(strData.Length - 6, 4)),
                        };
                        switch (recvMsg.FuncNo)
                        {
                        case "04":     //开机
                            SendTime(recvMsg.DeviceNo, remote);
                            if (MedicineLogic.IsDeviceExistbyDeviceNo(recvMsg.DeviceNo))
                            {
                                Device device = MedicineLogic.QueryDeviceByDeviceNo(recvMsg.DeviceNo);
                                MedicineLogic.UpdateDeviceIp(device.Id, remote.ToString());
                            }
                            else
                            {
                                MedicineLogic.AddDevice(new Device
                                {
                                    DeviceNo = recvMsg.DeviceNo,
                                    DeviceIP = remote.ToString()
                                });
                            }
                            break;

                        case "06":     //服药情况
                        {
                            UpdateTakeTimeStatus(recvMsg);
                            int id = MedicineLogic.QueryPatientIdByDeviceNo(recvMsg.DeviceNo);
                            UpdateUi(id);
                        }
                        break;

                        case "07":     //开药仓反馈
                        {
                            int id       = MedicineLogic.QueryPatientIdByDeviceNo(recvMsg.DeviceNo);
                            int dispenId = Convert.ToInt32(Common.ByteToHexStr(recvMsg.Flg, 2), 16);
                            MedicineLogic.UpdateIsTake(dispenId);
                            //SetIsTakeOnUi(dispenId);
                            UpdateUi(id);
                            SendDispensing(id);
                        }
                        break;

                        default:     //命令响应
                            lock (msgList)
                            {
                                int index = msgList.FindIndex(n => ByteEquals(n.Flg, recvMsg.Flg));
                                if (index >= 0)
                                {
                                    msgList.RemoveAt(index);
                                }
                            }
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogService.WriteLog(ex, "数据处理异常");
                }
            }
        }