| | |
| | | private readonly IHttpClientFactory _clientFactory; |
| | | private readonly IAskService _askService; |
| | | private readonly IAdmEvaluateService _admEvaluateService; |
| | | private readonly IExpertService _expertService; |
| | | private readonly zhengcaioaContext _context; |
| | | private readonly zcUserInfoN_dbContext _zcUsercontext; |
| | | |
| | | private readonly decimal jiabangongzibiaozhun = new decimal(21.5); |
| | | public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory) |
| | |
| | | _clientFactory = factory.CreateScope().ServiceProvider.GetRequiredService<IHttpClientFactory>(); |
| | | _askService= factory.CreateScope().ServiceProvider.GetRequiredService<IAskService>(); |
| | | _admEvaluateService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmEvaluateService>(); |
| | | _expertService = factory.CreateScope().ServiceProvider.GetRequiredService<IExpertService>(); |
| | | _context = factory.CreateScope().ServiceProvider.GetRequiredService<zhengcaioaContext>(); |
| | | _zcUsercontext = factory.CreateScope().ServiceProvider.GetRequiredService<zcUserInfoN_dbContext>(); |
| | | } |
| | | protected override async Task ExecuteAsync(CancellationToken stoppingToken) |
| | | { |
| | |
| | | { |
| | | jisuangonglinggongzi(); |
| | | } |
| | | |
| | | |
| | | _logger.LogInformation("把超过90天还没有转化的档案客户的业务经理归为无"); |
| | | this.ywjlguiling(); |
| | | _logger.LogInformation("把超过90天还没有转化的档案客户的业务经理归为无执行结束"); |
| | | |
| | | _logger.LogInformation("把会员系统和oa系统手机号相同的客户关联起来"); |
| | | this.huiyuanguanlian(); |
| | | _logger.LogInformation("把会员系统和oa系统手机号相同的客户关联起来执行结束"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | return diwutian; |
| | | } |
| | | |
| | | |
| | | //把超过90天还没有转化的档案客户的业务经理归为无 |
| | | public void ywjlguiling() |
| | | { |
| | | var intentionCustomerDTOs = _intentionCustomerService.GetList().Where(x=>x.Ywjltime < DateTime.Now.AddDays(-90)).ToList(); |
| | | |
| | | foreach(var intentionCustomerDTO in intentionCustomerDTOs) |
| | | { |
| | | intentionCustomerDTO.Ywjl = null; |
| | | intentionCustomerDTO.Ywjltime = null; |
| | | _intentionCustomerService.save(intentionCustomerDTO); |
| | | } |
| | | } |
| | | |
| | | |
| | | //把会员系统和oa系统手机号相同的客户关联起来 |
| | | public void huiyuanguanlian() |
| | | { |
| | | var cooperatecustomCustomers = _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList(); |
| | | var frameworkUsers = _zcUsercontext.FrameworkUsers.Where(x => x.IsValid == true).ToList(); |
| | | if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0) |
| | | { |
| | | foreach (var cooperatecustomCustomer in cooperatecustomCustomers) |
| | | { |
| | | if (!string.IsNullOrEmpty(cooperatecustomCustomer.Tel)) |
| | | { |
| | | var frameworkUser = frameworkUsers.Where(x => x.Itcode == cooperatecustomCustomer.Tel).FirstOrDefault(); |
| | | if (frameworkUser != null) |
| | | { |
| | | cooperatecustomCustomer.HuiyuanId = frameworkUser.Id.ToString(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | _context.SaveChanges(); |
| | | } |
| | | |
| | | |
| | | |
| | | var intentionCustomers = _context.IntentionCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList(); |
| | | if (intentionCustomers != null && intentionCustomers.Count > 0) |
| | | { |
| | | foreach (var intentionCustomer in intentionCustomers) |
| | | { |
| | | if (!string.IsNullOrEmpty(intentionCustomer.Tel)) |
| | | { |
| | | var frameworkUser = frameworkUsers.Where(x => x.Itcode == intentionCustomer.Tel).FirstOrDefault(); |
| | | if (frameworkUser != null) |
| | | { |
| | | intentionCustomer.HuiyuanId = frameworkUser.Id.ToString(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | _context.SaveChanges(); |
| | | } |
| | | |
| | | } |
| | | |
| | | //计算考勤 |
| | | public void jisuankaoqin() |
| | | { |
| | |
| | | |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | resultEntity.Result = false; |
| | | |
| | | var Month = DateTime.Now.Month - 1; |
| | | var Year = DateTime.Now.Year; |
| | | if (Month == 0) |
| | | { |
| | | Month = 12; |
| | | Year = Year - 1; |
| | | } |
| | | //查询所有的有效人员 |
| | | List<PltUserDTO> userList = _userService.GetListjisuankaoqin(new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1), new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1).AddMonths(1));//.Where(x => x.UserSn == "yang").ToList(); |
| | | List<PltUserDTO> userList = _userService.GetListjisuankaoqin(new DateTime(Year, Month, 1), new DateTime(Year, Month, 1).AddMonths(1));//.Where(x => x.UserSn == "yang").ToList(); |
| | | for (int a = 0; a < userList.Count; a++) |
| | | { |
| | | _logger.LogInformation("开始计算" + userList[a].UserName + "考勤"); |
| | | //开始计算考勤 |
| | | DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1); |
| | | DateTime dateminkaoqin = new DateTime(Year, Month, 1); |
| | | DateTime datemaxkaoqin = dateminkaoqin.AddMonths(1); |
| | | List<AdmAskLeaveDTO> admAskLeaveDTOs = _signinService.GetAskLeaveByUserId(userList[a].Id); |
| | | List<AdmAskLeaveOffDTO> admAskLeaveOffDTOs = _signinService.GetAskLeaveOffByUserId(userList[a].Id); |
| | |
| | | admSignInDTO = new AdmSignInDTO(); |
| | | } |
| | | //查询请假 请假时间不能重叠 |
| | | List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x =>x.Lavetype != "2" && x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList(); |
| | | List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x => x.Lavetype != "2" && x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList(); |
| | | //查询销假 销假时间不能重叠 |
| | | List<AdmAskLeaveOffDTO> admAskLeaveOffDTOMin = admAskLeaveOffDTOs.Where(x => x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x => x.Createtime).ToList(); |
| | | |
| | |
| | | //计算当天请假 |
| | | List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>(); |
| | | |
| | | var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3").ToList(); |
| | | var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList(); |
| | | foreach (var admAskLeave in feichuqinjia) |
| | | { |
| | | |
| | |
| | | //计算当天请假 |
| | | List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>(); |
| | | |
| | | var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3").ToList(); |
| | | var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList(); |
| | | foreach (var admAskLeave in feichuqinjia) |
| | | { |
| | | |
| | |
| | | //计算工资 |
| | | public async Task jisuangongziAsync() |
| | | { |
| | | var Month = DateTime.Now.Month - 1; |
| | | var Year = DateTime.Now.Year; |
| | | if (Month == 0) |
| | | { |
| | | Month = 12; |
| | | Year = Year - 1; |
| | | } |
| | | //查询所有的有效人员 |
| | | DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1); |
| | | DateTime dateminkaoqin = new DateTime(Year, Month, 1); |
| | | DateTime datemaxkaoqin = dateminkaoqin.AddMonths(1); |
| | | List<PltUserDTO> userList = _userService.GetListjisuankaoqin(dateminkaoqin, datemaxkaoqin);//.Where(x => x.UserSn == "yang").ToList(); |
| | | List<HrJibengongziDTO> hrJibengongziDTOs = _JibengongziService.GetList().Where(x=> x.Effecttime < datemaxkaoqin).ToList(); |
| | |
| | | //var feijijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); |
| | | //var jijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); |
| | | |
| | | #region 采购公告录入 |
| | | |
| | | var caigougonggaoDTOsyue = _projectService.GetcaigougonggaoListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (caigougonggaoDTOsyue != null && caigougonggaoDTOsyue.Count > 0) |
| | | { |
| | | var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "采购公告录入").FirstOrDefault(); |
| | | if (jijianidddd != null) |
| | | { |
| | | var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); |
| | | if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) |
| | | { |
| | | if (jixiaotichengfangan.Renwustandard == "01") |
| | | { |
| | | decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | else if (jixiaotichengfangan.Renwustandard == "02") |
| | | { |
| | | decimal renwujishu = jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 采购项目录入 |
| | | |
| | | var projectDTOsyue = _projectService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | #region 客户资料录入 |
| | | |
| | | |
| | | var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0) |
| | | { |
| | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | #region 专家录入 |
| | | |
| | | var zhuanjialuruDTOsyue = _expertService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (zhuanjialuruDTOsyue != null && zhuanjialuruDTOsyue.Count > 0) |
| | | { |
| | | var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "专家录入").FirstOrDefault(); |
| | | if (jijianidddd != null) |
| | | { |
| | | var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); |
| | | if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) |
| | | { |
| | | if (jixiaotichengfangan.Renwustandard == "01") |
| | | { |
| | | decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | else if (jixiaotichengfangan.Renwustandard == "02") |
| | | { |
| | | decimal renwujishu = jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | |
| | | |