Browse Source

需求单No.138716 屠宰分割客户端实现按登录用户进行权限划分,每个客户端只有后台配置用户有权限登录才能操作。

master
yibo 7 years ago
parent
commit
3f7d5fc9cc
17 changed files with 154 additions and 74 deletions
  1. +51
    -42
      BO/Utils/AfterLoginUtil.cs
  2. +6
    -0
      BO/Utils/LoginRpcUtil.cs
  3. +9
    -9
      ButcherManageClient/Login.cs
  4. +2
    -2
      ButcherOrder/ButcherOrderForm.cs
  5. +5
    -2
      ButcherWeight/WeightForm.cs
  6. +7
    -1
      ByProductWeight/ByProductWeightForm.cs
  7. +7
    -1
      Distribution/DistributionForm.cs
  8. +5
    -2
      DropPigReOrder/ReOrderForm.cs
  9. +8
    -1
      MaterialRequisition/MaterialRequisitionForm.cs
  10. +9
    -2
      OffLineQualityAndOrder/OffLineQualityOrderForm.cs
  11. +5
    -2
      OrderConfirm/OrderConfirmForm.cs
  12. +11
    -2
      QualityAndOrder/QualityOrderForm.cs
  13. +7
    -1
      SegmentationInStore/SegmentationInStoreForm.cs
  14. +7
    -1
      SegmentationWeight/SegmentationWeightForm.cs
  15. +5
    -2
      TrunksIousOutInStore/TrunksIousOutInStoreForm.cs
  16. +5
    -2
      WeighAndGrading/DataViewForm.cs
  17. +5
    -2
      WeighAndGrading/GradeFrom.cs

+ 51
- 42
BO/Utils/AfterLoginUtil.cs View File

@ -11,7 +11,7 @@ namespace BO.Utils
{
public interface IAfterLogin
{
string RoleName { get; }
List<string> RoleName { get; }
Form Generate();
}
@ -19,19 +19,20 @@ namespace BO.Utils
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\ButcherOrder\bin\Debug\ButcherOrder"),
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\WeighAndGrading\bin\Debug\WeighAndGrading"),
new Tuple<string,string>("窒晕员",@"C:\BwpB3Project\src\B3ButcherManageClient\OrderConfirm\bin\Debug\OrderConfirm"),
new Tuple<string,string>("白条入库",@"C:\BwpB3Project\src\B3ButcherManageClient\TrunksIousOutInStore\bin\Debug\TrunksIousOutInStore"),
new Tuple<string,string>("掉猪处理员",@"C:\BwpB3Project\src\B3ButcherManageClient\DropPigReOrder\bin\Debug\DropPigReOrder"),
new Tuple<string,string>("配货员",@"C:\BwpB3Project\src\B3ButcherManageClient\Distribution\bin\Debug\Distribution"),
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\WeighAndGrading\bin\Debug\WeighAndGrading"),
new Tuple<string,string>("领料退料",@"C:\BwpB3Project\src\B3ButcherManageClient\MaterialRequisition\bin\Debug\MaterialRequisition"),
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"),
};
//luanhui 公司电脑
@ -51,41 +52,49 @@ namespace BO.Utils
#else
static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>()
{
new Tuple<string,string>("排宰员",@"ButcherOrder"),
new Tuple<string,string>("过磅员",@"ButcherWeight"),
new Tuple<string,string>("验质员",@"QualityAndOrder"),
new Tuple<string,string>("验质排宰",@"OffLineQualityAndOrder"),
new Tuple<string,string>("定级员",@"WeighAndGrading"),
new Tuple<string,string>("窒晕员",@"OrderConfirm"),
new Tuple<string,string>("掉猪处理员",@"DropPigReOrder"),
new Tuple<string,string>("分割称重",@"SegmentationWeight"),
new Tuple<string,string>("分割入库",@"SegmentationInStore"),
new Tuple<string,string>("定级校验",@"WeighAndGrading"),
new Tuple<string,string>("白条入库",@"TrunksIousOutInStore"),
new Tuple<string,string>("领料退料",@"MaterialRequisition"),
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>("车间业务.白条入库",@"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(string role)
public static Form CreateForm()
{
var first = roleToAssemblies.FirstOrDefault(x => x.Item1 == role);
if (first == null)
throw new Exception("未注册的角色:"+role);
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", first.Item2);
var filePath = string.Format("{0}.dll", item.Item2);
#else
var filePath = Path.Combine(Application.StartupPath, string.Format("{0}.dll", first.Item2));
var filePath = Path.Combine(Application.StartupPath, string.Format("{0}.dll", item.Item2));
#endif
if (!File.Exists(filePath))
throw new Exception("相关模块不存在");
var formType = typeof(IAfterLogin);
foreach (var type in Assembly.LoadFile(filePath).GetTypes())
{
if (formType.IsAssignableFrom(type))
{
var instance = (IAfterLogin)Activator.CreateInstance(type);
if (role == instance.RoleName)
return instance.Generate();
if (!File.Exists(filePath))
throw new Exception("相关模块不存在");
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;


+ 6
- 0
BO/Utils/LoginRpcUtil.cs View File

@ -27,6 +27,12 @@ namespace BO.Utils
return string.Empty;
}
public static bool UserIsInRole(string roleName)
{
const string method = "/MainSystem/B3ClientService/Rpcs/UserInfoRpc/UserIsInRole";
return RpcFacade.Call<bool>(method, roleName);
}
public static void FillUserEmpInfo(string name, LoginUserInfo userInfo)
{
const string wpfUserMethod = "/MainSystem/B3ClientService/Rpcs/UserInfoRpc/GetUserEmpInfo";


+ 9
- 9
ButcherManageClient/Login.cs View File

@ -34,9 +34,9 @@ namespace ButcherManageClient
InitializeComponent();
userNameTxt.Text = ButcherAppContext.Context.UserConfig.UserName;
pwdTxt.Text = "123";
//#if DEBUG
// pwdTxt.Text = "123";
//#endif
//#if DEBUG
// pwdTxt.Text = "123";
//#endif
}
private void settingBtn_Click(object sender, EventArgs e)
@ -70,13 +70,13 @@ namespace ButcherManageClient
ButcherAppContext.Context.UserConfig.Connection = false;
}
//#if DEBUG
// var form = AfterLoginUtil.CreateForm("分割称重");
//#endif
//#if DEBUG
// var form = AfterLoginUtil.CreateForm("分割称重");
//#endif
//#if DEBUG
var form = AfterLoginUtil.CreateForm(ButcherAppContext.Context.UserConfig.Role);
//#endif
//#if DEBUG
var form = AfterLoginUtil.CreateForm();
//#endif
// var form = AfterLoginUtil.CreateForm("分割入库");
// var form = AfterLoginUtil.CreateForm("分割称重");


+ 2
- 2
ButcherOrder/ButcherOrderForm.cs View File

@ -13,11 +13,11 @@ namespace ButcherOrder
public partial class ButcherOrderForm : Form, IAfterLogin
{
#region IAfterLogin
public string RoleName
public List<string> RoleName
{
get
{
return "排宰员";
return new List<string>() { "收购业务.烫毛计数"};
}
}


+ 5
- 2
ButcherWeight/WeightForm.cs View File

@ -19,9 +19,12 @@ namespace ButcherWeight
public partial class WeightForm : Form, IAfterLogin
{
#region IAfterLogin Member
public string RoleName
public List<string> RoleName
{
get { return "过磅员"; }
get
{
return new List<string>() { "收购业务.过磅单" };
}
}
public Form Generate()


+ 7
- 1
ByProductWeight/ByProductWeightForm.cs View File

@ -20,7 +20,13 @@ namespace ByProductWeight
public partial class ByProductWeightForm : Form,IAfterLogin
{
public string RoleName { get { return "副产品计数"; } }
public List<string> RoleName
{
get
{
return new List<string>() { "车间业务.副产品称重" };
}
}
public Form Generate()
{
return this;


+ 7
- 1
Distribution/DistributionForm.cs View File

@ -17,7 +17,13 @@ namespace Distribution
public partial class DistributionForm : Form,IAfterLogin
{
public string RoleName { get { return "配货员"; } }
public List<string> RoleName
{
get
{
return new List<string>() { "车间业务.车间配货" };
}
}
public Form Generate()
{
return this;


+ 5
- 2
DropPigReOrder/ReOrderForm.cs View File

@ -17,9 +17,12 @@ namespace DropPigReOrder
{
public partial class ReOrderForm : Form, IAfterLogin
{
public string RoleName
public List<string> RoleName
{
get { return "掉猪处理员"; }
get
{
return new List<string>() { "收购业务.掉猪处理" };
}
}
public Form Generate()


+ 8
- 1
MaterialRequisition/MaterialRequisitionForm.cs View File

@ -24,7 +24,14 @@ namespace MaterialRequisition
public partial class MaterialRequisitionForm : Form, IAfterLogin
{
public string RoleName { get { return "领料退料"; } }
public List<string> RoleName
{
get
{
return new List<string>() { "车间业务.领料退料" };
}
}
public Form Generate()
{
return this;


+ 9
- 2
OffLineQualityAndOrder/OffLineQualityOrderForm.cs View File

@ -18,9 +18,12 @@ namespace OffLineQualityAndOrder
public partial class OffLineQualityOrderForm : Form, IAfterLogin
{
#region IAfterLogin
public string RoleName
public List<string> RoleName
{
get { return "验质排宰"; }
get
{
return new List<string>() { "收购业务.线下验质分圈", "收购业务.线下排宰顺序" };
}
}
public Form Generate()
@ -46,6 +49,10 @@ namespace OffLineQualityAndOrder
public OffLineQualityOrderForm()
{
InitializeComponent();
if (!LoginRpcUtil.UserIsInRole("收购业务.线下验质分圈"))
uTabControl1.TabPages.Remove(tabPage1);
if (!LoginRpcUtil.UserIsInRole("收购业务.线下排宰顺序"))
uTabControl1.TabPages.Remove(tabPage2);
testTimeInput.Date = DateTime.Today;
this.uTabControl1.Selected += (sender, e) =>
{


+ 5
- 2
OrderConfirm/OrderConfirmForm.cs View File

@ -17,9 +17,12 @@ namespace OrderConfirm
public partial class OrderConfirmForm : Form, IAfterLogin
{
#region IAfterLogin
public string RoleName
public List<string> RoleName
{
get { return "窒晕员"; }
get
{
return new List<string>() { "收购业务.顺序确认" };
}
}
public Form Generate()


+ 11
- 2
QualityAndOrder/QualityOrderForm.cs View File

@ -18,9 +18,12 @@ namespace QualityAndOrder
public partial class QualityOrderForm : Form, IAfterLogin
{
#region IAfterLogin
public string RoleName
public List<string> RoleName
{
get { return "验质员"; }
get
{
return new List<string>() { "收购业务.验质分圈", "收购业务.排宰顺序", "收购业务.急宰打码" };
}
}
public Form Generate()
@ -46,6 +49,12 @@ namespace QualityAndOrder
public QualityOrderForm()
{
InitializeComponent();
if (!LoginRpcUtil.UserIsInRole("收购业务.验质分圈"))
uTabControl1.TabPages.Remove(tabPage1);
if (!LoginRpcUtil.UserIsInRole("收购业务.排宰顺序"))
uTabControl1.TabPages.Remove(tabPage2);
if (!LoginRpcUtil.UserIsInRole("收购业务.急宰打码"))
uTabControl1.TabPages.Remove(tabPage3);
testTimeInput.Date = DateTime.Today;
this.uTabControl1.Selected += (sender, e) =>
{


+ 7
- 1
SegmentationInStore/SegmentationInStoreForm.cs View File

@ -334,7 +334,13 @@ namespace SegmentationInStore
cbxStore.SelectedIndex = 0;
}
public string RoleName { get { return "分割入库"; } }
public List<string> RoleName
{
get
{
return new List<string>() { "车间业务.分割入库" };
}
}
public Form Generate()
{
return this;


+ 7
- 1
SegmentationWeight/SegmentationWeightForm.cs View File

@ -783,7 +783,13 @@ namespace SegmentationWeight
return indexCode;
}
public string RoleName { get { return "分割称重"; } }
public List<string> RoleName
{
get
{
return new List<string>() { "车间业务.分割称重" };
}
}
public Form Generate()
{
return this;


+ 5
- 2
TrunksIousOutInStore/TrunksIousOutInStoreForm.cs View File

@ -462,9 +462,12 @@ namespace TrunksIousOutInStore
}
}
public string RoleName
public List<string> RoleName
{
get { return "白条入库"; }
get
{
return new List<string>() { "车间业务.白条入库" };
}
}
public Form Generate()
{


+ 5
- 2
WeighAndGrading/DataViewForm.cs View File

@ -31,9 +31,12 @@ namespace WeighAndGrading
public partial class DataViewForm : Form, IAfterLogin
{
#region IAfterLogin
public string RoleName
public List<string> RoleName
{
get { return "定级校验"; }
get
{
return new List<string>() { "收购业务.定级校验" };
}
}
public Form Generate()


+ 5
- 2
WeighAndGrading/GradeFrom.cs View File

@ -25,9 +25,12 @@ namespace WeighAndGrading
public partial class GradeFrom : Form, IAfterLogin
{
#region IAfterLogin
public string RoleName
public List<string> RoleName
{
get { return "定级员"; }
get
{
return new List<string>() { "收购业务.称重定级" };
}
}
public Form Generate()


Loading…
Cancel
Save