屠宰场客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
6.5 KiB

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace BO.Utils
{
public interface IAfterLogin
{
List<string> RoleName { get; }
Form Generate();
}
public static class AfterLoginUtil
{
#if DEBUG
static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>(){
new Tuple<string,string>("收购业务.过磅单",@"C:\BwpB3Project\src\B3ButcherManageClient\ButcherWeight\bin\Debug\ButcherWeight"),
new Tuple<string,string>("收购业务.验质分圈,收购业务.排宰顺序,收购业务.急宰打码",@"C:\BwpB3Project\src\B3ButcherManageClient\QualityAndOrder\bin\Debug\QualityAndOrder"),
new Tuple<string,string>("收购业务.线下验质分圈,收购业务.线下排宰顺序",@"C:\BwpB3Project\src\B3ButcherManageClient\OffLineQualityAndOrder\bin\Debug\OffLineQualityAndOrder"),
new Tuple<string,string>("收购业务.顺序确认",@"C:\BwpB3Project\src\B3ButcherManageClient\OrderConfirm\bin\Debug\OrderConfirm"),
new Tuple<string,string>("收购业务.烫毛计数",@"C:\BwpB3Project\src\B3ButcherManageClient\ButcherOrder\bin\Debug\ButcherOrder"),
new Tuple<string,string>("收购业务.掉猪处理",@"C:\BwpB3Project\src\B3ButcherManageClient\DropPigReOrder\bin\Debug\DropPigReOrder"),
new Tuple<string,string>("收购业务.称重定级,收购业务.定级校验",@"C:\BwpB3Project\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
new Tuple<string,string>("车间业务.白条入库",@"C:\BwpB3Project\src\B3ButcherManageClient\TrunksIousOutInStore\bin\Debug\TrunksIousOutInStore"),
new Tuple<string,string>("车间业务.领料退料",@"C:\BwpB3Project\src\B3ButcherManageClient\MaterialRequisition\bin\Debug\MaterialRequisition"),
new Tuple<string,string>("车间业务.分割称重",@"C:\BwpB3Project\src\B3ButcherManageClient\SegmentationWeight\bin\Debug\SegmentationWeight"),
new Tuple<string,string>("车间业务.分割入库",@"C:\BwpB3Project\src\B3ButcherManageClient\SegmentationInStore\bin\Debug\SegmentationInStore"),
new Tuple<string,string>("车间业务.车间配货",@"C:\BwpB3Project\src\B3ButcherManageClient\Distribution\bin\Debug\Distribution"),
new Tuple<string,string>("收购业务.赶猪出圈",@"C:\BwpB3Project\src\B3ButcherManageClient\OutHouseView\bin\Debug\OutHouseView"),
new Tuple<string,string>("收购业务.窒晕确认",@"C:\BwpB3Project\src\B3ButcherManageClient\OutHouseView\bin\Debug\OutHouseView"),
};
//luanhui 公司电脑
//static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>(){
// new Tuple<string,string>("排宰员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\ButcherOrder\bin\Debug\ButcherOrder"),
// new Tuple<string,string>("过磅员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\ButcherWeight\bin\Debug\ButcherWeight"),
// new Tuple<string,string>("验质员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\QualityAndOrder\bin\Debug\QualityAndOrder"),
// new Tuple<string,string>("定级员",@"C:\BwpB3Project\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
// new Tuple<string,string>("窒晕员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\OrderConfirm\bin\Debug\OrderConfirm"),
// new Tuple<string,string>("白条入库",@"D:\BWP\BWPB3\src\B3ButcherManageClient\TrunksIousOutInStore\bin\Debug\TrunksIousOutInStore"),
// new Tuple<string,string>("掉猪处理员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\DropPigReOrder\bin\Debug\DropPigReOrder"),
// new Tuple<string,string>("配货员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\Distribution\bin\Debug\Distribution"),
// new Tuple<string,string>("分割称重",@"D:\BWP\BWPB3\src\B3ButcherManageClient\SegmentationWeight\bin\Debug\SegmentationWeight"),
// new Tuple<string,string>("分割入库",@"D:\BWP\BWPB3\src\B3ButcherManageClient\SegmentationInStore\bin\Debug\SegmentationInStore"),
// new Tuple<string,string>("定级校验",@"D:\BWP\BWPB3\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
//};
#else
static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>()
{
new Tuple<string,string>("收购业务.过磅单",@"ButcherWeight"),
new Tuple<string,string>("收购业务.验质分圈,收购业务.排宰顺序,收购业务.急宰打码",@"QualityAndOrder"),
new Tuple<string,string>("收购业务.线下验质分圈,收购业务.线下排宰顺序",@"OffLineQualityAndOrder"),
new Tuple<string,string>("收购业务.顺序确认",@"OrderConfirm"),
new Tuple<string,string>("收购业务.烫毛计数",@"ButcherOrder"),
new Tuple<string,string>("收购业务.掉猪处理",@"DropPigReOrder"),
new Tuple<string,string>("收购业务.称重定级,收购业务.定级校验",@"WeighAndGrading"),
new Tuple<string,string>("收购业务.赶猪出圈",@"OutHouseView"),
new Tuple<string,string>("收购业务.窒晕确认",@"OutHouseView"),
new Tuple<string,string>("车间业务.白条入库",@"TrunksIousOutInStore"),
new Tuple<string,string>("车间业务.领料退料",@"MaterialRequisition"),
new Tuple<string,string>("车间业务.分割称重",@"SegmentationWeight"),
new Tuple<string,string>("车间业务.分割入库",@"SegmentationInStore"),
new Tuple<string,string>("车间业务.车间配货",@"Distribution"),
};
#endif
public static Form CreateForm()
{
foreach (var item in roleToAssemblies)
{
var roleArr = item.Item1.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var role in roleArr)
{
if (LoginRpcUtil.UserIsInRole(role))
{
#if DEBUG
var filePath = string.Format("{0}.dll", item.Item2);
#else
var filePath = Path.Combine(Application.StartupPath, string.Format("{0}.dll", item.Item2));
#endif
if (!File.Exists(filePath))
continue;
var formType = typeof(IAfterLogin);
foreach (var type in Assembly.LoadFile(filePath).GetTypes())
{
if (formType.IsAssignableFrom(type))
{
var instance = (IAfterLogin)Activator.CreateInstance(type);
if (instance.RoleName.Contains(role))
return instance.Generate();
}
}
}
}
}
return null;
}
}
}