|
@@ -7,6 +7,8 @@ using wispro.sp.share;
|
|
|
using System.Linq;
|
|
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
+using wispro.sp.entity.workflowDefine;
|
|
|
+using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
namespace wispro.sp.api.Controllers
|
|
|
{
|
|
@@ -28,8 +30,138 @@ namespace wispro.sp.api.Controllers
|
|
|
{
|
|
|
return Context.Staffs.ToList<Staff>();
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ private List<Staff> GetStaffList(dynamic dynamic,UserField userField)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Staff temUser = null;
|
|
|
+
|
|
|
+ switch (userField.UserConditionType)
|
|
|
+ {
|
|
|
+ case UserConditionType.Staff:
|
|
|
+
|
|
|
+ //UserField user = new UserField();
|
|
|
+ //user.UserConditionType = UserConditionType.UserDepartmentPosition;
|
|
|
+ //user.Department = "120";
|
|
|
+ //user.Positon = "6";
|
|
|
+
|
|
|
+ //System.Diagnostics.Debug.WriteLine(System.Text.Json.JsonSerializer.Serialize(user));
|
|
|
+
|
|
|
+
|
|
|
+ switch (userField.UserType)
|
|
|
+ {
|
|
|
+ case UserType.BindObjectProperty:
|
|
|
+
|
|
|
+ if (dynamic == null)
|
|
|
+ {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var retObj = share.Utility.ObjectHelper.GetPropertyValue(userField.UserValue, dynamic);
|
|
|
+
|
|
|
+ if (retObj is Staff)
|
|
|
+ {
|
|
|
+ return new List<Staff>() { (Staff)retObj };
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (retObj is List<Staff>)
|
|
|
+ {
|
|
|
+ return (List<Staff>)retObj;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case UserType.DoActionUser:
|
|
|
+ break;
|
|
|
+ case UserType.LoginUser:
|
|
|
+ temUser = Context.Staffs.FirstOrDefault(s => s.Name == User.Identity.Name);
|
|
|
+ return new List<Staff>() { temUser };
|
|
|
+ break;
|
|
|
+ case UserType.Staff:
|
|
|
+ temUser = Context.Staffs.FirstOrDefault(s => s.Id == int.Parse(userField.UserValue.ToString()));
|
|
|
+ if (temUser != null)
|
|
|
+ {
|
|
|
+ return new List<Staff>() { temUser };
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+ case UserConditionType.Department:
|
|
|
+ var retList = Context.DepartmentPositions.Where(d => d.departmentId == int.Parse(userField.Department)).Select(p => p.Staff).ToList();
|
|
|
+ return retList;
|
|
|
+ break;
|
|
|
+ case UserConditionType.UserDepartment:
|
|
|
+
|
|
|
+ break;
|
|
|
+ case UserConditionType.UserDepartmentPosition:
|
|
|
+ break;
|
|
|
+ case UserConditionType.DepartmentPosition:
|
|
|
+ var retList1 = Context.DepartmentPositions.Where(d =>
|
|
|
+ d.departmentId == int.Parse(userField.Department) &&
|
|
|
+ d.PositionId == int.Parse(userField.Positon)
|
|
|
+ )
|
|
|
+ .Select(p => p.Staff).ToList();
|
|
|
+ return retList1;
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return new List<Staff>();
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<Staff> GetReviewers(int itemId, int appealTypeId)
|
|
|
+ {
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var item = Context.PerformanceItems
|
|
|
+ .Include(p=>p.Reviewer)
|
|
|
+ .Include(p=>p.ItemStaffs).ThenInclude(p=>p.DoPerson)
|
|
|
+ .Include(p=>p.PreOastaff)
|
|
|
+ .Include(p=>p.Customer)
|
|
|
+ .FirstOrDefault(p => p.Id == itemId);
|
|
|
+
|
|
|
+ var apType = Context.AppealTypes.FirstOrDefault(p => p.Id == appealTypeId);
|
|
|
+
|
|
|
+ UserField user = new UserField();
|
|
|
+
|
|
|
+ if (String.IsNullOrEmpty(apType.ReviewerExpress))
|
|
|
+ {
|
|
|
+ return Context.Staffs.ToList();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ UserField userField = new UserField();
|
|
|
+ if (apType.ReviewerExpress.StartsWith("p."))
|
|
|
+ {
|
|
|
+ userField.UserConditionType = UserConditionType.Staff;
|
|
|
+ userField.UserType = UserType.BindObjectProperty;
|
|
|
+ userField.UserValue = apType.ReviewerExpress.Replace("p.", "").Trim();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ userField = System.Text.Json.JsonSerializer.Deserialize<UserField>(apType.ReviewerExpress);
|
|
|
+ }
|
|
|
+
|
|
|
+ return GetStaffList(item, userField);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public ListApiResponse<Staff> Query(int pageIndex,int pageSize)
|
|
|
{
|
|
|
ListApiResponse<Staff> ret = new ListApiResponse<Staff>();
|