657 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			657 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			C#
		
	
	
	
using DM_Weight.Models;
 | 
						|
using DM_Weight.msg;
 | 
						|
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.Configuration;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using System.Xml;
 | 
						|
 | 
						|
namespace DM_Weight.ViewModels
 | 
						|
{
 | 
						|
    public class ChangeShiftsDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
 | 
						|
    {
 | 
						|
        public string Title => "交接班";
 | 
						|
 | 
						|
        public bool KeepAlive => true;
 | 
						|
        //交班人 发药人
 | 
						|
        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(() =>
 | 
						|
            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.manu_stock FROM account_book_g2 d2 WHERE d2.drug_id = c.`drug_id`  and d2.manu_no=c.manu_no  AND d2.create_date  < @beforeDate
 | 
						|
                                    ORDER BY d2.create_date 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.manu_stock FROM account_book_g2 d2 WHERE d2.drug_id = d.`drug_id`  and d2.manu_no=d.manu_no  AND d2.create_date < @beforeDate
 | 
						|
                                    ORDER BY d2.create_date 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&&!OperatorLogin)
 | 
						|
                            {
 | 
						|
 | 
						|
                                Operator = userList;
 | 
						|
                                RaisePropertyChanged("Operator");
 | 
						|
                                //交班人的发药人登录
 | 
						|
                                OperatorLogin = true;
 | 
						|
                                if (((Reviewer != null && ReviewerLogin) || (Reviewer == null)) && JieOperator != null && JieReviewer != null)
 | 
						|
                                { JiaoBanOk = false; }
 | 
						|
                            }
 | 
						|
                            else if (userList.UserName == changeOperator.FromRviewer&&!ReviewerLogin)
 | 
						|
                            {
 | 
						|
                                //交班人的审核人登录
 | 
						|
                                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;
 | 
						|
        ////private SqlSugarScope SqlSugarHelper.Db;
 | 
						|
        public ChangeShiftsDialogViewModel(IEventAggregator eventAggregator)
 | 
						|
        {
 | 
						|
            _eventAggregator = eventAggregator;
 | 
						|
            ////this.SqlSugarHelper.Db = sqlSugarScope;
 | 
						|
        }
 | 
						|
 | 
						|
        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();
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |