661 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			661 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using DM_Weight.Finger;
							 | 
						|||
| 
								 | 
							
								using DM_Weight.Models;
							 | 
						|||
| 
								 | 
							
								using DM_Weight.msg;
							 | 
						|||
| 
								 | 
							
								using DM_Weight.Port;
							 | 
						|||
| 
								 | 
							
								using DM_Weight.util;
							 | 
						|||
| 
								 | 
							
								using log4net;
							 | 
						|||
| 
								 | 
							
								using Prism.Commands;
							 | 
						|||
| 
								 | 
							
								using Prism.Events;
							 | 
						|||
| 
								 | 
							
								using Prism.Mvvm;
							 | 
						|||
| 
								 | 
							
								using Prism.Regions;
							 | 
						|||
| 
								 | 
							
								using Prism.Services.Dialogs;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Collections.ObjectModel;
							 | 
						|||
| 
								 | 
							
								using System.Configuration;
							 | 
						|||
| 
								 | 
							
								using System.Drawing;
							 | 
						|||
| 
								 | 
							
								using System.Drawing.Printing;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Reflection.PortableExecutable;
							 | 
						|||
| 
								 | 
							
								using System.Text;
							 | 
						|||
| 
								 | 
							
								using System.Threading.Tasks;
							 | 
						|||
| 
								 | 
							
								using System.Windows.Controls;
							 | 
						|||
| 
								 | 
							
								using System.Xml;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace DM_Weight.ViewModels
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public class ChangeShiftsDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        public string Title => "交接班";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public bool KeepAlive => false;
							 | 
						|||
| 
								 | 
							
								        //交班人 发药人
							 | 
						|||
| 
								 | 
							
								        public UserList Operator { get; set; }
							 | 
						|||
| 
								 | 
							
								        private bool _operatorLogin = false;
							 | 
						|||
| 
								 | 
							
								        public bool OperatorLogin
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get => _operatorLogin;
							 | 
						|||
| 
								 | 
							
								            set { SetProperty(ref _operatorLogin, value); }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        //private _brushesOperator = Brushes.Green;
							 | 
						|||
| 
								 | 
							
								        //public System.Drawing.Brush BrushesOperator
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    get=> _brushesOperator;
							 | 
						|||
| 
								 | 
							
								        //    set { SetProperty(ref _brushesOperator, value);}
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								        //交班人 审核人
							 | 
						|||
| 
								 | 
							
								        public UserList Reviewer { get; set; }
							 | 
						|||
| 
								 | 
							
								        private bool _reviewerLogin = false;
							 | 
						|||
| 
								 | 
							
								        public bool ReviewerLogin
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get => _reviewerLogin;
							 | 
						|||
| 
								 | 
							
								            set
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                SetProperty(ref _reviewerLogin, value);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        //private System.Drawing.Brush _brushesReviewer=Brushes.Green;
							 | 
						|||
| 
								 | 
							
								        //public System.Drawing.Brush BrushesReviewer
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    get=> _brushesReviewer;
							 | 
						|||
| 
								 | 
							
								        //    set
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        SetProperty(ref _brushesReviewer, value);
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //接班人 发药人
							 | 
						|||
| 
								 | 
							
								        public UserList JieOperator { get; set; }
							 | 
						|||
| 
								 | 
							
								        //接班人 审核人
							 | 
						|||
| 
								 | 
							
								        public UserList JieReviewer { get; set; }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //当前操作人
							 | 
						|||
| 
								 | 
							
								        public UserList CurrentUser { get; set; }
							 | 
						|||
| 
								 | 
							
								        //双人登录还是单人登录
							 | 
						|||
| 
								 | 
							
								        private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1");
							 | 
						|||
| 
								 | 
							
								        //第一个登录的是发药人还是接班人
							 | 
						|||
| 
								 | 
							
								        private string firstLogin = ConfigurationManager.AppSettings["firstLogin"]?.ToString() ?? "operator";
							 | 
						|||
| 
								 | 
							
								        //验证按钮可用状态
							 | 
						|||
| 
								 | 
							
								        private bool _jiaoBanOk = true;
							 | 
						|||
| 
								 | 
							
								        public bool JiaoBanOk
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get => _jiaoBanOk;
							 | 
						|||
| 
								 | 
							
								            set { SetProperty(ref _jiaoBanOk, value); }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private NavigationParameters keys = new NavigationParameters();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public bool SingleLogin
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get => ReadAppSetting("loginMode") == "1";
							 | 
						|||
| 
								 | 
							
								            //get => loginMode == 1;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        public bool MultiLogin
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //get => loginMode == 2;
							 | 
						|||
| 
								 | 
							
								            get => ReadAppSetting("loginMode") == "2";
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private PortUtil _portUtil;
							 | 
						|||
| 
								 | 
							
								        private Boolean _loginBtnEnable = true;
							 | 
						|||
| 
								 | 
							
								        public Boolean LoginBtnEnable { get { return _loginBtnEnable; } set { SetProperty(ref _loginBtnEnable, value); } }
							 | 
						|||
| 
								 | 
							
								        public string Password { get { return password; } set { SetProperty(ref password, value); } }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public string Username { get { return username; } set { SetProperty(ref username, value); } }
							 | 
						|||
| 
								 | 
							
								        private readonly ILog logger = LogManager.GetLogger(typeof(LoginWindowViewModel));
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private string username;
							 | 
						|||
| 
								 | 
							
								        private string password;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private bool _fingerMsg;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public bool FingerMsg
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get => _fingerMsg;
							 | 
						|||
| 
								 | 
							
								            set => SetProperty(ref _fingerMsg, value);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        public event Action<IDialogResult> RequestClose;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public DelegateCommand BtnCloseCommand
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get => new DelegateCommand(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                // 关闭当前窗口
							 | 
						|||
| 
								 | 
							
								                RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        //确认交接
							 | 
						|||
| 
								 | 
							
								        public DelegateCommand ShiftsCommand => new DelegateCommand(ShiftsAction);
							 | 
						|||
| 
								 | 
							
								        private void ShiftsAction()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (Operator != null && !OperatorLogin)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Message = "交班发药人需要系统验证!",
							 | 
						|||
| 
								 | 
							
								                    Type = MsgType.ERROR,
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (Reviewer != null && !ReviewerLogin)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Message = "交班审核人需要系统验证!",
							 | 
						|||
| 
								 | 
							
								                    Type = MsgType.ERROR,
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (JieOperator == null && JieReviewer == null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Message = "接班发药人或审核需要系统验证!",
							 | 
						|||
| 
								 | 
							
								                    Type = MsgType.ERROR,
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            //1验证交班人与接班人是否都已登录验证2写交接信息
							 | 
						|||
| 
								 | 
							
								            //if ((Operator != null || Reviewer != null) && (JieOperator != null || JieReviewer != null))
							 | 
						|||
| 
								 | 
							
								            //{
							 | 
						|||
| 
								 | 
							
								            DateTime dt = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								            //保存交接班信息(查询当前值班人的最后一条交接班信息(如有则修改状态,没有则插入一条)并写入一条接班人信息)
							 | 
						|||
| 
								 | 
							
								            var f = SqlSugarHelper.Db.UseTran(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                List<HkcChangeShifts> listHkcChangeShifts = SqlSugarHelper.Db.Queryable<HkcChangeShifts>()
							 | 
						|||
| 
								 | 
							
								                  .Where(cs => cs.State == "0")
							 | 
						|||
| 
								 | 
							
								                  .WhereIF(Operator != null && !string.IsNullOrEmpty(Operator.UserName), cs => cs.FromOperator == Operator.UserName)
							 | 
						|||
| 
								 | 
							
								                  .WhereIF(Reviewer != null && !string.IsNullOrEmpty(Reviewer.UserName), cs => cs.FromRviewer == Reviewer.UserName)
							 | 
						|||
| 
								 | 
							
								                  .OrderByDescending(cs => cs.OptState)
							 | 
						|||
| 
								 | 
							
								                  .ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (listHkcChangeShifts != null && listHkcChangeShifts.Count > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //存在则修改,不存在则插入一条
							 | 
						|||
| 
								 | 
							
								                    SqlSugarHelper.Db.Updateable(new HkcChangeShifts()
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Id = listHkcChangeShifts[0].Id,
							 | 
						|||
| 
								 | 
							
								                        ToOperator = JieOperator == null ? "" : JieOperator.UserName,
							 | 
						|||
| 
								 | 
							
								                        ToReviewer = JieReviewer == null ? "" : JieReviewer.UserName,
							 | 
						|||
| 
								 | 
							
								                        State = "1",
							 | 
						|||
| 
								 | 
							
								                        ToDate = dt
							 | 
						|||
| 
								 | 
							
								                    }).UpdateColumns(it => new { it.ToOperator, it.ToReviewer, it.State, it.ToDate }).WhereColumns(it => new { it.Id }).ExecuteCommand();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    SqlSugarHelper.Db.Insertable(new HkcChangeShifts()
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        FromOperator = Operator == null ? "" : Operator.UserName,
							 | 
						|||
| 
								 | 
							
								                        FromRviewer = Reviewer == null ? "" : Reviewer.UserName,
							 | 
						|||
| 
								 | 
							
								                        ToOperator = JieOperator == null ? "" : JieOperator.UserName,
							 | 
						|||
| 
								 | 
							
								                        ToReviewer = JieReviewer == null ? "" : JieReviewer.UserName,
							 | 
						|||
| 
								 | 
							
								                        State = "1",
							 | 
						|||
| 
								 | 
							
								                        OptState = "0",
							 | 
						|||
| 
								 | 
							
								                        OptDate = dt,
							 | 
						|||
| 
								 | 
							
								                        Machineid = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
							 | 
						|||
| 
								 | 
							
								                    }).ExecuteCommand();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                SqlSugarHelper.Db.Insertable(new HkcChangeShifts()
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    FromOperator = JieOperator == null ? "" : JieOperator.UserName,
							 | 
						|||
| 
								 | 
							
								                    FromRviewer = JieReviewer == null ? "" : JieReviewer.UserName,
							 | 
						|||
| 
								 | 
							
								                    State = "0",
							 | 
						|||
| 
								 | 
							
								                    OptState = "0",
							 | 
						|||
| 
								 | 
							
								                    OptDate = dt,
							 | 
						|||
| 
								 | 
							
								                    //ToDate = dt,
							 | 
						|||
| 
								 | 
							
								                    Machineid = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
							 | 
						|||
| 
								 | 
							
								                }).ExecuteCommand();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //插入交接班报表数据信息
							 | 
						|||
| 
								 | 
							
								                string strSql = @"SELECT drug.drug_name,drug.DRUG_SPEC,c.manu_no,d.useNum,d.getNum,sum(quantity) as surplus,
							 | 
						|||
| 
								 | 
							
								                                    (SELECT d2.manunoquantity FROM dm_machine_record d2 WHERE d2.drug_id = c.`drug_id`  and d2.manu_no=c.manu_no  AND d2.operation_time < @beforeDate
							 | 
						|||
| 
								 | 
							
								                                    ORDER BY d2.operation_time DESC,d2.id DESC LIMIT 1) AS beforeNum
							 | 
						|||
| 
								 | 
							
								                                    from channel_stock		c LEFT JOIN drug_info drug on c.drug_id=drug.drug_id left JOIN	(SELECT drug_id,manu_no,
							 | 
						|||
| 
								 | 
							
								                                    SUM(IF(d1.`type` = 1, d1.quantity, 0)) AS getNum,SUM(IF(d1.`type` = 2, d1.quantity, 0)) AS useNum FROM dm_machine_record d1
							 | 
						|||
| 
								 | 
							
								                                    WHERE d1.`type` IN (1, 2) AND d1.`operation_time` >= @startDate and d1.`operation_time` <=@endDate and d1.machine_id=@machineId GROUP BY d1.Drug_ID ,d1.manu_no) d
							 | 
						|||
| 
								 | 
							
								                                    on c.drug_id=d.drug_id and c.manu_no=d.manu_no WHERE c.machine_id=@machineId and c.drug_id is not NULL GROUP BY c.Drug_ID ,c.manu_no
							 | 
						|||
| 
								 | 
							
								                                    UNION
							 | 
						|||
| 
								 | 
							
								                                    SELECT drug.drug_name,drug.DRUG_SPEC,d.manu_no,d.useNum,d.getNum,sum(quantity) as surplus,(SELECT d2.manunoquantity FROM dm_machine_record d2 WHERE d2.drug_id = d.`drug_id`  and d2.manu_no=d.manu_no  AND d2.operation_time < @beforeDate
							 | 
						|||
| 
								 | 
							
								                                    ORDER BY d2.operation_time DESC,d2.id DESC LIMIT 1) AS beforeNum from (SELECT drug_id,manu_no, SUM(IF(d1.`type` = 1, d1.quantity, 0)) AS getNum,SUM(IF(d1.`type` = 2, d1.quantity, 0)) AS useNum FROM dm_machine_record d1 
							 | 
						|||
| 
								 | 
							
								                                     WHERE d1.`type` IN (1, 2) AND d1.`operation_time` >= @startDate and d1.`operation_time` <=@endDate and d1.machine_id=@machineId GROUP BY d1.Drug_ID ,d1.manu_no) d	
							 | 
						|||
| 
								 | 
							
								                                    LEFT JOIN drug_info drug on d.drug_id=drug.drug_id left JOIN		 channel_stock		c on c.drug_id=d.drug_id and c.manu_no=d.manu_no AND c.machine_id=@machineId GROUP BY d.Drug_ID ,d.manu_no ";
							 | 
						|||
| 
								 | 
							
								                List<ShiftsReport> shiftsReports = SqlSugarHelper.Db.SqlQueryable<dynamic>(strSql)
							 | 
						|||
| 
								 | 
							
								                 .AddParameters(new
							 | 
						|||
| 
								 | 
							
								                 {
							 | 
						|||
| 
								 | 
							
								                     machineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1",
							 | 
						|||
| 
								 | 
							
								                     beforeDate = listHkcChangeShifts[0].OptDate,
							 | 
						|||
| 
								 | 
							
								                     startDate = listHkcChangeShifts[0].OptDate,
							 | 
						|||
| 
								 | 
							
								                     endDate = dt
							 | 
						|||
| 
								 | 
							
								                 })
							 | 
						|||
| 
								 | 
							
								                .Select(it => new ShiftsReport())
							 | 
						|||
| 
								 | 
							
								                .ToList();
							 | 
						|||
| 
								 | 
							
								                if (shiftsReports != null && shiftsReports.Count > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    for (int i = 0; i < shiftsReports.Count; i++)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        SqlSugarHelper.Db.Insertable(new ShiftsReport()
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            OptDate = dt,
							 | 
						|||
| 
								 | 
							
								                            DrugName = shiftsReports[i].DrugName,
							 | 
						|||
| 
								 | 
							
								                            DrugSpec = shiftsReports[i].DrugSpec,
							 | 
						|||
| 
								 | 
							
								                            BeforeNum = shiftsReports[i].BeforeNum ?? 0,
							 | 
						|||
| 
								 | 
							
								                            GetNum = shiftsReports[i].GetNum ?? 0,
							 | 
						|||
| 
								 | 
							
								                            UseNum = shiftsReports[i].UseNum ?? 0,
							 | 
						|||
| 
								 | 
							
								                            ManuNo = shiftsReports[i].ManuNo,
							 | 
						|||
| 
								 | 
							
								                            Surplus = shiftsReports[i].Surplus ?? 0,
							 | 
						|||
| 
								 | 
							
								                            FromOperator = Operator == null ? "" : Operator.Nickname,
							 | 
						|||
| 
								 | 
							
								                            FromReviewer = Reviewer == null ? "" : Reviewer.Nickname,
							 | 
						|||
| 
								 | 
							
								                            ToOperator = JieOperator == null ? "" : JieOperator.Nickname,
							 | 
						|||
| 
								 | 
							
								                            ToReviewer = JieReviewer == null ? "" : JieReviewer.Nickname,
							 | 
						|||
| 
								 | 
							
								                            MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
							 | 
						|||
| 
								 | 
							
								                        }).ExecuteCommand();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								            if (f.Data)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Message = "交接班操作完成!",
							 | 
						|||
| 
								 | 
							
								                    Type = MsgType.SUCCESS,
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                // 关闭当前窗口
							 | 
						|||
| 
								 | 
							
								                RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (!f.IsSuccess)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Message = "交接班操作失败!",
							 | 
						|||
| 
								 | 
							
								                    Type = MsgType.ERROR,
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            //}
							 | 
						|||
| 
								 | 
							
								            //else
							 | 
						|||
| 
								 | 
							
								            //{
							 | 
						|||
| 
								 | 
							
								            //    AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								            //    {
							 | 
						|||
| 
								 | 
							
								            //        Message = "交接班需要交班人与接班人全部系统验证!",
							 | 
						|||
| 
								 | 
							
								            //        Type = MsgType.ERROR,
							 | 
						|||
| 
								 | 
							
								            //    };
							 | 
						|||
| 
								 | 
							
								            //    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								            //}
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        //用户名密码登录
							 | 
						|||
| 
								 | 
							
								        public DelegateCommand LoginCommand => new DelegateCommand(LoginAction);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //清空
							 | 
						|||
| 
								 | 
							
								        public DelegateCommand ClearCommand => new DelegateCommand(ClearAction);
							 | 
						|||
| 
								 | 
							
								        private void ClearAction()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Username = string.Empty;
							 | 
						|||
| 
								 | 
							
								            Password = string.Empty;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void LoginAction()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Login();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        void Login()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            LoginBtnEnable = false;
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                UserList userList = SqlSugarHelper.Db.Queryable<UserList>()
							 | 
						|||
| 
								 | 
							
								                                    .Includes<RoleDm>(u => u.Role)
							 | 
						|||
| 
								 | 
							
								                                   .InnerJoin<RoleDm>((u, r) => u.RoleId == r.Id)
							 | 
						|||
| 
								 | 
							
								                                   .First(u => u.UserName == username && ConfigurationManager.AppSettings["machineId"].ToString().Equals(u.MachineId));
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (userList == null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Message = "无此用户",
							 | 
						|||
| 
								 | 
							
								                        Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                    };
							 | 
						|||
| 
								 | 
							
								                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                    Username = string.Empty;
							 | 
						|||
| 
								 | 
							
								                    Password = string.Empty;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if (userList.Role == null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Message = "用户还未设置权限,请联系管理员",
							 | 
						|||
| 
								 | 
							
								                        Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                    };
							 | 
						|||
| 
								 | 
							
								                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                    Username = string.Empty;
							 | 
						|||
| 
								 | 
							
								                    Password = string.Empty;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (userList.PassWord == MD5.GetMD5Hash(Password))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Username = string.Empty;
							 | 
						|||
| 
								 | 
							
								                        Password = string.Empty;
							 | 
						|||
| 
								 | 
							
								                        HkcChangeShifts changeOperator = GetOperator();
							 | 
						|||
| 
								 | 
							
								                        if (changeOperator != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            if (userList.UserName == changeOperator.FromOperator)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                Operator = userList;
							 | 
						|||
| 
								 | 
							
								                                RaisePropertyChanged("Operator");
							 | 
						|||
| 
								 | 
							
								                                //交班人的发药人登录
							 | 
						|||
| 
								 | 
							
								                                OperatorLogin = true;
							 | 
						|||
| 
								 | 
							
								                                if (((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieOperator != null && JieReviewer != null)
							 | 
						|||
| 
								 | 
							
								                                { JiaoBanOk = false; }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else if (userList.UserName == changeOperator.FromRviewer)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                //交班人的审核人登录
							 | 
						|||
| 
								 | 
							
								                                Reviewer = userList;
							 | 
						|||
| 
								 | 
							
								                                RaisePropertyChanged("Reviewer");
							 | 
						|||
| 
								 | 
							
								                                ReviewerLogin = true;
							 | 
						|||
| 
								 | 
							
								                                if (((Operator != null && OperatorLogin) || (Operator == null)) && JieOperator != null && JieReviewer != null)
							 | 
						|||
| 
								 | 
							
								                                { JiaoBanOk = false; }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (keys.ContainsKey("operator"))
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (userList.UserName == (JieOperator == null ? "" : JieOperator.UserName))
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            Message = "接班发药人不能与审核人相同",
							 | 
						|||
| 
								 | 
							
								                                            Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                                        };
							 | 
						|||
| 
								 | 
							
								                                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    else
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        keys.Add("reviewer", userList);
							 | 
						|||
| 
								 | 
							
								                                        JieReviewer = userList;
							 | 
						|||
| 
								 | 
							
								                                        RaisePropertyChanged("JieReviewer");
							 | 
						|||
| 
								 | 
							
								                                        if (((Operator != null && OperatorLogin)||(Operator==null))&& ((Reviewer != null && ReviewerLogin)||(Reviewer==null)) &&JieOperator != null)
							 | 
						|||
| 
								 | 
							
								                                        { JiaoBanOk = false; }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (userList.UserName == (JieReviewer == null ? "" : JieReviewer.UserName))
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            Message = "接班发药人不能与审核人相同",
							 | 
						|||
| 
								 | 
							
								                                            Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                                        };
							 | 
						|||
| 
								 | 
							
								                                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    else
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        keys.Add("operator", userList);
							 | 
						|||
| 
								 | 
							
								                                        JieOperator = userList;
							 | 
						|||
| 
								 | 
							
								                                        RaisePropertyChanged("JieOperator");
							 | 
						|||
| 
								 | 
							
								                                        if (((Operator != null && OperatorLogin) || (Operator == null)) && ((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieReviewer != null)
							 | 
						|||
| 
								 | 
							
								                                        { JiaoBanOk = false; }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Message = "密码错误",
							 | 
						|||
| 
								 | 
							
								                            Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                        Password = string.Empty;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Message = "请输入账号或密码",
							 | 
						|||
| 
								 | 
							
								                    Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            LoginBtnEnable = true;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        //void SetUser(UserList user)
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    // 双人登录模式
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        // 如果已经录入了发药人,已经有一个用户登录
							 | 
						|||
| 
								 | 
							
								        //        if (keys.ContainsKey("operator"))
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            if (keys.GetValue<UserList>("operator").Id != user.Id)
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                keys.Add("reviewer", user);
							 | 
						|||
| 
								 | 
							
								        //                JieReviewer = user;
							 | 
						|||
| 
								 | 
							
								        //                RaisePropertyChanged("JieReviewer");
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    Message = "该发药人账号已登录,请输入不同账号",
							 | 
						|||
| 
								 | 
							
								        //                    Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								        //                };
							 | 
						|||
| 
								 | 
							
								        //                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								        //        // 如果已经录入了审核人, 已经有一个用户登录
							 | 
						|||
| 
								 | 
							
								        //        else if (keys.ContainsKey("reviewer"))
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            if (keys.GetValue<UserList>("reviewer").Id != user.Id)
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                keys.Add("operator", user);
							 | 
						|||
| 
								 | 
							
								        //                JieOperator = user;
							 | 
						|||
| 
								 | 
							
								        //                RaisePropertyChanged("JieOperator");
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    Message = "该审核人账号已登录,请输入不同账号",
							 | 
						|||
| 
								 | 
							
								        //                    Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								        //                };
							 | 
						|||
| 
								 | 
							
								        //                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								        //        // 第一个用户登录
							 | 
						|||
| 
								 | 
							
								        //        else
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            if (firstLogin.Equals("operator"))
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                keys.Add("operator", user);
							 | 
						|||
| 
								 | 
							
								        //                JieOperator = user;
							 | 
						|||
| 
								 | 
							
								        //                RaisePropertyChanged("JieOperator");
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                keys.Add("reviewer", user);
							 | 
						|||
| 
								 | 
							
								        //                JieReviewer = user;
							 | 
						|||
| 
								 | 
							
								        //                RaisePropertyChanged("JieReviewer");
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								        void ChangeShiftsLoginEvent(FingerprintMsg msg)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            logger.Info(msg.ToString());
							 | 
						|||
| 
								 | 
							
								            if (msg.Message.Equals("CONNECT"))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                FingerMsg = !msg.Result;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (LoginBtnEnable)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (msg.Message.Equals("LOGIN"))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    UserList userList = SqlSugarHelper.Db.Queryable<UserList>()
							 | 
						|||
| 
								 | 
							
								                    .Includes<RoleDm>(u => u.Role)
							 | 
						|||
| 
								 | 
							
								                    .First(u => u.Id == msg.Id);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (userList == null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Message = "无此用户",
							 | 
						|||
| 
								 | 
							
								                            Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                        //Username = "";
							 | 
						|||
| 
								 | 
							
								                        //Password = "";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (userList.Role == null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Message = "用户还未设置权限,请联系管理员",
							 | 
						|||
| 
								 | 
							
								                            Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                        //Username = "";
							 | 
						|||
| 
								 | 
							
								                        //Password = "";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        HkcChangeShifts changeOperator = GetOperator();
							 | 
						|||
| 
								 | 
							
								                        if (changeOperator != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (userList.UserName == changeOperator.FromOperator)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Operator = userList;
							 | 
						|||
| 
								 | 
							
								                                RaisePropertyChanged("Operator");
							 | 
						|||
| 
								 | 
							
								                                //交班人的发药人登录
							 | 
						|||
| 
								 | 
							
								                                OperatorLogin = true;
							 | 
						|||
| 
								 | 
							
								                                if (((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieOperator != null && JieReviewer != null)
							 | 
						|||
| 
								 | 
							
								                                { JiaoBanOk = false; }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else if (userList.UserName == changeOperator.FromRviewer)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                //交班人的审核人登录
							 | 
						|||
| 
								 | 
							
								                                Reviewer = userList;
							 | 
						|||
| 
								 | 
							
								                                RaisePropertyChanged("Reviewer");
							 | 
						|||
| 
								 | 
							
								                                ReviewerLogin = true;
							 | 
						|||
| 
								 | 
							
								                                if (((Operator != null && OperatorLogin) || (Operator == null)) && JieOperator != null && JieReviewer != null)
							 | 
						|||
| 
								 | 
							
								                                { JiaoBanOk = false; }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (keys.ContainsKey("operator"))
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (userList.UserName == (JieOperator == null ? "" : JieOperator.UserName))
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            Message = "接班发药人不能与审核人相同",
							 | 
						|||
| 
								 | 
							
								                                            Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                                        };
							 | 
						|||
| 
								 | 
							
								                                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    else
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        keys.Add("reviewer", userList);
							 | 
						|||
| 
								 | 
							
								                                        JieReviewer = userList;
							 | 
						|||
| 
								 | 
							
								                                        RaisePropertyChanged("JieReviewer");
							 | 
						|||
| 
								 | 
							
								                                        if (((Operator != null && OperatorLogin) || (Operator == null)) && ((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieOperator != null)
							 | 
						|||
| 
								 | 
							
								                                        { JiaoBanOk = false; }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (userList.UserName == (JieReviewer == null ? "" : JieReviewer.UserName))
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        AlertMsg alertMsg = new AlertMsg
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            Message = "接班发药人不能与审核人相同",
							 | 
						|||
| 
								 | 
							
								                                            Type = MsgType.ERROR
							 | 
						|||
| 
								 | 
							
								                                        };
							 | 
						|||
| 
								 | 
							
								                                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    else
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        keys.Add("operator", userList);
							 | 
						|||
| 
								 | 
							
								                                        JieOperator = userList;
							 | 
						|||
| 
								 | 
							
								                                        RaisePropertyChanged("JieOperator");
							 | 
						|||
| 
								 | 
							
								                                        if (((Operator != null && OperatorLogin) || (Operator == null)) && ((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieReviewer != null)
							 | 
						|||
| 
								 | 
							
								                                        { JiaoBanOk = false; }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        IEventAggregator _eventAggregator;
							 | 
						|||
| 
								 | 
							
								        public ChangeShiftsDialogViewModel(IEventAggregator eventAggregator)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            _eventAggregator = eventAggregator;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public bool CanCloseDialog()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return true;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public void OnDialogClosed()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            _eventAggregator.GetEvent<FingerprintEvent>().Unsubscribe(ChangeShiftsLoginEvent);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public void OnDialogOpened(IDialogParameters parameters)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            HkcChangeShifts changeOperator = GetOperator();
							 | 
						|||
| 
								 | 
							
								            if (changeOperator != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Operator = SqlSugarHelper.Db.Queryable<UserList>().Where(u => u.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).Single(u => u.UserName == changeOperator.FromOperator);
							 | 
						|||
| 
								 | 
							
								                Reviewer = SqlSugarHelper.Db.Queryable<UserList>().Where(u => u.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).Single(u => u.UserName == changeOperator.FromRviewer);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            FingerMsg = false;// !_fingerprintUtil.bIsConnected;
							 | 
						|||
| 
								 | 
							
								            _eventAggregator.GetEvent<FingerprintEvent>().Subscribe(ChangeShiftsLoginEvent);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        //查询值班人信息
							 | 
						|||
| 
								 | 
							
								        private HkcChangeShifts GetOperator()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //查询发药人及审核人
							 | 
						|||
| 
								 | 
							
								            HkcChangeShifts changeOperator = SqlSugarHelper.Db.Queryable<HkcChangeShifts>().Single(change => change.State == "0");
							 | 
						|||
| 
								 | 
							
								            //if (changeOperator != null)
							 | 
						|||
| 
								 | 
							
								            //{
							 | 
						|||
| 
								 | 
							
								            //    Operator = SqlSugarHelper.Db.Queryable<UserList>().Single(u => u.UserName == changeOperator.FromOperator);
							 | 
						|||
| 
								 | 
							
								            //    Reviewer = SqlSugarHelper.Db.Queryable<UserList>().Single(u => u.UserName == changeOperator.ToOperator);
							 | 
						|||
| 
								 | 
							
								            //}
							 | 
						|||
| 
								 | 
							
								            return changeOperator;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        //手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
							 | 
						|||
| 
								 | 
							
								        public string ReadAppSetting(string key)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string xPath = $"/configuration/appSettings//add[@key='{key}']";
							 | 
						|||
| 
								 | 
							
								            XmlDocument doc = new XmlDocument();
							 | 
						|||
| 
								 | 
							
								            string exeFileName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
							 | 
						|||
| 
								 | 
							
								            doc.Load(exeFileName + ".dll.config");
							 | 
						|||
| 
								 | 
							
								            XmlNode node = doc.SelectSingleNode(xPath);
							 | 
						|||
| 
								 | 
							
								            return node.Attributes["value"].Value.ToString();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |