|
@@ -1095,6 +1095,109 @@ namespace wispro.sp.api.Controllers
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private int? GetStaff(string v)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(v))
|
|
|
+ {
|
|
|
+ string temName = v.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries)[0];
|
|
|
+
|
|
|
+ if (!v.Contains("君龙"))
|
|
|
+ {
|
|
|
+ temName = v;
|
|
|
+ }
|
|
|
+ var staff = Context.Staffs.Where<Staff>(s => s.Name == temName).FirstOrDefault();
|
|
|
+
|
|
|
+ if (staff != null)
|
|
|
+ {
|
|
|
+ return staff.Id;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ public ApiSaveResponse UpdateOAStaff()
|
|
|
+ {
|
|
|
+ string strExcelFile = @"c:\temp\每月绩效统计--中国一次OA授权表.xlsx";
|
|
|
+ DataTable dt = NPOIExcel.ExcelToDataTable(strExcelFile, true, false);
|
|
|
+
|
|
|
+ foreach(DataRow row in dt.Rows)
|
|
|
+ {
|
|
|
+ string strCaseNo = row["我方文号"].ToString().Trim();
|
|
|
+ string strDoItem ="发明一次OA授权"; //row["处理事项"].ToString().Trim();
|
|
|
+
|
|
|
+ PerformanceItem item = Context.PerformanceItems
|
|
|
+ .Where<PerformanceItem>(p => p.CaseNo == strCaseNo &&
|
|
|
+ p.DoItem == strDoItem
|
|
|
+ && p.CalMonth.Status == 0)
|
|
|
+ .Include(p => p.Reviewer)
|
|
|
+ .Include(p => p.CalMonth)
|
|
|
+ .Include(p => p.Customer)
|
|
|
+ .Include(p => p.ItemStaffs).ThenInclude(p => p.DoPerson)
|
|
|
+ .FirstOrDefault();
|
|
|
+
|
|
|
+ if(item != null)
|
|
|
+ {
|
|
|
+ string strHandler = strHandler = row["处理事项处理人"].ToString().Trim();
|
|
|
+
|
|
|
+ string[] temHandlers = strHandler.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
+ item.ItemStaffs = item.ItemStaffs;
|
|
|
+ if(item.ItemStaffs == null)
|
|
|
+ {
|
|
|
+ item.ItemStaffs = new List<ItemStaff>();
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (string name in temHandlers)
|
|
|
+ {
|
|
|
+ ItemStaff itemStaff = new ItemStaff();
|
|
|
+ string temName = name.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries)[0];
|
|
|
+ if (!name.Contains("君龙"))
|
|
|
+ {
|
|
|
+ temName = name.Trim();
|
|
|
+ }
|
|
|
+ int? iTem = GetStaff(temName);
|
|
|
+ if ((iTem != null))
|
|
|
+ {
|
|
|
+ //itemStaff.Item = item;
|
|
|
+ itemStaff.DoPersonId = iTem.Value;
|
|
|
+
|
|
|
+ if (item.ItemStaffs.Where(itemS => itemS.DoPersonId == iTem.Value).Count() == 0)
|
|
|
+ {
|
|
|
+ item.ItemStaffs.Add(itemStaff);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ itemStaff.DoPerson = new Staff()
|
|
|
+ {
|
|
|
+ Name = temName,
|
|
|
+ Account = temName,
|
|
|
+ Password = utility.MD5Utility.GetMD5("12345678"),
|
|
|
+ IsCalPerformsnce = false,
|
|
|
+ Status = "试用期",
|
|
|
+ StaffGradeId = 4
|
|
|
+ };
|
|
|
+ item.ItemStaffs.Add(itemStaff);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Context.SaveChanges();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return new ApiSaveResponse()
|
|
|
+ {
|
|
|
+ Success = true
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
public ApiSaveResponse RefreshFromIPEasyById(int itemId)
|
|
|
{
|
|
|
var Item = Context.PerformanceItems.Include(p => p.Customer).Include(p => p.ItemStaffs).ThenInclude(p => p.DoPerson).FirstOrDefault(p => p.Id == itemId);
|
|
@@ -2028,7 +2131,7 @@ namespace wispro.sp.api.Controllers
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (item.ItemStaffs.Count == 1 && itemStaff.PerformancePoint == 0)
|
|
|
+ if (item.ItemStaffs.Count == 1 )
|
|
|
{
|
|
|
handlerBasePoint = item.BasePoint.Value;
|
|
|
}
|
|
@@ -2131,7 +2234,7 @@ namespace wispro.sp.api.Controllers
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (itemStaff.DoPerson.Status != "试用期" && item.Reviewer.IsCalPerformsnce) //判断是否在职
|
|
|
+ if (itemStaff.DoPerson.IsCalPerformsnce && item.Reviewer.IsCalPerformsnce) //判断是否在职
|
|
|
{
|
|
|
temReviewerStatic = new StaffStatistics()
|
|
|
{
|
|
@@ -2239,7 +2342,10 @@ namespace wispro.sp.api.Controllers
|
|
|
|
|
|
foreach (StaffStatistics ss in xsqList)
|
|
|
{
|
|
|
-
|
|
|
+ if(totalFPBLPoint * (totalActionPoint + jlPoint) == 0)
|
|
|
+ {
|
|
|
+ Console.WriteLine("");
|
|
|
+ }
|
|
|
ss.FinianlPoint = ss.FinianlPoint / totalFPBLPoint * (totalActionPoint + jlPoint);
|
|
|
spDb.SaveChanges();
|
|
|
|
|
@@ -2953,70 +3059,71 @@ namespace wispro.sp.api.Controllers
|
|
|
|
|
|
try
|
|
|
{
|
|
|
- if (temObj.ApplicationType != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("ApplicationType") && temObj.ApplicationType != null)
|
|
|
retObj.ApplicationType = temObj.ApplicationType.ToString();
|
|
|
|
|
|
- if (temObj.CaseMemo != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("CaseMemo") && temObj.CaseMemo != null)
|
|
|
retObj.CaseMemo = temObj.CaseMemo.ToString();
|
|
|
|
|
|
- if (temObj.BusinessType != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("BusinessType") && temObj.BusinessType != null)
|
|
|
retObj.BusinessType = temObj.BusinessType.ToString();
|
|
|
|
|
|
if (temObj.DoItem != null)
|
|
|
retObj.DoItem = temObj.DoItem.ToString();
|
|
|
|
|
|
- if (temObj.CaseStage != null)
|
|
|
+
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("CaseStage") && temObj.CaseStage != null)
|
|
|
retObj.CaseStage = temObj.CaseStage.ToString();
|
|
|
|
|
|
- if (temObj.CaseType != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("CaseType") && temObj.CaseType != null)
|
|
|
retObj.CaseType = temObj.CaseType.ToString();
|
|
|
|
|
|
- if (temObj.DoItemState != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("DoItemState") && temObj.DoItemState != null)
|
|
|
retObj.DoItemState = temObj.DoItemState.ToString();
|
|
|
|
|
|
- if (temObj.DoItemCoefficient != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("DoItemCoefficient") && temObj.DoItemCoefficient != null)
|
|
|
retObj.DoItemCoefficient = temObj.DoItemCoefficient.ToString();
|
|
|
|
|
|
- if (temObj.CaseCoefficient != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("CaseCoefficient") && temObj.CaseCoefficient != null)
|
|
|
retObj.CaseCoefficient = temObj.CaseCoefficient.ToString();
|
|
|
|
|
|
- if (temObj.EntrustingDate != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("EntrustingDate") && temObj.EntrustingDate != null)
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(temObj.EntrustingDate.ToString()))
|
|
|
retObj.EntrustingDate = DateTime.Parse(temObj.EntrustingDate.ToString());
|
|
|
}
|
|
|
|
|
|
- if(temObj.Country != null)
|
|
|
+ if(((IDictionary<String, Object>)temObj).Keys.Contains("Country") && temObj.Country != null)
|
|
|
{
|
|
|
retObj.Country = temObj.Country.ToString();
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (temObj.InternalDate != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("InternalDate") && temObj.InternalDate != null)
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(temObj.InternalDate.ToString()))
|
|
|
retObj.InternalDate = DateTime.Parse(temObj.InternalDate.ToString());
|
|
|
}
|
|
|
|
|
|
- if (temObj.CustomerLimitDate != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("CustomerLimitDate") && temObj.CustomerLimitDate != null)
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(temObj.CustomerLimitDate.ToString()))
|
|
|
retObj.CustomerLimitDate = DateTime.Parse(temObj.CustomerLimitDate.ToString());
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (temObj.ReturnDate != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("ReturnDate") && temObj.ReturnDate != null)
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(temObj.ReturnDate.ToString()))
|
|
|
retObj.ReturnDate = DateTime.Parse(temObj.ReturnDate.ToString());
|
|
|
}
|
|
|
|
|
|
- if (temObj.FinalizationDate != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("FinalizationDate") && temObj.FinalizationDate != null)
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(temObj.FinalizationDate.ToString()))
|
|
|
retObj.FinalizationDate = DateTime.Parse(temObj.FinalizationDate.ToString());
|
|
|
}
|
|
|
- if (temObj.FinishedDate != null)
|
|
|
+ if (((IDictionary<String, Object>)temObj).Keys.Contains("FinishedDate") && temObj.FinishedDate != null)
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(temObj.FinishedDate.ToString()))
|
|
|
retObj.FinishedDate = DateTime.Parse(temObj.FinishedDate.ToString());
|