InvalidDataMessageJob.cs 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using Microsoft.EntityFrameworkCore;
  2. using Quartz;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Threading.Tasks;
  8. using wispro.sp.entity;
  9. namespace wispro.sp.api.Job
  10. {
  11. public class InvalidDataMessageJob : IJob
  12. {
  13. public Task Execute(IJobExecutionContext context)
  14. {
  15. spDbContext spDb = new spDbContext();
  16. var lstItem = spDb.PerformanceItems.Where<PerformanceItem>(p =>
  17. (p.AgentFeedbackMemo != "已算绩效" && p.CalMonth.Status == 0 && !p.CaseNo.StartsWith("J")
  18. && (p.BasePoint ==null || (string.IsNullOrEmpty(p.CaseCoefficient) && p.Type =="新申请"))))
  19. .Include(p => p.Reviewer)
  20. .Include(p => p.CalMonth)
  21. .Include(p => p.Customer)
  22. .Include(p => p.WorkflowUser)
  23. .ToList<PerformanceItem>();
  24. if (lstItem.Count > 0)
  25. {
  26. DataTable dt = new DataTable();
  27. dt.Columns.Add("我方文号");
  28. dt.Columns.Add("业务人员");
  29. dt.Columns.Add("申请国家");
  30. dt.Columns.Add("专利类型");
  31. dt.Columns.Add("处理事项");
  32. dt.Columns.Add("案件阶段");
  33. dt.Columns.Add("案件系数");
  34. dt.Columns.Add("处理事项系数");
  35. dt.Columns.Add("案件状态");
  36. dt.Columns.Add("翻译字数");
  37. dt.Columns.Add("基础点数");
  38. dt.Columns.Add("绩效类型");
  39. dt.Columns.Add("备注");
  40. foreach (var p in lstItem)
  41. {
  42. DataRow row = dt.NewRow();
  43. row["我方文号"] = p.CaseNo;
  44. row["专利类型"] = p.ApplicationType;
  45. row["处理事项"] = p.DoItem;
  46. row["案件阶段"] = p.CaseStage;
  47. row["案件系数"] = p.CaseCoefficient;
  48. row["处理事项系数"] = p.DoItemCoefficient;
  49. row["案件状态"] = p.CaseState;
  50. row["翻译字数"] = p.WordCount;
  51. row["基础点数"] = p.BasePoint;
  52. row["绩效类型"] = p.Type;
  53. row["备注"] = p.CaseMemo;
  54. row["申请国家"] = p.Country;
  55. if (p.WorkflowUser != null)
  56. {
  57. row["业务人员"] = p.WorkflowUser.Name;
  58. }
  59. dt.Rows.Add(row);
  60. }
  61. string strPath = $"c:\\temp\\{DateTime.Now.ToString("yyyyMMddhhmmss")}-JXList.xlsx";
  62. utility.NPOIExcel.DataTableToExcel(dt, strPath);
  63. string strBody = $"<div style=\"position:absolute;width:800;height:300;margin-top:50px;margin-left:200px;margin-right:200px;box-shadow:0px 0px 3px 3px #ccc \"><div style= \"margin-top: 20px; margin-left:20px;;font-size:14px; \">各位好!</div><div style= \"margin-top: 25px; margin-left:20px;font-size:14px; \"><div>附件为本期绩效记录中疑似有问题数据,请检查并补充缺失数据!</div><div style= \"margin-top: 100px;margin-right:15px; padding-bottom: 20px; font-size:14px;color:#888888;float:right; \">小美集团绩效管理系统</div></div>";
  64. _ = QuartzUtil.AddMailJob("疑似有问题绩效数据清单", strBody, "罗才洋", "luocaiyang@china-wispro.com", strPath);
  65. _ = QuartzUtil.AddMailJob("疑似有问题绩效数据清单", strBody, "何青瓦", "heqingwa@china-wispro.com", strPath);
  66. _ = QuartzUtil.AddMailJob("疑似有问题绩效数据清单", strBody, "钟子敏", "zhongzimin@china-wispro.com", strPath);
  67. _ = QuartzUtil.AddMailJob("疑似有问题绩效数据清单", strBody, "夏敏", "xiamin@china-wispro.com", strPath);
  68. _ = QuartzUtil.AddMailJob("疑似有问题绩效数据清单", strBody, "吴芳", "wufang@china-wispro.com", strPath);
  69. _ = QuartzUtil.AddMailJob("疑似有问题绩效数据清单", strBody, "邢丽霞", "xinglixia@china-wispro.com", strPath);
  70. }
  71. return Task.CompletedTask;
  72. }
  73. }
  74. }