From 77f8f99697748749edd553b127de34b02ccb18c5 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期五, 25 六月 2021 11:43:59 +0800 Subject: [PATCH] 提交 --- zhengcaioa/IServices/IAdmBreakPrecedentService.cs | 3 zhengcaioa/DTO/ProjectDTO.cs | 4 zhengcaioa/Services/AdmBreakPrecedentService.cs | 13 zhengcaioa/IServices/IAdmPieceCheckService.cs | 2 zhengcaioa/Services/HrSalaryService.cs | 20 zhengcaioa/zhengcaioa/Controllers/UserController.cs | 4 zhengcaioa/zhengcaioa/zhengcaioa.csproj.user | 2 考勤计算的表.sql | 136 + zhengcaioa/Services/AdmPieceCheckService.cs | 13 zhengcaioa/Model/AdmAttendanceDtl.cs | 8 zhengcaioa/IServices/IDailyManagementService.cs | 2 zhengcaioa/Services/AdmSigninService.cs | 34 zhengcaioa/Services/GroupTopicService.cs | 10 zhengcaioa/Model/zhengcaioaContext.cs | 24 zhengcaioa/Services/CooperOrderService.cs | 14 zhengcaioa/IServices/ISimService.cs | 2 zhengcaioa/zhengcaioa/Controllers/ProjectController.cs | 1 zhengcaioa/Services/DailyManagementService.cs | 27 zhengcaioa/DTO/AdmAttendanceDtlDTO.cs | 7 zhengcaioa/IServices/ICooperOrderService.cs | 3 zhengcaioa/zhengcaioa/Views/Liaotian/Edit.cshtml | 48 zhengcaioa/Services/ProjectService.cs | 49 zhengcaioa/Services/SimService.cs | 11 用户表更新.sql | 10 zhengcaioa/zhengcaioa/Views/User/Edit.cshtml | 54 zhengcaioa/IServices/IAdmAttendanceService.cs | 2 zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs | 40 zhengcaioa/IServices/ICooperVisitService.cs | 2 zhengcaioa/Services/CooperatecustomCustomerService.cs | 25 zhengcaioa/zhengcaioa/Views/Project/Select.cshtml | 26 zhengcaioa/zhengcaioa/Views/CooperOrder/Index.cshtml | 2 zhengcaioa/IServices/IUserService.cs | 3 zhengcaioa/DTO/PltUserDTO.cs | 1 zhengcaioa/Services/AdmAttendanceService.cs | 13 zhengcaioa/IServices/IAdmAttendanceDtlService.cs | 2 zhengcaioa/IServices/IAdmSigninService.cs | 7 zhengcaioa/Services/AdmAttendanceDtlService.cs | 30 zhengcaioa/IServices/IHrSalaryService.cs | 2 zhengcaioa/DTO/AdmSignInDTO.cs | 6 zhengcaioa/IServices/IGroupTopicService.cs | 2 zhengcaioa/zhengcaioa/Controllers/HR/HrJixiaotichengController.cs | 15 zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 2729 ++++++++++++++++++++++++++++++++++++++++++++++ zhengcaioa/Services/CooperVisitService.cs | 17 zhengcaioa/Services/UserService.cs | 14 zhengcaioa/IServices/ICooperatecustomCustomerService.cs | 4 zhengcaioa/zhengcaioa/Views/Liaotian/Indexcheck.cshtml | 2 46 files changed, 3,307 insertions(+), 138 deletions(-) diff --git a/zhengcaioa/DTO/AdmAttendanceDtlDTO.cs b/zhengcaioa/DTO/AdmAttendanceDtlDTO.cs index 3bbc9e9..6fa5774 100644 --- a/zhengcaioa/DTO/AdmAttendanceDtlDTO.cs +++ b/zhengcaioa/DTO/AdmAttendanceDtlDTO.cs @@ -22,9 +22,12 @@ public DateTime Createtime { get; set; } public string Modifier { get; set; } public DateTime Modifytime { get; set; } - public decimal Chidaofenzhong { get; set; } - public decimal Zaotuifenzhong { get; set; } + public decimal Shangwuchidaofenzhong { get; set; } + public decimal Xiawuchidaofenzhong { get; set; } + public decimal Shangwuzaotuifenzhong { get; set; } + public decimal Xiawuzaotuifenzhong { get; set; } public decimal Kuanggongtianshu { get; set; } + public string Iswork { get; set; } } public class AdmAttendanceDtlDTOSearch : SearchEntity diff --git a/zhengcaioa/DTO/AdmSignInDTO.cs b/zhengcaioa/DTO/AdmSignInDTO.cs index 0bfbb4d..58e08ad 100644 --- a/zhengcaioa/DTO/AdmSignInDTO.cs +++ b/zhengcaioa/DTO/AdmSignInDTO.cs @@ -113,4 +113,10 @@ public string Tittle { get; set; } } + + public partial class DateBiJiaoDTO + { + public DateTime? StartTime { get; set; } + public DateTime? EndTime { get; set; } + } } diff --git a/zhengcaioa/DTO/PltUserDTO.cs b/zhengcaioa/DTO/PltUserDTO.cs index 55fd534..3e29460 100644 --- a/zhengcaioa/DTO/PltUserDTO.cs +++ b/zhengcaioa/DTO/PltUserDTO.cs @@ -56,6 +56,7 @@ public DateTime? Indate { get; set; } public string IndateName { get; set; } public DateTime? Outdate { get; set; } + public string OutdateName { get; set; } public string Gongling { get; set; } public string Sex { get; set; } diff --git a/zhengcaioa/DTO/ProjectDTO.cs b/zhengcaioa/DTO/ProjectDTO.cs index 6f3733d..ca5a709 100644 --- a/zhengcaioa/DTO/ProjectDTO.cs +++ b/zhengcaioa/DTO/ProjectDTO.cs @@ -96,8 +96,10 @@ public string fblx { get; set; } - + public string Reasonname { get; set; } + + public string ShiFouyReasonname { get; set; } } } diff --git a/zhengcaioa/IServices/IAdmAttendanceDtlService.cs b/zhengcaioa/IServices/IAdmAttendanceDtlService.cs index 8499e30..7fdcb06 100644 --- a/zhengcaioa/IServices/IAdmAttendanceDtlService.cs +++ b/zhengcaioa/IServices/IAdmAttendanceDtlService.cs @@ -11,6 +11,8 @@ AdmAttendanceDtlDTO Get(string id); + AdmAttendanceDtlDTO GetByUserAndDate(string Attendanceid, DateTime SgninDate); + List<AdmAttendanceDtlDTO> GetList(AdmAttendanceDtlDTOSearch searchEntity); ResultEntity ModifyStatus(string id, string userid); diff --git a/zhengcaioa/IServices/IAdmAttendanceService.cs b/zhengcaioa/IServices/IAdmAttendanceService.cs index cff16a5..41e1c5d 100644 --- a/zhengcaioa/IServices/IAdmAttendanceService.cs +++ b/zhengcaioa/IServices/IAdmAttendanceService.cs @@ -11,6 +11,8 @@ AdmAttendanceDTO Get(string id); + AdmAttendanceDTO GetByUserAndDate(string userid, int year,int month); + ResultDataEntity<AdmAttendanceDTO> SearchByPaging(AdmAttendanceDTOSearch searchEntity); ResultEntity ModifyStatus(string id, string userid); diff --git a/zhengcaioa/IServices/IAdmBreakPrecedentService.cs b/zhengcaioa/IServices/IAdmBreakPrecedentService.cs index 52a679c..5111a70 100644 --- a/zhengcaioa/IServices/IAdmBreakPrecedentService.cs +++ b/zhengcaioa/IServices/IAdmBreakPrecedentService.cs @@ -16,5 +16,8 @@ ResultDataEntity<AdmBreakPrecedentDTO> SearchByPaging(AdmBreakPrecedentDTOSearch searchEntity); ResultEntity ModifyStatus(string id, string userid); + + + List<AdmBreakPrecedentDTO> GetList (string userid, DateTime datemin, DateTime datemax); } } diff --git a/zhengcaioa/IServices/IAdmPieceCheckService.cs b/zhengcaioa/IServices/IAdmPieceCheckService.cs index 140a8c3..dbd21e8 100644 --- a/zhengcaioa/IServices/IAdmPieceCheckService.cs +++ b/zhengcaioa/IServices/IAdmPieceCheckService.cs @@ -16,5 +16,7 @@ ResultDataEntity<AdmPieceCheckDTO> SearchByPaging(AdmPieceCheckDTOSearch searchEntity); ResultEntity ModifyStatus(string id, string userid); + + List<AdmPieceCheckDTO> GetList(string userid, DateTime datemin, DateTime datemax); } } diff --git a/zhengcaioa/IServices/IAdmSigninService.cs b/zhengcaioa/IServices/IAdmSigninService.cs index 1f0ab9d..e2a0506 100644 --- a/zhengcaioa/IServices/IAdmSigninService.cs +++ b/zhengcaioa/IServices/IAdmSigninService.cs @@ -11,6 +11,8 @@ AdmSignInDTO Get(string id); + AdmSignInDTO GetByUserAndDate(string userid,DateTime sgninDate); + AdmSignInDTO GetTodaySignin(string userId); ResultDataEntity<SigninListDTO> SearchByPaging(AdmSignInDTOSearch searchEntity); @@ -20,10 +22,15 @@ //璇峰亣 ResultEntity SaveAskLeave(AdmAskLeaveDTO admAsk); AdmAskLeaveDTO GetAskLeave(string Id); + + List<AdmAskLeaveDTO> GetAskLeaveByUserId(string UserId); + //閿�鍋� ResultEntity SaveAskLeaveOff(AdmAskLeaveOffDTO leaveOff); AdmAskLeaveOffDTO GetAskLeaveOff(string Id); + List<AdmAskLeaveOffDTO> GetAskLeaveOffByUserId(string UserId); + #region 鑰冨嫟瑙勫垯 ResultEntity SaveAttendanceRlues(string attRlues); diff --git a/zhengcaioa/IServices/ICooperOrderService.cs b/zhengcaioa/IServices/ICooperOrderService.cs index 34086dc..806d3c8 100644 --- a/zhengcaioa/IServices/ICooperOrderService.cs +++ b/zhengcaioa/IServices/ICooperOrderService.cs @@ -30,5 +30,8 @@ ResultEntity pingjia(CooperOrderDTO dto); CooperOrderDTO Getprint(string id); + + List<CooperOrderDTO> GetList(string userid, DateTime datemin, DateTime datemax); + } } diff --git a/zhengcaioa/IServices/ICooperVisitService.cs b/zhengcaioa/IServices/ICooperVisitService.cs index 4010441..94f2db7 100644 --- a/zhengcaioa/IServices/ICooperVisitService.cs +++ b/zhengcaioa/IServices/ICooperVisitService.cs @@ -18,5 +18,7 @@ ResultEntity ModifyStatus(string id, string userid); List<CooperatecustomCustomerDTO> GetList(string[] id); + + List<CooperVisitDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax); } } diff --git a/zhengcaioa/IServices/ICooperatecustomCustomerService.cs b/zhengcaioa/IServices/ICooperatecustomCustomerService.cs index aef5fb7..047e0fb 100644 --- a/zhengcaioa/IServices/ICooperatecustomCustomerService.cs +++ b/zhengcaioa/IServices/ICooperatecustomCustomerService.cs @@ -18,5 +18,9 @@ ResultEntity ModifyStatus(string id, string userid); List<CooperatecustomCustomerDTO> GetList(); + List<CooperatecustomCustomerDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax); + + + List<CooperatecustomCustomerDTO> GetListsalaryqiandan(string userid, DateTime datemin, DateTime datemax); } } diff --git a/zhengcaioa/IServices/IDailyManagementService.cs b/zhengcaioa/IServices/IDailyManagementService.cs index 5790af9..86476a8 100644 --- a/zhengcaioa/IServices/IDailyManagementService.cs +++ b/zhengcaioa/IServices/IDailyManagementService.cs @@ -22,5 +22,7 @@ AdmMemoBookDTO GetMemoBook(string id); int GetRemind(string userid); + List<AdmMemoBookDTO> GetRemindsalary(string userid, DateTime datemin, DateTime datemax,string KaoHe); + } } diff --git a/zhengcaioa/IServices/IGroupTopicService.cs b/zhengcaioa/IServices/IGroupTopicService.cs index ec79e9a..75f6258 100644 --- a/zhengcaioa/IServices/IGroupTopicService.cs +++ b/zhengcaioa/IServices/IGroupTopicService.cs @@ -16,5 +16,7 @@ ResultEntity ModifyStatus(string id, string userid); List<GroupTopicDTO> GetList(); + + List<GroupTopicDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax); } } diff --git a/zhengcaioa/IServices/IHrSalaryService.cs b/zhengcaioa/IServices/IHrSalaryService.cs index 87e6e5b..0bc0280 100644 --- a/zhengcaioa/IServices/IHrSalaryService.cs +++ b/zhengcaioa/IServices/IHrSalaryService.cs @@ -18,5 +18,7 @@ ResultEntity ModifyStatus(string id, string userid); List<HrSalaryDTO> GetList(); + + HrSalaryDTO GetListByUser(string Userid,int year,int month); } } diff --git a/zhengcaioa/IServices/ISimService.cs b/zhengcaioa/IServices/ISimService.cs index a5eaea0..6496f5e 100644 --- a/zhengcaioa/IServices/ISimService.cs +++ b/zhengcaioa/IServices/ISimService.cs @@ -23,5 +23,7 @@ SimCost GetSimCost(int id); ResultDataEntity<SimCostView> SearchSimCostByPage(SimCostDTOSearch searchEntity); + + SimCostView GetSimCost(string userid , int bill_year, int bill_month); } } diff --git a/zhengcaioa/IServices/IUserService.cs b/zhengcaioa/IServices/IUserService.cs index f23d6a6..8e7070e 100644 --- a/zhengcaioa/IServices/IUserService.cs +++ b/zhengcaioa/IServices/IUserService.cs @@ -26,5 +26,8 @@ List<PltUserDTO> GetList(string DeptId = null ,string IsYwjl = null); + + List<PltUserDTO> GetListjisuankaoqin(DateTime dateminkaoqin, DateTime datemaxkaoqin); + } } diff --git a/zhengcaioa/Model/AdmAttendanceDtl.cs b/zhengcaioa/Model/AdmAttendanceDtl.cs index 1cb2d45..9804a04 100644 --- a/zhengcaioa/Model/AdmAttendanceDtl.cs +++ b/zhengcaioa/Model/AdmAttendanceDtl.cs @@ -23,8 +23,12 @@ public DateTime Createtime { get; set; } public string Modifier { get; set; } public DateTime Modifytime { get; set; } - public decimal Chidaofenzhong { get; set; } - public decimal Zaotuifenzhong { get; set; } + public decimal Shangwuchidaofenzhong { get; set; } + public decimal Xiawuchidaofenzhong { get; set; } + public decimal Shangwuzaotuifenzhong { get; set; } + public decimal Xiawuzaotuifenzhong { get; set; } public decimal Kuanggongtianshu { get; set; } + + public string Iswork { get; set; } } } diff --git a/zhengcaioa/Model/zhengcaioaContext.cs b/zhengcaioa/Model/zhengcaioaContext.cs index 09d641c..17456be 100644 --- a/zhengcaioa/Model/zhengcaioaContext.cs +++ b/zhengcaioa/Model/zhengcaioaContext.cs @@ -341,10 +341,6 @@ .HasMaxLength(50) .HasColumnName("attendance_id"); - entity.Property(e => e.Chidaofenzhong) - .HasColumnType("decimal(18, 4)") - .HasColumnName("chidaofenzhong"); - entity.Property(e => e.Creater) .IsRequired() .HasMaxLength(50) @@ -355,6 +351,10 @@ .HasColumnType("datetime") .HasColumnName("createtime") .HasDefaultValueSql("(getdate())"); + + entity.Property(e => e.Iswork) + .HasMaxLength(1) + .HasColumnName("iswork"); entity.Property(e => e.Kuanggongtianshu) .HasColumnType("decimal(18, 4)") @@ -393,13 +393,25 @@ .HasColumnType("datetime") .HasDefaultValueSql("(getdate())"); + entity.Property(e => e.Shangwuchidaofenzhong) + .HasColumnType("decimal(18, 4)") + .HasColumnName("shangwuchidaofenzhong"); + + entity.Property(e => e.Shangwuzaotuifenzhong) + .HasColumnType("decimal(18, 4)") + .HasColumnName("shangwuzaotuifenzhong"); + entity.Property(e => e.Xiaojia) .HasColumnType("decimal(18, 4)") .HasColumnName("xiaojia"); - entity.Property(e => e.Zaotuifenzhong) + entity.Property(e => e.Xiawuchidaofenzhong) .HasColumnType("decimal(18, 4)") - .HasColumnName("zaotuifenzhong"); + .HasColumnName("xiawuchidaofenzhong"); + + entity.Property(e => e.Xiawuzaotuifenzhong) + .HasColumnType("decimal(18, 4)") + .HasColumnName("xiawuzaotuifenzhong"); }); modelBuilder.Entity<AdmAttendanceRule>(entity => diff --git a/zhengcaioa/Services/AdmAttendanceDtlService.cs b/zhengcaioa/Services/AdmAttendanceDtlService.cs index 63f1cc4..e9978d4 100644 --- a/zhengcaioa/Services/AdmAttendanceDtlService.cs +++ b/zhengcaioa/Services/AdmAttendanceDtlService.cs @@ -52,9 +52,12 @@ updatepltRole.Createtime = AdmAttendanceDtl.Createtime; updatepltRole.Modifier = AdmAttendanceDtl.Modifier; updatepltRole.Modifytime = AdmAttendanceDtl.Modifytime; - updatepltRole.Chidaofenzhong = AdmAttendanceDtl.Chidaofenzhong; - updatepltRole.Zaotuifenzhong = AdmAttendanceDtl.Zaotuifenzhong; + updatepltRole.Shangwuchidaofenzhong = AdmAttendanceDtl.Shangwuchidaofenzhong; + updatepltRole.Xiawuchidaofenzhong = AdmAttendanceDtl.Xiawuchidaofenzhong; + updatepltRole.Shangwuzaotuifenzhong = AdmAttendanceDtl.Shangwuzaotuifenzhong; + updatepltRole.Xiawuzaotuifenzhong = AdmAttendanceDtl.Xiawuzaotuifenzhong; updatepltRole.Kuanggongtianshu = AdmAttendanceDtl.Kuanggongtianshu; + updatepltRole.Iswork = AdmAttendanceDtl.Iswork; } } @@ -84,7 +87,21 @@ return AdmAttendanceDtlDTO; } - + public AdmAttendanceDtlDTO GetByUserAndDate(string Attendanceid, DateTime SgninDate) + { + var entity = _context.AdmAttendanceDtls.Where(x => x.RecStatus == "A" && x.AttendanceId == Attendanceid && x.SgninDate == SgninDate ).FirstOrDefault(); + AdmAttendanceDtlDTO dto = null; + if (entity != null) + { + dto = _mapper.Map<AdmAttendanceDtlDTO>(entity); + } + + return dto; + } + + + + public ResultEntity ModifyStatus(string id, string userid) { @@ -140,9 +157,12 @@ Modifier = a.Modifier, Modifytime = a.Modifytime, - Chidaofenzhong = a.Chidaofenzhong, - Zaotuifenzhong = a.Zaotuifenzhong, + Shangwuchidaofenzhong = a.Shangwuchidaofenzhong, + Xiawuchidaofenzhong = a.Xiawuchidaofenzhong, + Shangwuzaotuifenzhong = a.Shangwuzaotuifenzhong, + Xiawuzaotuifenzhong = a.Xiawuzaotuifenzhong, Kuanggongtianshu = a.Kuanggongtianshu, + Iswork = a.Iswork }).OrderByDescending(x => x.Createtime).ToList(); return query; diff --git a/zhengcaioa/Services/AdmAttendanceService.cs b/zhengcaioa/Services/AdmAttendanceService.cs index f5e84d7..a663443 100644 --- a/zhengcaioa/Services/AdmAttendanceService.cs +++ b/zhengcaioa/Services/AdmAttendanceService.cs @@ -87,6 +87,19 @@ return AdmAttendanceDTO; } + public AdmAttendanceDTO GetByUserAndDate(string userid, int year, int month) + { + var entity = _context.AdmAttendances.Where(x=>x.RecStatus=="A" && x.Userid == userid && x.Year == year && x.Month == month).FirstOrDefault(); + AdmAttendanceDTO dto = null; + if (entity != null) + { + dto = _mapper.Map<AdmAttendanceDTO>(entity); + } + + return dto; + } + + public ResultDataEntity<AdmAttendanceDTO> SearchByPaging(AdmAttendanceDTOSearch searchEntity) { ResultDataEntity<AdmAttendanceDTO> data = new ResultDataEntity<AdmAttendanceDTO>(); diff --git a/zhengcaioa/Services/AdmBreakPrecedentService.cs b/zhengcaioa/Services/AdmBreakPrecedentService.cs index 5aa9b76..018ed71 100644 --- a/zhengcaioa/Services/AdmBreakPrecedentService.cs +++ b/zhengcaioa/Services/AdmBreakPrecedentService.cs @@ -200,5 +200,18 @@ return result; } + + public List<AdmBreakPrecedentDTO> GetList(string userid, DateTime datemin, DateTime datemax) + { + + var entity = _context.AdmBreakPrecedents.Where(x=>x.RecStatus=="A" && x.UserId == userid && x.BreakTime >= datemin && x.BreakTime < datemax); + + + + var result = _mapper.Map<List<AdmBreakPrecedentDTO>>(entity); + + + return result; + } } } diff --git a/zhengcaioa/Services/AdmPieceCheckService.cs b/zhengcaioa/Services/AdmPieceCheckService.cs index 963a1fc..d6f3fca 100644 --- a/zhengcaioa/Services/AdmPieceCheckService.cs +++ b/zhengcaioa/Services/AdmPieceCheckService.cs @@ -231,5 +231,18 @@ return result; } + + public List<AdmPieceCheckDTO> GetList(string userid, DateTime datemin, DateTime datemax) + { + + var entity = _context.AdmPieceChecks.Where(x=> x.RecStatus == "A" && x.UserId == userid && x.WorkTime >= datemin && x.WorkTime < datemax).ToList(); + + + + var result = _mapper.Map<List<AdmPieceCheckDTO>>(entity); + + + return result; + } } } diff --git a/zhengcaioa/Services/AdmSigninService.cs b/zhengcaioa/Services/AdmSigninService.cs index 6c628cc..c3b7453 100644 --- a/zhengcaioa/Services/AdmSigninService.cs +++ b/zhengcaioa/Services/AdmSigninService.cs @@ -85,6 +85,20 @@ return signin; } + public AdmSignInDTO GetByUserAndDate(string userid, DateTime sgninDate) + { + AdmSignIn entity = _context.AdmSignIns.Where(x=>x.RecStatus == "A" && x.UserId == userid && x.SgninDate == sgninDate).FirstOrDefault(); + AdmSignInDTO signin = null; + if (entity != null) + { + signin = _mapper.Map<AdmSignInDTO>(entity); + } + + return signin; + } + + + public AdmSignInDTO GetTodaySignin(string userId) { ResultEntity resultEntity = new ResultEntity(); @@ -345,7 +359,25 @@ return leaveDTO; } - + + public List<AdmAskLeaveDTO> GetAskLeaveByUserId(string UserId) + { + List<AdmAskLeave> admAskLeaveDTOs = _context.AdmAskLeaves.Where(e => e.RecStatus == "A" && e.ShenpiStatus == "A" && e.Creater == UserId).ToList(); + + List<AdmAskLeaveDTO> leaveDTOs = _mapper.Map< List <AdmAskLeaveDTO> >(admAskLeaveDTOs); + return leaveDTOs; + + } + + public List<AdmAskLeaveOffDTO> GetAskLeaveOffByUserId(string UserId) + { + List<AdmAskLeaveOff> admAskLeaveOffs = _context.AdmAskLeaveOffs.Where(e => e.RecStatus == "A" && e.ShenpiStatus == "A" && e.Creater == UserId).ToList(); + + List<AdmAskLeaveOffDTO> leaveDTOs = _mapper.Map<List<AdmAskLeaveOffDTO>>(admAskLeaveOffs); + return leaveDTOs; + + } + public AdmAskLeaveOffDTO GetAskLeaveOff(string Id) { AdmAskLeaveOff entity = _context.AdmAskLeaveOffs.Where(e => e.RecStatus == "A" && e.Id == Id ).FirstOrDefault(); diff --git a/zhengcaioa/Services/CooperOrderService.cs b/zhengcaioa/Services/CooperOrderService.cs index 883e834..6c62ba6 100644 --- a/zhengcaioa/Services/CooperOrderService.cs +++ b/zhengcaioa/Services/CooperOrderService.cs @@ -690,5 +690,19 @@ } return query; } + + + public List<CooperOrderDTO> GetList(string userid, DateTime datemin, DateTime datemax) + { + + var entity = _context.CooperOrders.Where(x => x.RecStatus == "A" && x.Creater == userid && x.Shoulitime >= datemin && x.Shoulitime < datemax).ToList(); + + + + var result = _mapper.Map<List<CooperOrderDTO>>(entity); + + + return result; + } } } diff --git a/zhengcaioa/Services/CooperVisitService.cs b/zhengcaioa/Services/CooperVisitService.cs index 6ecfc8c..afa7ed9 100644 --- a/zhengcaioa/Services/CooperVisitService.cs +++ b/zhengcaioa/Services/CooperVisitService.cs @@ -248,5 +248,22 @@ return result; } + + public List<CooperVisitDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax) + { + + + // var listCooperVisits = _context.CooperVisits.Where(r => id.Contains(r.Id) && r.RecStatus == "A").Select(x => x.Viscustomer).ToList(); + + var listCooperatecustomCustomers = _context.CooperVisits.Where(r => r.RecStatus == "A"&& r.Creater == userid && r.Vistime >= datemin && r.Vistime < datemax).ToList(); + + var result = _mapper.Map<List<CooperVisitDTO>>(listCooperatecustomCustomers); + + + + + + return result; + } } } diff --git a/zhengcaioa/Services/CooperatecustomCustomerService.cs b/zhengcaioa/Services/CooperatecustomCustomerService.cs index 41f5c41..fa900d8 100644 --- a/zhengcaioa/Services/CooperatecustomCustomerService.cs +++ b/zhengcaioa/Services/CooperatecustomCustomerService.cs @@ -301,5 +301,30 @@ var list = _mapper.Map<List<CooperatecustomCustomerDTO>>(listPosition); return list; } + + public List<CooperatecustomCustomerDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax) + { + + + var listPosition = _context.CooperatecustomCustomers.Where(r => r.RecStatus == "A" && r.Creater == userid && r.Createtime >= datemin && r.Createtime < datemax).ToList(); + + var list = _mapper.Map<List<CooperatecustomCustomerDTO>>(listPosition); + return list; + } + + public List<CooperatecustomCustomerDTO> GetListsalaryqiandan(string userid, DateTime datemin, DateTime datemax) + { + + + var listPosition =( from a in _context.CooperatecustomCustomers.Where(r => r.RecStatus == "A" && r.Creater == userid) + join b in _context.CooperOrders.Where(x => x.RecStatus == "A" && x.Shoulitime >= datemin && x.Shoulitime < datemax) + on a.Id equals b.Khdw + + select a + ).Distinct().ToList(); + + var list = _mapper.Map<List<CooperatecustomCustomerDTO>>(listPosition); + return list; + } } } diff --git a/zhengcaioa/Services/DailyManagementService.cs b/zhengcaioa/Services/DailyManagementService.cs index b8ecd87..06b38cd 100644 --- a/zhengcaioa/Services/DailyManagementService.cs +++ b/zhengcaioa/Services/DailyManagementService.cs @@ -323,6 +323,33 @@ // }).ToList(); return query.Count; } + + /// <summary> + /// 鏌愪竴涓汉鐨勫伐浣滄彁閱� + /// </summary> + /// <param name="userid">鐢ㄦ埛ID</param> + /// <returns></returns> + public List<AdmMemoBookDTO> GetRemindsalary(string userid, DateTime datemin, DateTime datemax, string KaoHe) + { + var query = _context.AdmMemoBooks + .Where(e => e.RecStatus == "A" && e.ToUserId == userid && e.KaoHe == KaoHe && e.Modifytime >= datemin && e.Modifytime < datemax) + .ToList(); + //var dt = (from a in query + // join b in _context.PltUsers.Where(e => e.RecStatus == "A") + // on a.Creater equals b.Id + // select new AdmMemoBookDTO + // { + // Id = a.Id, + // Rtype = a.Rtype, + // Creater = b.UserName, + // Time = a.Time, + // Context = a.Context, + // Createtime = a.Createtime + // }).ToList(); + var list = _mapper.Map<List<AdmMemoBookDTO>>(query); + return list; + } + public ResultEntity SaveMemoBook(AdmMemoBookDTO mbDTO) { ResultEntity resultEntity = new ResultEntity(); diff --git a/zhengcaioa/Services/GroupTopicService.cs b/zhengcaioa/Services/GroupTopicService.cs index 138a5fd..8bec872 100644 --- a/zhengcaioa/Services/GroupTopicService.cs +++ b/zhengcaioa/Services/GroupTopicService.cs @@ -133,5 +133,15 @@ var list = _mapper.Map<List<GroupTopicDTO>>(listRole); return list; } + + public List<GroupTopicDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax) + { + + + var listRole = _context.GroupTopics.Where(r => r.RecStatus == "A" && r.Creater == userid && r.Createtime >= datemin && r.Createtime < datemax ).ToList(); + + var list = _mapper.Map<List<GroupTopicDTO>>(listRole); + return list; + } } } diff --git a/zhengcaioa/Services/HrSalaryService.cs b/zhengcaioa/Services/HrSalaryService.cs index b9bbfec..9db306b 100644 --- a/zhengcaioa/Services/HrSalaryService.cs +++ b/zhengcaioa/Services/HrSalaryService.cs @@ -273,5 +273,25 @@ var list = _mapper.Map<List<HrSalaryDTO>>(listPosition); return list; } + + + /// <summary> + /// 鑾峰彇鎵�鏈夋湁鏁堣鑹� + /// </summary> + /// <returns></returns> + public HrSalaryDTO GetListByUser(string Userid, int year, int month) + { + + + var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A" && r.Userid == Userid && r.Year == year && r.Month == month).FirstOrDefault(); + + HrSalaryDTO hrSalaryDTO = null; + if (listPosition != null) + { + hrSalaryDTO = _mapper.Map<HrSalaryDTO>(listPosition); + } + + return hrSalaryDTO; + } } } diff --git a/zhengcaioa/Services/ProjectService.cs b/zhengcaioa/Services/ProjectService.cs index 765ddb6..4097033 100644 --- a/zhengcaioa/Services/ProjectService.cs +++ b/zhengcaioa/Services/ProjectService.cs @@ -301,8 +301,30 @@ sql.Append(" )"); } - - if (!string.IsNullOrWhiteSpace(searchEntity.fblx)) + + if (!string.IsNullOrWhiteSpace(searchEntity.Reasonname)) + { + sql.Append(" and exists (select b.[ProjectId] from [Projectreason] b where a.[Id]=b.[ProjectId] and b.[reasonname] like '%" + searchEntity.Reasonname + "%') "); + + } + + if (!string.IsNullOrWhiteSpace(searchEntity.ShiFouyReasonname)) + { + if (searchEntity.ShiFouyReasonname == "A") + { + sql.Append(" and exists (select b.[ProjectId] from [Projectreason] b where a.[Id]=b.[ProjectId] ) "); + + } + else + { + sql.Append(" and not exists (select b.[ProjectId] from [Projectreason] b where a.[Id]=b.[ProjectId] ) "); + } + + + } + + + if (!string.IsNullOrWhiteSpace(searchEntity.fblx)) { if (searchEntity.fblx == "A") { @@ -316,16 +338,31 @@ } + DateTime StartTimestarstart = DateTime.Now; + DateTime StartTimestarend = DateTime.Now; if (!string.IsNullOrWhiteSpace(searchEntity.StartTimestar)) { - sql.Append(" and a.start_time >='"+ searchEntity.StartTimestar.Trim().Replace("'","''") + "'"); - + string[] StartTimestars = searchEntity.StartTimestar.Split("|"); + DateTime.TryParse(StartTimestars[0], out StartTimestarstart); + DateTime.TryParse(StartTimestars[1], out StartTimestarend); + //Createtimeend = Createtimeend.AddDays(1); } - if (!string.IsNullOrWhiteSpace(searchEntity.StartTimeend)) + + + if (!string.IsNullOrWhiteSpace(searchEntity.StartTimestar)) { - sql.Append(" and a.start_time <='" + DateTime.Parse(searchEntity.StartTimeend.Trim().Replace("'", "''")).AddDays(1).ToString("yyyy-MM-dd") + "'"); ; + sql.Append(" and a.start_time >='" + StartTimestarstart.ToString("yyyy-MM-dd") + "'"); } + if (!string.IsNullOrWhiteSpace(searchEntity.StartTimestar)) + { + sql.Append(" and a.start_time <='" + StartTimestarend.AddDays(1).ToString("yyyy-MM-dd") + "'"); + + } + + + + if (!string.IsNullOrWhiteSpace(searchEntity.Sheng)) { diff --git a/zhengcaioa/Services/SimService.cs b/zhengcaioa/Services/SimService.cs index 5278ed0..d8cd69a 100644 --- a/zhengcaioa/Services/SimService.cs +++ b/zhengcaioa/Services/SimService.cs @@ -332,6 +332,17 @@ return data; } + + public SimCostView GetSimCost(string userid, int bill_year, int bill_month) + { + + var entity = _context.SimCostView.Where(x => x.user_id == userid && x.bill_year == bill_year && x.bill_month == bill_month).FirstOrDefault(); + + + + return entity; + } + #endregion } } diff --git a/zhengcaioa/Services/UserService.cs b/zhengcaioa/Services/UserService.cs index 501d8b6..b17abda 100644 --- a/zhengcaioa/Services/UserService.cs +++ b/zhengcaioa/Services/UserService.cs @@ -393,6 +393,20 @@ var list = _mapper.Map<List<PltUserDTO>>(listUser.ToList()); return list; } + + /// <summary> + /// 鑾峰彇鎵�鏈夋椿鍔ㄧ姸鎬佺殑浜哄憳 + /// </summary> + /// <returns></returns> + public List<PltUserDTO> GetListjisuankaoqin(DateTime dateminkaoqin, DateTime datemaxkaoqin) + { + + + var listUser = _context.PltUsers.Where(u => u.RecStatus == "A" && ( u.Zhiwustatus == "A" || ( u.Zhiwustatus =="D" && u.Outdate>= dateminkaoqin && u.Outdate < datemaxkaoqin ))); + + var list = _mapper.Map<List<PltUserDTO>>(listUser.ToList()); + return list; + } } } \ No newline at end of file diff --git a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs index 94534d1..e10e018 100644 --- a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs +++ b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs @@ -417,7 +417,7 @@ if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) { //鏄惁鑺傚亣鏃� - if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date)) + if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) { LavehTime += 0; @@ -466,7 +466,7 @@ { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) { if (StratTime <= StratTimeWorkingStart) { @@ -512,7 +512,7 @@ if ((int)EndTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)EndTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) { //鏄惁鑺傚亣鏃� - if (jiejiari.Exists(x => x.ValueStart <= EndTime.Date && x.ValueStart >= EndTime.Date)) + if (jiejiari.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)) { LavehTime += 0; @@ -562,7 +562,7 @@ { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueStart >= EndTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)) { if (EndTime >= EndTimeOffworkEnd) { @@ -611,7 +611,7 @@ if ((int)dateTimenow.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)dateTimenow.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) { //鏄惁鍋囨湡 鍋囨湡涓嶄笂鐝� - if (jiejiari.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueStart >= dateTimenow.Date)) + if (jiejiari.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date)) { LavehTime += 0; } @@ -624,7 +624,7 @@ { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) { LavehTime += shangbanshijian; } @@ -637,8 +637,32 @@ if(ts.Days == 0) - { - LavehTime -= shangbanshijian; + { //鏄惁涓婄彮鏃ユ湡 + if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) + { + //鏄惁鑺傚亣鏃� + if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + { + LavehTime -= 0; + } + else + { + LavehTime -= shangbanshijian; + } + } + else + { + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + { + LavehTime -= shangbanshijian; + } + else + { + LavehTime -= 0; + } + } + } } diff --git a/zhengcaioa/zhengcaioa/Controllers/HR/HrJixiaotichengController.cs b/zhengcaioa/zhengcaioa/Controllers/HR/HrJixiaotichengController.cs index 2aecacb..524f6cc 100644 --- a/zhengcaioa/zhengcaioa/Controllers/HR/HrJixiaotichengController.cs +++ b/zhengcaioa/zhengcaioa/Controllers/HR/HrJixiaotichengController.cs @@ -124,6 +124,19 @@ public IActionResult Save(HrJixiaotichengDTO data) { + ResultEntity resultEntity = new ResultEntity(); + if ( (data.Renwustandard == "01" || data.Renwustandard == "02") && data.Tichengstandard != "01") + { + resultEntity.Result = false; + resultEntity.Message = "浠诲姟鏍囧噯锛堜釜锛夊彧鑳藉搴旀彁鎴愭爣鍑嗭紙瀹氶锛夛紒"; + return new JsonResult(resultEntity); + } + if ((data.Renwustandard == "03" || data.Renwustandard == "04") && data.Tichengstandard != "02") + { + resultEntity.Result = false; + resultEntity.Message = "浠诲姟鏍囧噯锛堝厓锛夊彧鑳藉搴旀彁鎴愭爣鍑嗭紙娴姩锛夛紒"; + return new JsonResult(resultEntity); + } var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; data.RecStatus = "A"; @@ -135,7 +148,7 @@ data.Modifier = curentuser.Id; data.Modifytime = DateTime.Now; - ResultEntity resultEntity = _hrJixiaotichengService.save(data); + resultEntity = _hrJixiaotichengService.save(data); return new JsonResult(resultEntity); } diff --git a/zhengcaioa/zhengcaioa/Controllers/ProjectController.cs b/zhengcaioa/zhengcaioa/Controllers/ProjectController.cs index 76d71e4..a0f7ae5 100644 --- a/zhengcaioa/zhengcaioa/Controllers/ProjectController.cs +++ b/zhengcaioa/zhengcaioa/Controllers/ProjectController.cs @@ -243,6 +243,7 @@ ViewBag.Creater = _userService.GetList().Select(x => new { code = x.Id, label = x.UserName }).ToList(); ViewBag.flbx = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); + ViewBag.ShiFouyReasonname = _liaotianService.GetSYScode("Project", "ShiFouyReasonname").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); return View(); } diff --git a/zhengcaioa/zhengcaioa/Controllers/UserController.cs b/zhengcaioa/zhengcaioa/Controllers/UserController.cs index be27733..74de376 100644 --- a/zhengcaioa/zhengcaioa/Controllers/UserController.cs +++ b/zhengcaioa/zhengcaioa/Controllers/UserController.cs @@ -151,6 +151,10 @@ { PltUserDTO.ShiyongDateName = PltUserDTO.ShiyongDate.Value.ToString("yyyy-MM-dd"); } + if (PltUserDTO.Outdate.HasValue) + { + PltUserDTO.OutdateName = PltUserDTO.Outdate.Value.ToString("yyyy-MM-dd"); + } if (pltJiatingchengyuanDTOs.Count == 0) { diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs index 1389a5e..0865bfa 100644 --- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs +++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs @@ -1,20 +1,62 @@ -锘縰sing Microsoft.Extensions.Hosting; +锘縰sing DTO; +using IServices; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System; +using System.Collections.Generic; using System.IO; +using System.Linq; using System.Threading; using System.Threading.Tasks; +using System.Transactions; +using zhengcaioa.IService; +using zhengcaioa.Models; namespace zhengcaioa.Timer { public class TimedBackgroundService : BackgroundService { private readonly ILogger _logger; - + private readonly IAdmAttendanceRuleService _attendanceRuleService; + private readonly IUserService _userService; + private readonly IAdmSigninService _signinService; + private readonly IAdmAttendanceService _admAttendanceService; + private readonly IAdmAttendanceDtlService _admAttendanceDtlService; + private readonly IHrSalaryService _hrSalaryService; + private readonly IHrJibengongziService _JibengongziService; + private readonly ISimService _simService; + private readonly IDailyManagementService _DailyManageService; + private readonly IAdmBreakPrecedentService _admBreakPrecedentService; + private readonly IHrJixiaotichengService _hrJixiaotichengService; + private readonly IFiPiecerateService _fiPiecerateService; + private readonly IAdmPieceCheckService _admPieceCheckService; + private readonly ICooperOrderService _cooperOrderService; + private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService; + private readonly IGroupTopicService _groupTopicService; + private readonly ICooperVisitService _cooperVisitService; - public TimedBackgroundService(ILogger<TimedBackgroundService> logger) + private readonly decimal jiabangongzibiaozhun = new decimal(21.5); + public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory) { _logger = logger; + _attendanceRuleService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmAttendanceRuleService>(); + _userService = factory.CreateScope().ServiceProvider.GetRequiredService<IUserService>(); + _signinService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmSigninService>(); + _admAttendanceService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmAttendanceService>(); + _admAttendanceDtlService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmAttendanceDtlService>(); + _hrSalaryService = factory.CreateScope().ServiceProvider.GetRequiredService<IHrSalaryService>(); + _JibengongziService = factory.CreateScope().ServiceProvider.GetRequiredService<IHrJibengongziService>(); + _simService = factory.CreateScope().ServiceProvider.GetRequiredService<ISimService>(); + _DailyManageService = factory.CreateScope().ServiceProvider.GetRequiredService<IDailyManagementService>(); + _admBreakPrecedentService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmBreakPrecedentService>(); + _hrJixiaotichengService = factory.CreateScope().ServiceProvider.GetRequiredService<IHrJixiaotichengService>(); + _fiPiecerateService = factory.CreateScope().ServiceProvider.GetRequiredService<IFiPiecerateService>(); + _admPieceCheckService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmPieceCheckService>(); + _cooperOrderService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperOrderService>(); + _cooperatecustomCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperatecustomCustomerService>(); + _groupTopicService = factory.CreateScope().ServiceProvider.GetRequiredService<IGroupTopicService>(); + _cooperVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperVisitService>(); } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { @@ -25,8 +67,43 @@ while (!stoppingToken.IsCancellationRequested) { _logger.LogInformation("MyServiceA 寮�濮嬫墽琛�"); + //姣忓ぉ鐨�0鐐瑰紑濮嬭绠� + if (DateTime.Now.Hour == 0) + //if (true) + { + try + { + DateTime diwutian = this.diwugongzuori(); + //绗簲涓伐浣滄棩缁撴潫鍚庡紑濮嬭绠� + if (DateTime.Now.Date == diwutian.AddDays(1)) + //if (true) + { + try + { + //using (TransactionScope scope = new TransactionScope()) + //{ + this.jisuankaoqin(); + this.jisuangongzi(); + //scope.Complete(); + //} - await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken); + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + + + } + + + await Task.Delay(TimeSpan.FromMinutes(59), stoppingToken); _logger.LogInformation("缁х画鎵ц"); } @@ -38,5 +115,2649 @@ { base.Dispose(); } + //璁$畻绗簲涓伐浣滄棩 + public DateTime diwugongzuori() + { + var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList(""); + AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); + var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList(); + var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList(); + //鑾峰彇鏈湀鐨勭浜斾釜宸ヤ綔鏃ユ棩鏈熴�� + DateTime datemin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); + DateTime datemax = datemin.AddMonths(1); + _logger.LogInformation("datemin" + datemin); + _logger.LogInformation("datemax" + datemax); + DateTime diwutian = DateTime.MinValue; + int i = 0; + while (datemin < datemax) + { + //鏄惁涓婄彮鏃ユ湡 + if ((int)datemin.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)datemin.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) + { + //鏄惁鑺傚亣鏃� + if (jiejiari.Exists(x => x.ValueStart <= datemin && x.ValueEnd >= datemin)) + { + } + else + { + i += 1; + } + } + else + { + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� + if (tiaoxiuri.Exists(x => x.ValueStart <= datemin && x.ValueEnd >= datemin)) + { + i += 1; + } + else + { + } + } + if (i == 5) + { + diwutian = datemin; + break; + } + datemin = datemin.AddDays(1); + } + _logger.LogInformation("diwutian" + diwutian); + _logger.LogInformation("DateTime.Now" + DateTime.Now.Date); + return diwutian; + } + + //璁$畻鑰冨嫟 + public void jisuankaoqin() + { + var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList(""); + AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); + var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList(); + var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList(); + + //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐� + string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.'); + int WorkingStarthour = int.Parse(WorkingStart[0]); + int WorkingStartmin = int.Parse(WorkingStart[1]); + + string[] WorkingEnd = admAttendanceRuleDTO.WorkingEnd.Split('.'); + int WorkingEndhour = int.Parse(WorkingEnd[0]); + int WorkingEndmin = int.Parse(WorkingEnd[1]); + + string[] OffworkStart = admAttendanceRuleDTO.OffworkStart.Split('.'); + int OffworkStarthour = int.Parse(OffworkStart[0]); + int OffworkStartmin = int.Parse(OffworkStart[1]); + + string[] OffworkEnd = admAttendanceRuleDTO.OffworkEnd.Split('.'); + int OffworkEndhour = int.Parse(OffworkEnd[0]); + int OffworkEndmin = int.Parse(OffworkEnd[1]); + + + + + ResultEntity resultEntity = new ResultEntity(); + resultEntity.Result = false; + + //鏌ヨ鎵�鏈夌殑鏈夋晥浜哄憳 + 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(); + 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 datemaxkaoqin = dateminkaoqin.AddMonths(1); + List<AdmAskLeaveDTO> admAskLeaveDTOs = _signinService.GetAskLeaveByUserId(userList[a].Id); + List<AdmAskLeaveOffDTO> admAskLeaveOffDTOs = _signinService.GetAskLeaveOffByUserId(userList[a].Id); + //鎻掑叆鑰冨嫟涓昏〃 + AdmAttendanceDTO admAttendanceDTO = _admAttendanceService.GetByUserAndDate(userList[a].Id, dateminkaoqin.Year, dateminkaoqin.Month); + if (admAttendanceDTO == null) + { + admAttendanceDTO = new AdmAttendanceDTO(); + admAttendanceDTO.Userid = userList[a].Id; + admAttendanceDTO.Year = dateminkaoqin.Year; + admAttendanceDTO.Month = dateminkaoqin.Month; + admAttendanceDTO.Yingchuqin = 0; + admAttendanceDTO.Offdays = 0; + admAttendanceDTO.Shijichuqin = 0; + admAttendanceDTO.Qingjia = 0; + admAttendanceDTO.Jiaban = 0; + admAttendanceDTO.Xiaojia = 0; + admAttendanceDTO.Chidao = 0; + admAttendanceDTO.Zaotui = 0; + admAttendanceDTO.Kuanggong = 0; + admAttendanceDTO.Islock = "D"; + admAttendanceDTO.RecStatus = "A"; + admAttendanceDTO.Creater = "1"; + admAttendanceDTO.Modifier = "1"; + admAttendanceDTO.Createtime = DateTime.Now; + admAttendanceDTO.Modifytime = admAttendanceDTO.Createtime; + + resultEntity = _admAttendanceService.save(admAttendanceDTO); + if(resultEntity.Result == false) + { + throw new Exception("璁$畻澶辫触"); + } + } + int Yingchuqin = 0; + int Offdays = 0; + decimal Shijichuqin = 0; + decimal Qingjia = 0; + decimal Jiaban = 0; + decimal Chidao = 0; + decimal Zaotui = 0; + decimal Kuanggong = 0; + decimal Xiaojia = 0; + + while (dateminkaoqin < datemaxkaoqin) + { + _logger.LogInformation("dateminkaoqin " + dateminkaoqin); + bool iswork = false; + + //鏄惁涓婄彮鏃ユ湡 + if ((int)dateminkaoqin.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)dateminkaoqin.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) + { + //鏄惁鑺傚亣鏃� + if (jiejiari.Exists(x => x.ValueStart <= dateminkaoqin && x.ValueEnd >= dateminkaoqin)) + { + Offdays += 1; + } + else + { + Yingchuqin += 1; + iswork = true; + } + } + else + { + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� + if (tiaoxiuri.Exists(x => x.ValueStart <= dateminkaoqin.Date && x.ValueEnd >= dateminkaoqin.Date)) + { + Yingchuqin += 1; + iswork = true; + } + else + { + Offdays += 1; + } + } + + if(userList[a].Outdate.HasValue && dateminkaoqin >=userList[a].Outdate ) + { + dateminkaoqin = dateminkaoqin.AddDays(1); + continue; + } + + if (userList[a].Indate.HasValue && dateminkaoqin < userList[a].Indate) + { + dateminkaoqin = dateminkaoqin.AddDays(1); + continue; + } + + //鍒ゆ柇鑰冨嫟鐘舵�� + AdmSignInDTO admSignInDTO = _signinService.GetByUserAndDate(userList[a].Id, dateminkaoqin); + if (admSignInDTO == null) + { + 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<AdmAskLeaveOffDTO> admAskLeaveOffDTOMin = admAskLeaveOffDTOs.Where(x => x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x => x.Createtime).ToList(); + + + //璇峰亣寮�濮嬫椂闂翠笂鐝椂闂� + DateTime StratTimeWorkingStart = dateminkaoqin.Date.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin); + + DateTime StratTimeWorkingEnd = dateminkaoqin.Date.AddHours(WorkingEndhour).AddMinutes(WorkingEndmin); + + DateTime StratTimeOffworkStart = dateminkaoqin.Date.AddHours(OffworkStarthour).AddMinutes(OffworkStartmin); + + DateTime StratTimeOffworkEnd = dateminkaoqin.Date.AddHours(OffworkEndhour).AddMinutes(OffworkEndmin); + + + + //涓婄彮鏃堕棿 + + TimeSpan shangwu = StratTimeWorkingEnd.Subtract(StratTimeWorkingStart); + + TimeSpan xiawu = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); + + + + + int shangbanshijian = shangwu.Hours * 60 + shangwu.Minutes + xiawu.Hours * 60 + xiawu.Minutes; + + decimal Shangwuchidaofenzhong = 0; + decimal Xiawuchidaofenzhong = 0; + decimal Shangwuzaotuifenzhong = 0; + decimal Xiawuzaotuifenzhong = 0; + decimal Kuanggongtianshu = 0; + decimal dangtianqingjia = 0; + decimal dangtianxiaojia = 0; + string Iswork = "D"; + if (iswork) + { + Iswork = "A"; + } + //鏄惁鏄伐浣滄棩 + if (iswork) + { + //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁�� + + //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊 + DateTime? starttime = null; + DateTime? endttime = null; + bool kuanggong = false; + List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>(); + if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue) + { + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn; + dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); + } + foreach (var admAskLeave in admAskLeaveDTOMin) + { + if(admAskLeave.StratTime< StratTimeWorkingEnd) + { + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeave.StratTime; + dateBiJiaoDTO.EndTime = admAskLeave.EndTime; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); + } + + } + + foreach (var admAskLeaveOff in admAskLeaveOffDTOMin) + { + if (admAskLeaveOff.StratTime < StratTimeWorkingEnd) + { + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime; + dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); + } + + } + + + dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList(); + if (dateBiJiaoDTOs.Count == 0) + { + Kuanggong += new decimal(0.5); + Kuanggongtianshu += new decimal(0.5); + } + else + { + //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩� + for (int i = 0; i < dateBiJiaoDTOs.Count; i++) + { + if (i == 0) + { + starttime = dateBiJiaoDTOs[i].StartTime; + endttime = dateBiJiaoDTOs[i].EndTime; + } + else + { + if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) + { + kuanggong = true; + break; + } + else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) + { + endttime = dateBiJiaoDTOs[i].EndTime; + } + } + } + if (kuanggong) + { + Kuanggong += new decimal(0.5); + Kuanggongtianshu += new decimal(0.5); + } + else + { + decimal shangwukuanggong = 0; + if(starttime> StratTimeWorkingStart) + { + TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart); + if(chidao.Days>0 || ( chidao.Hours*60+ chidao.Minutes) > admAttendanceRuleDTO.Absenteeism) + { + if (shangwukuanggong == 0) + { + shangwukuanggong += new decimal(0.5); + Kuanggong += new decimal(0.5); + } + + } + else + { + Chidao += 1; + Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes; + } + } + if(shangwukuanggong ==0 && endttime < StratTimeWorkingEnd) + { + TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value); + if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism) + { + if (shangwukuanggong == 0) + { + shangwukuanggong += new decimal(0.5); + Kuanggong += new decimal(0.5); + } + + } + else + { + Zaotui += 1; + Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes; + } + + } + Kuanggongtianshu += shangwukuanggong; + } + } + + + + //鍒ゆ柇涓嬪崍鏄惁杩熷埌,鍒ゆ柇涓嬪崍鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊 + + + starttime = null; + endttime = null; + kuanggong = false; + dateBiJiaoDTOs = new List<DateBiJiaoDTO>(); + if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue) + { + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn; + dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); + } + foreach (var admAskLeave in admAskLeaveDTOMin) + { + if (admAskLeave.EndTime > StratTimeOffworkStart) + { + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeave.StratTime; + dateBiJiaoDTO.EndTime = admAskLeave.EndTime; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); + } + + } + foreach (var admAskLeaveOff in admAskLeaveOffDTOMin) + { + if (admAskLeaveOff.EndTime > StratTimeOffworkStart) + { + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime; + dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); + } + + } + + dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList(); + if (dateBiJiaoDTOs.Count == 0) + { + Kuanggong += new decimal(0.5); + Kuanggongtianshu += new decimal(0.5); + } + else + { + //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩� + for (int i = 0; i < dateBiJiaoDTOs.Count; i++) + { + if (i == 0) + { + starttime = dateBiJiaoDTOs[i].StartTime; + endttime = dateBiJiaoDTOs[i].EndTime; + } + else + { + if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) + { + kuanggong = true; + break; + } + else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) + { + endttime = dateBiJiaoDTOs[i].EndTime; + } + } + } + if (kuanggong) + { + Kuanggong += new decimal(0.5); + Kuanggongtianshu += new decimal(0.5); + } + else + { + decimal xiawuwukuanggong = 0; + if (starttime > StratTimeOffworkStart) + { + TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart); + if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism) + { + if (xiawuwukuanggong == 0) + { + xiawuwukuanggong += new decimal(0.5); + Kuanggong += new decimal(0.5); + } + + } + else + { + Chidao += 1; + Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes; + } + } + if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd) + { + TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value); + if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism) + { + if (xiawuwukuanggong == 0) + { + xiawuwukuanggong += new decimal(0.5); + Kuanggong += new decimal(0.5); + } + + } + else + { + Zaotui += 1; + Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes; + } + + } + Kuanggongtianshu += xiawuwukuanggong; + } + } + + + //璁$畻褰撳ぉ璇峰亣 + List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>(); + + var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4").ToList(); + foreach (var admAskLeave in feichuqinjia) + { + + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeave.StratTime; + dateBiJiaoDTO.EndTime = admAskLeave.EndTime; + qingjias.Add(dateBiJiaoDTO); + + } + + var feichuqinxiaojia = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "2").ToList(); + foreach (var admAskLeaveOff in feichuqinxiaojia) + { + + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime; + dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; + qingjias.Add(dateBiJiaoDTO); + + } + + + foreach(var qingjia in qingjias) + { + if(qingjia.StartTime< StratTimeWorkingStart) + { + qingjia.StartTime = StratTimeWorkingStart; + } + if (qingjia.StartTime > StratTimeWorkingEnd && qingjia.StartTime < StratTimeOffworkStart) + { + qingjia.StartTime = StratTimeOffworkStart; + } + + + if (qingjia.EndTime > StratTimeWorkingEnd && qingjia.EndTime < StratTimeOffworkStart) + { + qingjia.EndTime = StratTimeWorkingEnd; + } + + + if (qingjia.EndTime > StratTimeOffworkEnd) + { + qingjia.EndTime = StratTimeOffworkEnd; + } + TimeSpan qingjiashiijan = qingjia.EndTime.Value.Subtract(qingjia.StartTime.Value); + if(qingjia.StartTime<= StratTimeWorkingEnd && qingjia.EndTime>= StratTimeOffworkStart) + { + TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd); + dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes- wuxiushijian.Hours * 60- wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2); + } + else + { + dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2); + } + + + + } + + Qingjia += dangtianqingjia; + //璁$畻褰撳ぉ鍑哄嫟澶╂暟 + Shijichuqin += (1 - Kuanggongtianshu - dangtianqingjia); + + + //璁$畻閿�鍋囷紙鍑哄樊锛岃ˉ鍗★級 + List<DateBiJiaoDTO> xiaojias = new List<DateBiJiaoDTO>(); + + var xiaojiala = admAskLeaveOffDTOMin.Where(x => x.Lavetype != "2").ToList(); + foreach (var admAskLeaveOff in xiaojiala) + { + + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime; + dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; + xiaojias.Add(dateBiJiaoDTO); + + } + + foreach (var xiaojia in xiaojias) + { + if (xiaojia.StartTime < StratTimeWorkingStart) + { + xiaojia.StartTime = StratTimeWorkingStart; + } + if (xiaojia.StartTime > StratTimeWorkingEnd && xiaojia.StartTime < StratTimeOffworkStart) + { + xiaojia.StartTime = StratTimeOffworkStart; + } + + + if (xiaojia.EndTime > StratTimeWorkingEnd && xiaojia.EndTime < StratTimeOffworkStart) + { + xiaojia.EndTime = StratTimeWorkingEnd; + } + + + if (xiaojia.EndTime > StratTimeOffworkEnd) + { + xiaojia.EndTime = StratTimeOffworkEnd; + } + TimeSpan qingjiashiijan = xiaojia.EndTime.Value.Subtract(xiaojia.StartTime.Value); + if (xiaojia.StartTime <= StratTimeWorkingEnd && xiaojia.EndTime >= StratTimeOffworkStart) + { + TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd); + dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2); + } + else + { + dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2); + } + + + + } + + Xiaojia += dangtianxiaojia; + + + + //璁$畻鍔犵彮鏃堕棿 + if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue) + { + DateTime overdate = admSignInDTO.OvertimeIn.Value; + if (admSignInDTO.OvertimeIn.Value< StratTimeOffworkEnd) + { + overdate = StratTimeOffworkEnd; + } + TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate); + + Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2); + } + } + else + { + //鍔犵彮 + //璁$畻鍔犵彮鏃堕棿 + if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue) + { + TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(admSignInDTO.OvertimeIn.Value); + + Jiaban += Math.Round((decimal)(jiaban.Hours * 60+ jiaban.Minutes) / (decimal)shangbanshijian, 2); + } + } + + + + + + //鎻掑叆鑰冨嫟鏄庣粏琛� + AdmAttendanceDtlDTO admAttendanceDtlDTO = _admAttendanceDtlService.GetByUserAndDate(admAttendanceDTO.Id, dateminkaoqin); + + if (admAttendanceDtlDTO == null) + { + admAttendanceDtlDTO = new AdmAttendanceDtlDTO(); + admAttendanceDtlDTO.AttendanceId = admAttendanceDTO.Id; + admAttendanceDtlDTO.SgninDate = dateminkaoqin; + admAttendanceDtlDTO.MorningIn = admSignInDTO.MorningIn; + admAttendanceDtlDTO.MorningOut = admSignInDTO.MorningOut; + admAttendanceDtlDTO.AfternoonIn = admSignInDTO.AfternoonIn; + admAttendanceDtlDTO.AfternoonOut = admSignInDTO.AfternoonOut; + admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn; + admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; + admAttendanceDtlDTO.Qingjia = dangtianqingjia; + admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; + + + + + + admAttendanceDtlDTO.RecStatus = "A"; + admAttendanceDtlDTO.Creater = "1"; + admAttendanceDtlDTO.Modifier = "1"; + admAttendanceDtlDTO.Createtime = DateTime.Now; + admAttendanceDtlDTO.Modifytime = admAttendanceDTO.Createtime; + + admAttendanceDtlDTO.Shangwuchidaofenzhong = Shangwuchidaofenzhong; + admAttendanceDtlDTO.Xiawuchidaofenzhong = Xiawuchidaofenzhong; + admAttendanceDtlDTO.Shangwuzaotuifenzhong = Shangwuzaotuifenzhong; + admAttendanceDtlDTO.Xiawuzaotuifenzhong = Xiawuzaotuifenzhong; + admAttendanceDtlDTO.Kuanggongtianshu = Kuanggongtianshu; + admAttendanceDtlDTO.Iswork = Iswork; + + + resultEntity = _admAttendanceDtlService.save(admAttendanceDtlDTO); + if (resultEntity.Result == false) + { + throw new Exception("璁$畻澶辫触"); + } + } + else + { + admAttendanceDtlDTO.AttendanceId = admAttendanceDTO.Id; + admAttendanceDtlDTO.SgninDate = dateminkaoqin; + admAttendanceDtlDTO.MorningIn = admSignInDTO.MorningIn; + admAttendanceDtlDTO.MorningOut = admSignInDTO.MorningOut; + admAttendanceDtlDTO.AfternoonIn = admSignInDTO.AfternoonIn; + admAttendanceDtlDTO.AfternoonOut = admSignInDTO.AfternoonOut; + admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn; + admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; + admAttendanceDtlDTO.Qingjia = dangtianqingjia; + admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; + + + admAttendanceDtlDTO.RecStatus = "A"; + admAttendanceDtlDTO.Creater = "1"; + admAttendanceDtlDTO.Modifier = "1"; + admAttendanceDtlDTO.Createtime = DateTime.Now; + admAttendanceDtlDTO.Modifytime = admAttendanceDTO.Createtime; + + admAttendanceDtlDTO.Shangwuchidaofenzhong = Shangwuchidaofenzhong; + admAttendanceDtlDTO.Xiawuchidaofenzhong = Xiawuchidaofenzhong; + admAttendanceDtlDTO.Shangwuzaotuifenzhong = Shangwuzaotuifenzhong; + admAttendanceDtlDTO.Xiawuzaotuifenzhong = Xiawuzaotuifenzhong; + admAttendanceDtlDTO.Kuanggongtianshu = Kuanggongtianshu; + admAttendanceDtlDTO.Iswork = Iswork; + + resultEntity = _admAttendanceDtlService.save(admAttendanceDtlDTO); + if (resultEntity.Result == false) + { + throw new Exception("璁$畻澶辫触"); + } + } + + dateminkaoqin = dateminkaoqin.AddDays(1); + } + + if(Shijichuqin< Yingchuqin) + { + if((Yingchuqin -Shijichuqin)< Jiaban) + { + Jiaban = Jiaban - (Yingchuqin - Shijichuqin); + Shijichuqin = Yingchuqin; + } + else + { + Shijichuqin += Jiaban; + Jiaban = 0; + } + } + + admAttendanceDTO.Yingchuqin = Yingchuqin; + admAttendanceDTO.Offdays = Offdays; + admAttendanceDTO.Shijichuqin = Shijichuqin; + admAttendanceDTO.Jiaban = Jiaban; + + + admAttendanceDTO.Zaotui = Zaotui; + admAttendanceDTO.Kuanggong = Kuanggong; + + + admAttendanceDTO.Qingjia = Qingjia; + admAttendanceDTO.Xiaojia = Xiaojia; + admAttendanceDTO.Chidao = Chidao; + admAttendanceDTO.Islock = "A"; + resultEntity = _admAttendanceService.save(admAttendanceDTO); + if (resultEntity.Result == false) + { + throw new Exception("璁$畻澶辫触"); + } + } + + } + + + + //璁$畻宸ヨ祫 + public void jisuangongzi() + { + //鏌ヨ鎵�鏈夌殑鏈夋晥浜哄憳 + DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 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(); + List<SimBindView> simBindViews = _simService.GetBindSim().Where(x=>x.simstatus == "A").ToList(); + AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); + + //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐� + string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.'); + int WorkingStarthour = int.Parse(WorkingStart[0]); + int WorkingStartmin = int.Parse(WorkingStart[1]); + + string[] WorkingEnd = admAttendanceRuleDTO.WorkingEnd.Split('.'); + int WorkingEndhour = int.Parse(WorkingEnd[0]); + int WorkingEndmin = int.Parse(WorkingEnd[1]); + + string[] OffworkStart = admAttendanceRuleDTO.OffworkStart.Split('.'); + int OffworkStarthour = int.Parse(OffworkStart[0]); + int OffworkStartmin = int.Parse(OffworkStart[1]); + + string[] OffworkEnd = admAttendanceRuleDTO.OffworkEnd.Split('.'); + int OffworkEndhour = int.Parse(OffworkEnd[0]); + int OffworkEndmin = int.Parse(OffworkEnd[1]); + + List<FiPiecerateDTO> fiPiecerateDTOs = _fiPiecerateService.GetList(); + List<HrJixiaotichengDTO> hrJixiaotichengDTOs = _hrJixiaotichengService.GetList().Where(x => x.Effecttime < datemaxkaoqin).ToList(); + + for (int i = 0; i < userList.Count; i++) + { + _logger.LogInformation("寮�濮嬭绠�" + userList[i].UserName + "宸ヨ祫"); + HrSalaryDTO hrSalaryDTO = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.Year, dateminkaoqin.Month); + if (hrSalaryDTO == null) + { + hrSalaryDTO = new HrSalaryDTO(); + hrSalaryDTO.Userid = userList[i].Id; + hrSalaryDTO.Year = dateminkaoqin.Year; + hrSalaryDTO.Month = dateminkaoqin.Month; + } + //鏌ヨ褰撴湀鑰冨嫟 + AdmAttendanceDTO admAttendanceDTO = _admAttendanceService.GetByUserAndDate(userList[i].Id, dateminkaoqin.Year, dateminkaoqin.Month); + if (admAttendanceDTO == null) + { + _logger.LogInformation( userList[i].UserName + ":" + dateminkaoqin.Year+"骞�"+ dateminkaoqin.Month + "鏈堟病鏈夋煡璇㈠埌鑰冨嫟"); + continue; + } + AdmAttendanceDtlDTOSearch searchEntity = new AdmAttendanceDtlDTOSearch(); + searchEntity.AttendanceId = admAttendanceDTO.Id; + List<AdmAttendanceDtlDTO> admAttendanceDtlDTOs = _admAttendanceDtlService.GetList(searchEntity).OrderBy(x => x.SgninDate).ToList(); + + //褰撴湀鍑哄嫟鐜� + decimal chuqinlv = Math.Round(admAttendanceDTO.Shijichuqin / admAttendanceDTO.Yingchuqin,4); + + //鏌ヨ褰撳墠鍛樺伐鑱屽姟鐨勫熀鏈伐璧勯厤缃� + + var hrJibengongzi = hrJibengongziDTOs.Where(x=>x.PostId == userList[i].HrPosition ).OrderByDescending(x=>x.Effecttime).FirstOrDefault(); + + if (hrJibengongzi == null) + { + _logger.LogInformation(userList[i].UserName + ": 鑱屽姟鎵�灞炶祫鏈伐璧勪负绌�"); + continue; + } + hrSalaryDTO.Jibengongzi = Math.Round( hrJibengongzi.Jibengongzi.Value * chuqinlv, 2); + hrSalaryDTO.Baomifei = Math.Round(hrJibengongzi.Baomifei.Value * chuqinlv, 2); + //鏄惁鍦ㄨ瘯鐢ㄦ湡 + decimal geshuiqizheng = 5000; + if (userList[i].geshuiqizheng.HasValue) + { + geshuiqizheng = userList[i].geshuiqizheng.Value; + } + var Shebaodanwei = hrJibengongzi.Shebaodanwei.HasValue ? hrJibengongzi.Shebaodanwei.Value : 0; + var Shebaogeren = hrJibengongzi.Shebaogeren.HasValue ? hrJibengongzi.Shebaogeren.Value : 0; + decimal yingnashuie = 0; + hrSalaryDTO.Queqin = 0; + hrSalaryDTO.Gongzuobutie = 0; + hrSalaryDTO.Jiabangongzi = 0; + decimal shiyongqichuqintianshu = 0; + decimal shiyongqichuqinlv = 0; + + if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin>= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value) + { + if (!userList[i].ShiyongPrice.HasValue) + { + _logger.LogInformation(userList[i].UserName + ": 鍛樺伐澶勪簬璇曠敤鏈燂紝浣嗘槸璇曠敤鏈熷伐璧勪负绌�"); + continue; + } + //璇曠敤鏈熺殑鍑哄嫟鐜� + shiyongqichuqinlv = chuqinlv; + if(userList[i].ShiyongDateEnd.Value< datemaxkaoqin.AddDays(-1)) + { + + foreach (var admAttendanceDtlDTO in admAttendanceDtlDTOs) + { + if (admAttendanceDtlDTO.SgninDate <= userList[i].ShiyongDateEnd.Value && admAttendanceDtlDTO.Iswork == "A") + { + shiyongqichuqintianshu += (1 - admAttendanceDtlDTO.Qingjia - admAttendanceDtlDTO.Kuanggongtianshu); + if (admAttendanceDtlDTO.Kuanggongtianshu > 0) + { + var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2); + if (queqingkoukuan > 0) + { + hrSalaryDTO.Queqin += queqingkoukuan; + } + } + } + } + shiyongqichuqinlv = Math.Round(shiyongqichuqintianshu / admAttendanceDTO.Yingchuqin, 4); + } + else + { + if (admAttendanceDTO.Kuanggong > 0) + { + var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2); + if (queqingkoukuan > 0) + { + hrSalaryDTO.Queqin += queqingkoukuan; + } + } + hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value, 2); + } + + + + + hrSalaryDTO.Gongzuobutie += Math.Round( (userList[i].ShiyongPrice.Value - hrJibengongzi.Baomifei.Value- hrJibengongzi.Jibengongzi.Value ) * shiyongqichuqinlv, 2); + + + + //yingnashuie = userList[i].ShiyongPrice.Value - Shebaogeren - geshuiqizheng; + + + + + } + + + if(true) + { + decimal BasicPrice = 0; + if(!decimal.TryParse(userList[i].BasicPrice,out BasicPrice)) + { + _logger.LogInformation(userList[i].UserName + ": 鍛樺伐娌℃湁缁存姢宸ヨ祫"); + continue; + } + //杞鍚庣殑鍑哄嫟鐜� + decimal zhuanzhengchuqinlv = chuqinlv- shiyongqichuqinlv; + if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && userList[i].ShiyongDateEnd.Value >= dateminkaoqin && userList[i].ShiyongDateEnd.Value <= datemaxkaoqin.AddDays(-1)) + { + //decimal zhuanzhengchuqintianshu = 0; + foreach (var admAttendanceDtlDTO in admAttendanceDtlDTOs) + { + if (admAttendanceDtlDTO.SgninDate > userList[i].ShiyongDateEnd.Value && admAttendanceDtlDTO.Iswork == "A") + { + //zhuanzhengchuqintianshu += (1 - admAttendanceDtlDTO.Qingjia - admAttendanceDtlDTO.Kuanggongtianshu); + if (admAttendanceDtlDTO.Kuanggongtianshu > 0) + { + var queqingkoukuan = Math.Round(BasicPrice / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2); + if (queqingkoukuan > 0) + { + hrSalaryDTO.Queqin += queqingkoukuan; + } + } + + } + + + } + //decimal zhuanzhengchuqintianshu = admAttendanceDTO.Shijichuqin - shiyongqichuqintianshu; + //zhuanzhengchuqinlv = Math.Round(zhuanzhengchuqintianshu / admAttendanceDTO.Yingchuqin, 4); + + if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin >= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value) + { + if(userList[i].ShiyongDateEnd.Value < datemaxkaoqin.AddDays(-1)) + { + hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2); + } + + } + else + { + hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2); + } + } + else + { + //鐭垮伐鎵i挶 + if (admAttendanceDTO.Kuanggong > 0) + { + var queqingkoukuan = Math.Round(BasicPrice / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2); + if (queqingkoukuan > 0) + { + hrSalaryDTO.Queqin += queqingkoukuan; + } + } + hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2); + } + + + + hrSalaryDTO.Gongzuobutie += Math.Round((BasicPrice - hrJibengongzi.Baomifei.Value - hrJibengongzi.Jibengongzi.Value) * zhuanzhengchuqinlv, 2); + + + + //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng; + + + } + + //杩熷埌鏃╅��鎵i挶 + //AdmAttendanceDtlDTOSearch searchEntity = new AdmAttendanceDtlDTOSearch(); + //searchEntity.AttendanceId = admAttendanceDTO.Id; + //List<AdmAttendanceDtlDTO> admAttendanceDtlDTOs = _admAttendanceDtlService.GetList(searchEntity).OrderBy(x => x.SgninDate).ToList(); + if (admAttendanceDtlDTOs.Count > 0) + { + for (int j = 0; j < admAttendanceDtlDTOs.Count; j++) + { + if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong > 0) + { + if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong < 15) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment1; + } + else if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong < 30) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment2; + } + else if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong < 60) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3; + } + else if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong < 120) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3; + } + + } + if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong > 0) + { + if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong < 15) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment1; + } + else if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong < 30) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment2; + } + else if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong < 60) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3; + } + else if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong < 120) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3; + } + + } + if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong > 0) + { + if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong < 15) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment1; + } + else if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong < 30) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment2; + } + else if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong < 60) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3; + } + else if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong < 120) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3; + } + + } + if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong > 0) + { + if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong < 15) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment1; + } + else if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong < 30) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment2; + } + else if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong < 60) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3; + } + else if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong < 120) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3; + } + + } + + } + } + //鐥呭亣浜嬪亣鎵i挶 + List<AdmAskLeaveDTO> admAskLeaveDTOs = _signinService.GetAskLeaveByUserId(userList[i].Id).Where(x => x.Lavetype == "1" && ( (x.StratTime >= dateminkaoqin && x.StratTime < datemaxkaoqin) || (x.EndTime >= dateminkaoqin && x.EndTime < datemaxkaoqin) || (x.EndTime >= datemaxkaoqin && x.StratTime < dateminkaoqin) )).OrderByDescending(x => x.Createtime).ToList(); + + if(admAskLeaveDTOs!=null && admAskLeaveDTOs.Count > 0) + { + foreach(var admAskLeaveDTO in admAskLeaveDTOs) + { + DateTime? AskLeavestart = null; + DateTime? AskLeaveend = null; + if(admAskLeaveDTO.StratTime< dateminkaoqin) + { + AskLeavestart = dateminkaoqin.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin); + } + else + { + AskLeavestart = admAskLeaveDTO.StratTime; + } + + if (admAskLeaveDTO.EndTime >= datemaxkaoqin) + { + AskLeaveend = dateminkaoqin.AddDays(-1).AddHours(OffworkEndhour).AddMinutes(OffworkEndmin); + } + else + { + AskLeaveend = admAskLeaveDTO.EndTime; + } + AdmAskLeaveDTO admAskLeaveDTO1 = jisianChecktime(AskLeavestart.Value, AskLeaveend.Value); + if (admAskLeaveDTO1.LaveDay.Value > 0 || admAskLeaveDTO1.LavehHour > 0) + { + if (admAskLeaveDTO1.LaveDay.Value >= 1) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.PersonalPayment4; + } + else if (admAskLeaveDTO1.LaveDay.Value ==0 && admAskLeaveDTO1.LavehHour >2) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.PersonalPayment3; + } + else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour > 1) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.PersonalPayment2; + } + else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour ==1) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.PersonalPayment1; + } + } + + + } + } + + + + List<AdmAskLeaveOffDTO> admAskLeaveOffDTOs = _signinService.GetAskLeaveOffByUserId(userList[i].Id).Where(x => x.Lavetype == "2" && ((x.StratTime >= dateminkaoqin && x.StratTime < datemaxkaoqin) || (x.EndTime >= dateminkaoqin && x.EndTime < datemaxkaoqin) || (x.EndTime >= datemaxkaoqin && x.StratTime < dateminkaoqin) ) ).OrderByDescending(x => x.Createtime).ToList(); + if (admAskLeaveOffDTOs != null && admAskLeaveOffDTOs.Count > 0) + { + foreach (var admAskLeaveOffDTO in admAskLeaveOffDTOs) + { + DateTime? AskLeavestart = null; + DateTime? AskLeaveend = null; + if (admAskLeaveOffDTO.StratTime < dateminkaoqin) + { + AskLeavestart = dateminkaoqin.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin); + } + else + { + AskLeavestart = admAskLeaveOffDTO.StratTime; + } + + if (admAskLeaveOffDTO.EndTime >= datemaxkaoqin) + { + AskLeaveend = dateminkaoqin.AddDays(-1).AddHours(OffworkEndhour).AddMinutes(OffworkEndmin); + } + else + { + AskLeaveend = admAskLeaveOffDTO.EndTime; + } + AdmAskLeaveDTO admAskLeaveDTO1 = jisianChecktime(AskLeavestart.Value, AskLeaveend.Value); + if (admAskLeaveDTO1.LaveDay.Value > 0 || admAskLeaveDTO1.LavehHour > 0) + { + if (admAskLeaveDTO1.LaveDay.Value >= 1) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.SickPayment4; + } + else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour > 2) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.SickPayment3; + } + else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour > 1) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.SickPayment2; + } + else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour == 1) + { + hrSalaryDTO.Queqin += admAttendanceRuleDTO.SickPayment1; + } + } + + + } + } + + + + + + if(userList[i].IsGmsb != "D" && userList[i].Shebaodate.HasValue && userList[i].Shebaodate.Value < datemaxkaoqin) + { + hrSalaryDTO.Shebao = Shebaodanwei; + hrSalaryDTO.Shebaokou = Shebaodanwei + Shebaogeren; + } + else + { + hrSalaryDTO.Shebao = 0; + hrSalaryDTO.Shebaokou = 0; + } + + + + + + var simBind = simBindViews.Where(x => x.userid == userList[i].Id).FirstOrDefault(); + if (simBind != null) + { + decimal cardpro = 0; + decimal.TryParse(simBind.cardpro, out cardpro); + hrSalaryDTO.Dianhuabutie = cardpro; + } + var SimCost = _simService.GetSimCost(userList[i].Id, dateminkaoqin.Year, dateminkaoqin.Month); + if (SimCost != null) + { + hrSalaryDTO.Dianhuafei = SimCost.bill_amount; + } + + + + hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang; + if ("A".Equals(userList[i].Istravelsubsidy)) + { + hrSalaryDTO.Jiaotngbutie = hrJibengongzi.Jiaotongbutie; + } + //hrSalaryDTO.Jiangjin + //hrSalaryDTO.Bufagongzi + //hrSalaryDTO.Peichang + + + + + hrSalaryDTO.Fakuan = 0; + //宸ヤ綔瀹夋帓缃氭 + List<AdmMemoBookDTO> admMemoBookDTOs = _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2"); + if (admMemoBookDTOs.Count > 0) + { + for(int j=0; j< admMemoBookDTOs.Count; j++) + { + decimal fakuanshumu = 0; + if (decimal.TryParse(admMemoBookDTOs[j].ZhuiZe, out fakuanshumu)) + { + hrSalaryDTO.Fakuan += fakuanshumu; + } + } + } + //杩濈邯澶勭悊缃氭 + List<AdmBreakPrecedentDTO> admBreakPrecedentDTOs = _admBreakPrecedentService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (admBreakPrecedentDTOs.Count > 0) + { + for (int j = 0; j < admBreakPrecedentDTOs.Count; j++) + { + + if (admBreakPrecedentDTOs[j].Chufajine.HasValue) + { + hrSalaryDTO.Fakuan += admBreakPrecedentDTOs[j].Chufajine.Value; ; + } + } + } + + //hrSalaryDTO.Jiucuo + + //璁$畻缁╂晥鎻愭垚 + hrSalaryDTO.Jixiaoticheng = 0; + + var hrJixiaotichengThis = hrJixiaotichengDTOs.Where(x => x.PostId == userList[i].HrPosition).ToList(); + + if( hrJixiaotichengThis!=null&& hrJixiaotichengThis.Count > 0) + { + //var feijijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); + //var jijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); + + #region 涓婇棬鎷滆瀹㈡埛 + + var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (cooperVisitDTOs != null && cooperVisitDTOs.Count > 0) + { + var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && 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 = cooperVisitDTOs.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 = cooperVisitDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 鏂板姞缇ょ粍 + + var groupTopicDTOs = _groupTopicService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (groupTopicDTOs != null && groupTopicDTOs.Count > 0) + { + var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && 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 = groupTopicDTOs.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 = groupTopicDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 瀹㈡埛璧勬枡褰曞叆 + var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (cooperatecustomCustomerDTOs != null && cooperatecustomCustomerDTOs.Count > 0) + { + var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && 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 = cooperatecustomCustomerDTOs.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 = cooperatecustomCustomerDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + } + } + #endregion + + + #region 褰曞叆瀹㈡埛绛惧崟 + + var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0) + { + var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && 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 = cooperatecustomCustomers.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 = cooperatecustomCustomers.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + } + } + #endregion + + + #region 璁′欢鐧昏 + var pieceCheckDTOs = _admPieceCheckService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (pieceCheckDTOs != null && pieceCheckDTOs.Count > 0) + { + foreach (var pieceCheckDTO in pieceCheckDTOs) + { + if (pieceCheckDTO.Gongzi.HasValue) + { + hrSalaryDTO.Jixiaoticheng += pieceCheckDTO.Gongzi.Value; + } + + } + } + #endregion + //鍚堜綔瀹㈡埛璁㈠崟 + List<CooperOrderDTO> cooperOrderDTOs = _cooperOrderService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin); + + #region 鍥句功閿�鍞� + var cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "01").ToList(); + var jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鍥句功閿�鍞�").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count>0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + #endregion + + #region 鏀块噰鍜ㄨ + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "02").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鏀块噰鍜ㄨ").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + + #region 鏍囦功鍒朵綔璁㈠崟 + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "03").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鏍囦功鍒朵綔璁㈠崟").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + + #region 鍩硅 + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "04").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鍩硅").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + + #region 濂楅浼氬憳 + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "05").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "濂楅浼氬憳").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + + #region 涓撳鐢宠 + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "06").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "涓撳鐢宠").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + + #region 灞ョ害绾犵悍 + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "07").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "灞ョ害绾犵悍").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + + #region 椋庨櫓浠g悊 + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "08").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "椋庨櫓浠g悊").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + + #region 杞欢閿�鍞彁鎴� + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "09").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "杞欢閿�鍞彁鎴�").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + + #region 鍏朵粬涓氬姟 + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "10").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鍏朵粬涓氬姟").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + else if (jixiaotichengfangan.Renwustandard == "03") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") + { + var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + } + + #endregion + } + + + + + hrSalaryDTO.Daozhanggongzi = 0; + decimal jibengongzi = hrSalaryDTO.Jibengongzi.HasValue ? hrSalaryDTO.Jibengongzi.Value : 0; + decimal baomifei = hrSalaryDTO.Baomifei.HasValue ? hrSalaryDTO.Baomifei.Value : 0; + decimal gongzuobutie = hrSalaryDTO.Gongzuobutie.HasValue ? hrSalaryDTO.Gongzuobutie.Value : 0; + decimal jiabangongzi = hrSalaryDTO.Jiabangongzi.HasValue ? hrSalaryDTO.Jiabangongzi.Value : 0; + decimal shebao = hrSalaryDTO.Shebao.HasValue ? hrSalaryDTO.Shebao.Value : 0; + decimal dianhuabutie = hrSalaryDTO.Dianhuabutie.HasValue ? hrSalaryDTO.Dianhuabutie.Value : 0; + decimal quanqinjiang = hrSalaryDTO.Quanqinjiang.HasValue ? hrSalaryDTO.Quanqinjiang.Value : 0; + decimal jiaotngbutie = hrSalaryDTO.Jiaotngbutie.HasValue ? hrSalaryDTO.Jiaotngbutie.Value : 0; + decimal jixiaoticheng = hrSalaryDTO.Jixiaoticheng.HasValue ? hrSalaryDTO.Jixiaoticheng.Value : 0; + decimal jiangjin = hrSalaryDTO.Jiangjin.HasValue ? hrSalaryDTO.Jiangjin.Value : 0; + decimal bufagongzi = hrSalaryDTO.Bufagongzi.HasValue ? hrSalaryDTO.Bufagongzi.Value : 0; + decimal shebaokou = hrSalaryDTO.Shebaokou.HasValue ? hrSalaryDTO.Shebaokou.Value : 0; + + decimal dianhuafei = hrSalaryDTO.Dianhuafei.HasValue ? hrSalaryDTO.Dianhuafei.Value : 0; + decimal queqin = hrSalaryDTO.Queqin.HasValue ? hrSalaryDTO.Queqin.Value : 0; + decimal fakuan = hrSalaryDTO.Fakuan.HasValue ? hrSalaryDTO.Fakuan.Value : 0; + decimal peichang = hrSalaryDTO.Peichang.HasValue ? hrSalaryDTO.Peichang.Value : 0; + decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0; + + yingnashuie = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - dianhuafei - queqin - fakuan - peichang + jiucuo - geshuiqizheng; + + + hrSalaryDTO.Geshui = 0; + if (yingnashuie > 0) + { + decimal yingnashuie1 = 0; + decimal yingnashuie2 = 0; + decimal yingnashuie3 = 0; + decimal yingnashuie4 = 0; + decimal yingnashuie5 = 0; + if (yingnashuie > 39250) + { + yingnashuie1 = 4750; + yingnashuie2 = (9250 - 4750); + yingnashuie3 = (25250 - 9250); + yingnashuie4 = (39250 - 25250); + yingnashuie5 = (yingnashuie - 39250); + } + else if (yingnashuie > 25250) + { + yingnashuie1 = 4750; + yingnashuie2 = (9250 - 4750); + yingnashuie3 = (25250 - 9250); + yingnashuie4 = (yingnashuie - 25250); + + } + else if (yingnashuie > 9250) + { + yingnashuie1 = 4750; + yingnashuie2 = (9250 - 4750); + yingnashuie3 = (yingnashuie - 9250); + } + else if (yingnashuie > 4750) + { + yingnashuie1 = 4750; + yingnashuie2 = (yingnashuie - 4750); + } + else + { + yingnashuie1 = yingnashuie; + } + if (yingnashuie1 > 0) + { + var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.05) - 0, 2); + if (yingjiao1 > 0) + { + hrSalaryDTO.Geshui += yingjiao1; + } + + } + if (yingnashuie2 > 0) + { + var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 250, 2); + if (yingjiao2 > 0) + { + hrSalaryDTO.Geshui += yingjiao2; + } + } + if (yingnashuie3 > 0) + { + var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 1250, 2); + if (yingjiao3 > 0) + { + hrSalaryDTO.Geshui += yingjiao3; + } + } + if (yingnashuie4 > 0) + { + var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.3) - 4250, 2); + if (yingjiao4 > 0) + { + hrSalaryDTO.Geshui += yingjiao4; + } + } + if (yingnashuie5 > 0) + { + var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.35) - 6750, 2); + if (yingjiao5 > 0) + { + hrSalaryDTO.Geshui += yingjiao5; + } + } + + + + } + decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0; + + hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui - dianhuafei - queqin - fakuan - peichang + jiucuo; + + + + hrSalaryDTO.Yufagongzi = userList[i].advancewages; + + if (userList[i].advancewages.HasValue) + { + hrSalaryDTO.Yufagongziheji = 0; + HrSalaryDTO hrSalaryDTOlast = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-1).Year, dateminkaoqin.AddMonths(-1).Month); + if(hrSalaryDTOlast!=null && hrSalaryDTOlast.Yufagongziheji.HasValue) + { + hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji; + } + + hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Daozhanggongzi- hrSalaryDTO.Yufagongzi); + } + hrSalaryDTO.RecStatus = "A"; + hrSalaryDTO.Islock = "D"; + hrSalaryDTO.Creater = "1"; + hrSalaryDTO.Createtime = DateTime.Now; + hrSalaryDTO.Modifier = hrSalaryDTO.Creater; + hrSalaryDTO.Modifytime = hrSalaryDTO.Createtime; + _hrSalaryService.save(hrSalaryDTO); + } + } + + + + public AdmAskLeaveDTO jisianChecktime(DateTime StratTime, DateTime EndTime) + { + //string dateDiff = null; + AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); + + var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList(""); + + var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList(); + + var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList(); + + //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐� + string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.'); + int WorkingStarthour = int.Parse(WorkingStart[0]); + int WorkingStartmin = int.Parse(WorkingStart[1]); + + string[] WorkingEnd = admAttendanceRuleDTO.WorkingEnd.Split('.'); + int WorkingEndhour = int.Parse(WorkingEnd[0]); + int WorkingEndmin = int.Parse(WorkingEnd[1]); + + + + string[] OffworkStart = admAttendanceRuleDTO.OffworkStart.Split('.'); + int OffworkStarthour = int.Parse(OffworkStart[0]); + int OffworkStartmin = int.Parse(OffworkStart[1]); + + string[] OffworkEnd = admAttendanceRuleDTO.OffworkEnd.Split('.'); + int OffworkEndhour = int.Parse(OffworkEnd[0]); + int OffworkEndmin = int.Parse(OffworkEnd[1]); + + //璇峰亣寮�濮嬫椂闂翠笂鐝椂闂� + DateTime StratTimeWorkingStart = StratTime.Date.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin); + + DateTime StratTimeWorkingEnd = StratTime.Date.AddHours(WorkingEndhour).AddMinutes(WorkingEndmin); + + DateTime StratTimeOffworkStart = StratTime.Date.AddHours(OffworkStarthour).AddMinutes(OffworkStartmin); + + DateTime StratTimeOffworkEnd = StratTime.Date.AddHours(OffworkEndhour).AddMinutes(OffworkEndmin); + + + //璇峰亣缁撴潫鏃堕棿涓婄彮鏃堕棿 + + DateTime EndTimeWorkingStart = EndTime.Date.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin); + + DateTime EndTimeWorkingEnd = EndTime.Date.AddHours(WorkingEndhour).AddMinutes(WorkingEndmin); + + DateTime EndTimeOffworkStart = EndTime.Date.AddHours(OffworkStarthour).AddMinutes(OffworkStartmin); + + DateTime EndTimeOffworkEnd = EndTime.Date.AddHours(OffworkEndhour).AddMinutes(OffworkEndmin); + + //涓婄彮鏃堕棿 + + TimeSpan shangwu = StratTimeWorkingEnd.Subtract(StratTimeWorkingStart); + + TimeSpan xiawu = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); + + + + + int shangbanshijian = shangwu.Hours * 60 + shangwu.Minutes + xiawu.Hours * 60 + xiawu.Minutes; + + + int LavehTime = 0; + TimeSpan ts = EndTime.Subtract(StratTime); + for (int i = 0; i <= ts.Days; i++) + { + if (i == 0) + { + //鏄惁涓婄彮鏃ユ湡 + if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) + { + //鏄惁鑺傚亣鏃� + if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + { + + LavehTime += 0; + } + else + { + + + + if (StratTime <= StratTimeWorkingStart) + { + LavehTime += shangbanshijian; + } + else if (StratTime <= StratTimeWorkingEnd) + { + TimeSpan shangwu1 = StratTimeWorkingEnd.Subtract(StratTime); + + TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); + + + LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes; + } + else if (StratTime <= StratTimeOffworkStart) + { + + + TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); + + + LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; + } + else if (StratTime <= StratTimeOffworkEnd) + { + TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTime); + + + LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; + + } + + + + } + } + else + { + + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + { + if (StratTime <= StratTimeWorkingStart) + { + LavehTime += shangbanshijian; + } + else if (StratTime <= StratTimeWorkingEnd) + { + TimeSpan shangwu1 = StratTimeWorkingEnd.Subtract(StratTime); + + TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); + + + LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes; + } + else if (StratTime <= StratTimeOffworkStart) + { + + + TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); + + + LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; + } + else if (StratTime <= StratTimeOffworkEnd) + { + TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTime); + + + LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; + + } + } + else + { + LavehTime += 0; + } + } + } + + if (i == ts.Days) + { + //鏄惁涓婄彮鏃ユ湡 + if ((int)EndTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)EndTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) + { + //鏄惁鑺傚亣鏃� + if (jiejiari.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)) + { + + LavehTime += 0; + } + else + { + + + + if (EndTime >= EndTimeOffworkEnd) + { + LavehTime += shangbanshijian; + } + else if (EndTime >= EndTimeOffworkStart) + { + TimeSpan shangwu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart); + + TimeSpan xiawu1 = EndTime.Subtract(EndTimeOffworkStart); + + + LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes; + } + else if (EndTime >= EndTimeWorkingEnd) + { + + + + TimeSpan xiawu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart); + + + LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; + } + else if (EndTime >= EndTimeWorkingStart) + { + TimeSpan xiawu1 = EndTime.Subtract(EndTimeWorkingStart); + + + LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; + + } + + + + } + } + else + { + + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� + if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)) + { + if (EndTime >= EndTimeOffworkEnd) + { + LavehTime += shangbanshijian; + } + else if (EndTime >= EndTimeOffworkStart) + { + TimeSpan shangwu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart); + + TimeSpan xiawu1 = EndTime.Subtract(EndTimeOffworkStart); + + + LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes; + } + else if (EndTime >= EndTimeWorkingEnd) + { + + + + TimeSpan xiawu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart); + + + LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; + } + else if (EndTime >= EndTimeWorkingStart) + { + TimeSpan xiawu1 = EndTime.Subtract(EndTimeWorkingStart); + + + LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; + + } + } + else + { + LavehTime += 0; + } + } + } + + + if (i != 0 && i != ts.Days) + { + DateTime dateTimenow = StratTime.AddDays(i).Date; + //鏄惁涓婄彮鏃ユ湡 + if ((int)dateTimenow.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)dateTimenow.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) + { + //鏄惁鍋囨湡 鍋囨湡涓嶄笂鐝� + if (jiejiari.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date)) + { + LavehTime += 0; + } + else + { + LavehTime += shangbanshijian; + } + } + else + { + + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + { + LavehTime += shangbanshijian; + } + else + { + LavehTime += 0; + } + } + } + + + if (ts.Days == 0) + { //鏄惁涓婄彮鏃ユ湡 + if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) + { + //鏄惁鑺傚亣鏃� + if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + { + LavehTime -= 0; + } + else + { + LavehTime -= shangbanshijian; + } + } + else + { + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + { + LavehTime -= shangbanshijian; + } + else + { + LavehTime -= 0; + } + } + + } + + } + + + + + + + + + AdmAskLeaveDTO admAsk = new AdmAskLeaveDTO(); + admAsk.LaveDay = (int)(LavehTime / shangbanshijian); + int lefthour = (int)(LavehTime % shangbanshijian); + + admAsk.LavehHour = lefthour / 60; + if (lefthour % 60 > 0) + { + admAsk.LavehHour += 1; + } + + return admAsk; + } } } diff --git a/zhengcaioa/zhengcaioa/Views/CooperOrder/Index.cshtml b/zhengcaioa/zhengcaioa/Views/CooperOrder/Index.cshtml index ee7dbd3..8ff8474 100644 --- a/zhengcaioa/zhengcaioa/Views/CooperOrder/Index.cshtml +++ b/zhengcaioa/zhengcaioa/Views/CooperOrder/Index.cshtml @@ -92,7 +92,7 @@ } }, { - label: '瀹屽伐', name: 'WangongStatusName', labtype: 'txt', hidden: wangongbool, width: 60, + label: '瀹屽伐', name: 'WangongStatusName', labtype: 'txt', hidden: true, width: 60, formatter: function (cellvalue, options, rowObject) { if (rowObject.ShouliStatus == '4' || rowObject.ShouliStatus == '5' ) { return "鈭�"; diff --git a/zhengcaioa/zhengcaioa/Views/Liaotian/Edit.cshtml b/zhengcaioa/zhengcaioa/Views/Liaotian/Edit.cshtml index ade81d5..2576ec2 100644 --- a/zhengcaioa/zhengcaioa/Views/Liaotian/Edit.cshtml +++ b/zhengcaioa/zhengcaioa/Views/Liaotian/Edit.cshtml @@ -90,7 +90,7 @@ <a class="collapse-link" onclick="collapseBox(this);"><i class="fa fa-chevron-up" title="鎶樺彔/灞曞紑鏄庣粏"></i></a> </div>*@ </div> - <div id="div_content" class="ibox-content" style="background-color:white;"> + <div id="div_content" class="ibox-content" style="background-color:white;overflow-y:auto;"> <div class="row"> <div class="clearfix layer-area" style="padding-bottom:15px;"> <label grouptype="Vdata" class="text-right col-sm-1 col-md-1 control-label">闂绫诲瀷<i class="red">*</i></label> @@ -148,18 +148,24 @@ </div> <div class="clearfix layer-area" style="padding-bottom:15px;"> <label class="text-right col-sm-1 col-md-1 control-label">闂<i class="red">*</i></label> - <div class="col-sm-11 col-md-11"><input id="Question" class="form-control" label="闂" name="Question" labtype="txt" addvisible="true" editvisible="true" reg="" maxlength="450" ismust="true" type="text" value="@Model.Question"></div> + <div class="col-sm-11 col-md-11"> + @*<input id="Question" class="form-control" label="闂" name="Question" labtype="txt" addvisible="true" editvisible="true" reg="" maxlength="450" ismust="true" type="text" value="@Model.Question">*@ + <textarea class="form-control bt" id="Question" name="Question" title="绛旀" isempty="" maxlength="450" length="long" style="resize:none;overflow-y:hidden; min-height:60px;" onpropertychange="this.style.height=this.scrollHeight + 'px'" oninput="this.style.height=this.scrollHeight + 'px'">@Model.Question</textarea> + + </div> + + </div> <div class="clearfix layer-area" style="padding-bottom:15px;"> <label grouptype="Vdata" class="text-right col-sm-1 col-md-1 control-label">绛旀<i class="red">*</i></label> <div class="col-sm-11 col-md-11"> - <textarea class="form-control bt" id="Anwser" name="Anwser" title="绛旀" isempty="" maxlength="4000" style=" height:200px" length="long">@Model.Anwser</textarea> + <textarea class="form-control bt" id="Anwser" name="Anwser" title="绛旀" isempty="" maxlength="4000" length="long" style="resize:none;overflow-y:hidden; min-height:60px;" onpropertychange="this.style.height=this.scrollHeight + 'px'" oninput="this.style.height=this.scrollHeight + 'px'" >@Model.Anwser</textarea> </div> </div> <div class="clearfix layer-area" style="padding-bottom:15px;"> <label class="text-right col-sm-1 col-md-1 control-label">閫傜敤娉曟潯</label> - <div class="col-sm-11 col-md-11"> <textarea class="form-control bt" id="Shiyongfatiao" name="Shiyongfatiao" title="绛旀" isempty="" maxlength="450" style=" height:60px" length="long">@Model.Shiyongfatiao</textarea> </div> + <div class="col-sm-11 col-md-11"> <textarea class="form-control bt" id="Shiyongfatiao" name="Shiyongfatiao" title="绛旀" isempty="" maxlength="450" length="long" style="resize:none;overflow-y:hidden; min-height:60px;" onpropertychange="this.style.height=this.scrollHeight + 'px'" oninput="this.style.height=this.scrollHeight + 'px'">@Model.Shiyongfatiao</textarea> </div> </div> </div> @@ -188,6 +194,18 @@ </form> <script type="text/javascript"> + var Question = document.getElementById("Question"); + + Question.style.height = Question.scrollHeight + 'px'; + + var Anwser = document.getElementById("Anwser"); + + Anwser.style.height = Anwser.scrollHeight + 'px'; + + var Shiyongfatiao = document.getElementById("Shiyongfatiao"); + + Shiyongfatiao.style.height = Shiyongfatiao.scrollHeight + 'px'; + var hh = document.body.clientHeight - $('.ibox-title').height() - $("#top").height()*2 - 95; $("#div_content").height(hh); @@ -215,7 +233,11 @@ "hideEasing": "linear", "showMethod": "fadeIn", "hideMethod": "fadeOut" - }; + }; + + + + var delPosition = function () { if (id == null || id=='') { toastr.warning("璇峰厛淇濆瓨"); @@ -349,8 +371,11 @@ parent.layer.msg('淇濆瓨澶辫触', { icon: 5 }); } }); - } + } + + + $("#Questiontype").change(function () { @@ -369,8 +394,11 @@ quxian.append(aaa); if (data.length > 0) { for (var i = 0; i < data.length; i++) { - var o = '<option value="' + data[i].CodeSn + '" hassubinfo="true">' + data[i].Comments + '</option>'; + if (i == 0) { + o = '<option value="' + data[i].CodeSn + '" hassubinfo="true" selected="selected" >' + data[i].Comments + '</option>'; + } + quxian.append(o); } } @@ -383,6 +411,12 @@ }); }); + + if (id == null || id == '') { + $('#Questiontype option:eq(1)').attr('selected', 'selected'); + $('#Questiontype').trigger('change'); + } + function _pageAutoClose() { parent.window._reloadPageData(); var index = parent.layer.getFrameIndex(window.name); diff --git a/zhengcaioa/zhengcaioa/Views/Liaotian/Indexcheck.cshtml b/zhengcaioa/zhengcaioa/Views/Liaotian/Indexcheck.cshtml index 5cd072b..c04c8e5 100644 --- a/zhengcaioa/zhengcaioa/Views/Liaotian/Indexcheck.cshtml +++ b/zhengcaioa/zhengcaioa/Views/Liaotian/Indexcheck.cshtml @@ -17,7 +17,7 @@ { label: '闂', name: 'Question', labtype: 'txt', hidden: false, width: 400 , formatter: function (cellvalue, options, rowObject) { - return "<a onclick=\"OpenWindow('" + cellvalue + "','98%','100%', '/Liaotian/Edit?id=" + rowObject.Id + "')\" >" + cellvalue + "</a>"; + return "<a onclick=\"OpenWindow('淇敼闂','98%','100%', '/Liaotian/Edit?id=" + rowObject.Id + "')\" >" + cellvalue + "</a>"; } }, { label: '鍥炵瓟', name: 'Anwser', labtype: 'textarea', hidden: false, width: 800 }, diff --git a/zhengcaioa/zhengcaioa/Views/Project/Select.cshtml b/zhengcaioa/zhengcaioa/Views/Project/Select.cshtml index b5b4d19..3174031 100644 --- a/zhengcaioa/zhengcaioa/Views/Project/Select.cshtml +++ b/zhengcaioa/zhengcaioa/Views/Project/Select.cshtml @@ -8,8 +8,10 @@ var shengDropDown = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.ShengDropDown))'; var Creater = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.Creater))'; var flbx = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.flbx))'; + var ShiFouyReasonname = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.ShiFouyReasonname))'; - loseherght = 60; + + loseherght = 70; dataCol = [ { label: 'id', name: 'Id', labtype: 'txt', hidden: true }, @@ -83,22 +85,26 @@ ]; dataUrl = "/Project/GetLiaotianList"; searchCol = [ - { label: '鍏憡鏃堕棿', name: 'StartTimestar', labtype: 'date', hidden: false }, - { label: '--', name: 'StartTimeend', labtype: 'date', hidden: false, cwidth: '1%', cccwidth: '15%' }, + //{ label: '鍏憡鏃堕棿', name: 'StartTimestar', labtype: 'date', hidden: false }, + //{ label: '--', name: 'StartTimeend', labtype: 'date', hidden: false, cwidth: '1%', cccwidth: '15%' }, + { label: '鍏憡鏃堕棿', name: 'StartTimestar', labtype: 'datearea', hidden: false }, { label: '椤圭洰缂栧彿', name: 'Number', labtype: 'txt', hidden: false }, { label: '椤圭洰鍚嶇О', name: 'Name', labtype: 'txt', hidden: false }, - - { label: '鐪�', name: 'Sheng', labtype: 'combox', hidden: false, data: JSON.parse(shengDropDown), cwidth: '5%', cccwidth: '8%' }, - { label: '甯�', name: 'City', labtype: 'combox', hidden: false, data: JSON.parse('[]'), cwidth: '1%', cccwidth: '8%' }, - { label: '鍖哄幙', name: 'AreaId', labtype: 'combox', hidden: false, data: JSON.parse('[]'), cwidth: '2%', cccwidth: '8%' }, + { label: '璇勫涓撳', name: 'Zhuanjia', labtype: 'txt', hidden: false/*, cwidth: '8.5%', cccwidth: '15%' */}, + { label: '鐪�', name: 'Sheng', labtype: 'combox', hidden: false, data: JSON.parse(shengDropDown), cwidth: '5%', cccwidth: '10%' }, + { label: '甯�', name: 'City', labtype: 'combox', hidden: false, data: JSON.parse('[]'), cwidth: '2%', cccwidth: '10%' }, + { label: '鍖哄幙', name: 'AreaId', labtype: 'combox', hidden: false, data: JSON.parse('[]'), cwidth: '2.5%', cccwidth: '10%' }, { label: '閲囪喘鏂瑰紡', name: 'Cgfs', labtype: 'combox', hidden: false, data: JSON.parse(projectDropDown) }, { label: '涓爣渚涘簲鍟�', name: 'Names', labtype: 'txt', hidden: false }, { label: '鎶曟爣渚涘簲鍟�', name: 'NamesToubiao', labtype: 'txt', hidden: false }, - { label: '璇勫涓撳', name: 'Zhuanjia', labtype: 'txt', hidden: false, cwidth: '8.5%', cccwidth: '15%' }, + { label: '鏄惁鏈夋棤鏁堜緵搴斿晢', name: 'ShiFouyReasonname', labtype: 'combox', hidden: false, data: JSON.parse(ShiFouyReasonname), cwidth: '8%', cccwidth: '12%'}, + { label: '鏃犳晥渚涘簲鍟�', name: 'Reasonname', labtype: 'txt', hidden: false }, - { label: '鏄惁搴熸爣', name: 'fblx', labtype: 'combox', hidden: false, data: JSON.parse(flbx), cwidth: '5%', cccwidth: '8%' }, + + + { label: '鏄惁搴熸爣', name: 'fblx', labtype: 'combox', hidden: false, data: JSON.parse(flbx)/*, cwidth: '5%', cccwidth: '8%' */ }, { label: '褰曞叆鏃堕棿', name: 'Createtime', labtype: 'datearea', hidden: false }, - { label: '褰曞叆浜�', name: 'Creater', labtype: 'combox', hidden: false, data: JSON.parse(Creater), cwidth: '5%', cccwidth: '8%' }, + { label: '褰曞叆浜�', name: 'Creater', labtype: 'combox', hidden: false, data: JSON.parse(Creater)/*, cwidth: '5%', cccwidth: '8%'*/ }, ]; var _pageAdd = function () { diff --git a/zhengcaioa/zhengcaioa/Views/User/Edit.cshtml b/zhengcaioa/zhengcaioa/Views/User/Edit.cshtml index 086ae78..3c754a5 100644 --- a/zhengcaioa/zhengcaioa/Views/User/Edit.cshtml +++ b/zhengcaioa/zhengcaioa/Views/User/Edit.cshtml @@ -140,7 +140,7 @@ <div class="ibox-title"> <h5><i class="fa fa-list"></i> 浜哄憳褰曞叆</h5> </div> - <div id="div_content" class="ibox-content" style="background-color:white;"> + <div id="div_content" class="ibox-content" style="background-color:white;overflow-y:auto;"> <div class="row"> <div class="clearfix layer-area" style="padding-bottom:15px;"> <label class="text-right col-sm-1 col-md-1 control-label">鐢ㄦ埛鍚�<i class="red">*</i></label> @@ -445,27 +445,7 @@ <div class="col-sm-2 col-md-2"> <input id="Shebaodate" class="form-control" label="璁¤柂鏃堕棿" name="Shebaodate" labtype="txt" addvisible="true" editvisible="true" reg="" ismust="true" type="text" value="@Model.ShebaodateName" readonly="readonly"> </div> - <label grouptype="Vdata" class="text-right col-sm-1 col-md-1 control-label">鍦ㄨ亴鐘舵��<i class="red">*</i></label> - <div class="col-sm-2 col-md-2" grouptype="Vdata"> - <select id="Zhiwustatus" class="form-control" name="Zhiwustatus" data-placeholder="閫夋嫨 搴忓垪 ..."> - <option value="" hassubinfo="true">璇烽�夋嫨</option> - @foreach (var item in zhiwustatus) - { - @if (!item.CodeSn.Equals(Model.Zhiwustatus)) - { - <option value="@item.CodeSn" hassubinfo="true"> - @item.Comments - </option> - } - else - { - <option value="@item.CodeSn" hassubinfo="true" selected="selected"> - @item.Comments - </option> - } - } - </select> - </div> + <label class="text-right col-sm-1 col-md-1 control-label">宸ヤ綔鐢佃剳MAC<i class="red">*</i> </label> <div class="col-sm-2 col-md-2"> @@ -592,6 +572,34 @@ <div class="col-sm-2 col-md-2"> <input id="JinjiPhone" class="form-control" label="鑱旂郴鐢佃瘽" name="JinjiPhone" labtype="txt" addvisible="true" maxlength="50" editvisible="true" reg="" ismust="true" type="text" value="@Model.JinjiPhone"> </div> + <label grouptype="Vdata" class="text-right col-sm-1 col-md-1 control-label">鍦ㄨ亴鐘舵��<i class="red">*</i></label> + <div class="col-sm-2 col-md-2" grouptype="Vdata"> + <select id="Zhiwustatus" class="form-control" name="Zhiwustatus" data-placeholder="閫夋嫨 搴忓垪 ..."> + <option value="" hassubinfo="true">璇烽�夋嫨</option> + @foreach (var item in zhiwustatus) + { + @if (!item.CodeSn.Equals(Model.Zhiwustatus)) + { + <option value="@item.CodeSn" hassubinfo="true"> + @item.Comments + </option> + } + else + { + <option value="@item.CodeSn" hassubinfo="true" selected="selected"> + @item.Comments + </option> + } + } + </select> + </div> + + <label class="text-right col-sm-1 col-md-1 control-label">绂昏亴鏃ユ湡 </label> + <div class="col-sm-2 col-md-2"> + <input id="Outdate" class="form-control" label="绂昏亴鏃ユ湡" name="Outdate" labtype="txt" addvisible="true" editvisible="true" reg="" ismust="true" type="text" value='@Model.OutdateName ' readonly="readonly"> + + </div> + </div> <div class="clearfix layer-area" style="padding-bottom:15px;"> @@ -844,6 +852,8 @@ laydate({ elem: "#ShiyongDateEnd", format: 'YYYY-MM-DD', istime: false, event: "focus" }); laydate({ elem: "#Indate", format: 'YYYY-MM-DD', istime: false, event: "focus" }); laydate({ elem: "#Shebaodate", format: 'YYYY-MM-DD', istime: false, event: "focus" }); + laydate({ elem: "#Outdate", format: 'YYYY-MM-DD', istime: false, event: "focus" }); + var delPosition = function () { diff --git a/zhengcaioa/zhengcaioa/zhengcaioa.csproj.user b/zhengcaioa/zhengcaioa/zhengcaioa.csproj.user index 824e794..67fd912 100644 --- a/zhengcaioa/zhengcaioa/zhengcaioa.csproj.user +++ b/zhengcaioa/zhengcaioa/zhengcaioa.csproj.user @@ -9,7 +9,7 @@ <View_SelectedScaffolderCategoryPath>root/Common/MVC/View</View_SelectedScaffolderCategoryPath> <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID> <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath> - <NameOfLastUsedPublishProfile>D:\qianwj\ZCOa\zhengcaioa\zhengcaioa\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile> + <NameOfLastUsedPublishProfile>FolderProfile</NameOfLastUsedPublishProfile> <WebStackScaffolding_ViewDialogWidth>650</WebStackScaffolding_ViewDialogWidth> <WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected> <WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected> diff --git "a/\347\224\250\346\210\267\350\241\250\346\233\264\346\226\260.sql" "b/\347\224\250\346\210\267\350\241\250\346\233\264\346\226\260.sql" index cd2ddcd..c194601 100644 --- "a/\347\224\250\346\210\267\350\241\250\346\233\264\346\226\260.sql" +++ "b/\347\224\250\346\210\267\350\241\250\346\233\264\346\226\260.sql" @@ -81,13 +81,15 @@ --电话卡类型定义 insert into [adm_goods_classify] values('d309d1af-5086-453a-b5a2-58b344dfff97','电话卡','A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'04'); --补贴字典定义 -insert into [sys_code] values('107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','t_sim_bind','cardpro','电话补贴','A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) +insert into [sys_code] values('107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','t_sim_bind','cardpro','电话补贴','A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()); -insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('2632d933-31a3-4692-a954-df11bf223854','50','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','50',1,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) +insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('2632d933-31a3-4692-a954-df11bf223854','50','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','50',1,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()); -insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('306d666f-e93c-415c-a294-414e34cb3311','100','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','100',2,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) +insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('306d666f-e93c-415c-a294-414e34cb3311','100','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','100',2,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()); -insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('61711fb1-0b96-4611-9dc0-6c69dfef656c','9999','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','不限',3,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) +insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('61711fb1-0b96-4611-9dc0-6c69dfef656c','9999','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','不限',3,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()); +go + create view v_sim_bind as SELECT a.Id, a.goods_name AS simcard, a.goods_status AS simstatus, c.user_id AS userid, b.user_name AS username, diff --git "a/\350\200\203\345\213\244\350\256\241\347\256\227\347\232\204\350\241\250.sql" "b/\350\200\203\345\213\244\350\256\241\347\256\227\347\232\204\350\241\250.sql" index 014e69f..06ed231 100644 --- "a/\350\200\203\345\213\244\350\256\241\347\256\227\347\232\204\350\241\250.sql" +++ "b/\350\200\203\345\213\244\350\256\241\347\256\227\347\232\204\350\241\250.sql" @@ -1,6 +1,86 @@ USE [zhengcaioa] GO +/****** Object: Table [dbo].[ADM_Attendance_dtl] Script Date: 2021/6/10 13:04:31 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +IF EXISTS(Select 1 From Sysobjects Where Name='ADM_Attendance_dtl') --查询表名costSeparateConfig是否存在 +drop TABLE [dbo].[ADM_Attendance_dtl] +GO +CREATE TABLE [dbo].[ADM_Attendance_dtl]( + [Id] [nvarchar](50) NOT NULL, + [attendance_id] [nvarchar](50) NOT NULL, + [SgninDate] [datetime] NULL, + [MorningIn] [datetime] NULL, + [MorningOut] [datetime] NULL, + [AfternoonIn] [datetime] NULL, + [AfternoonOut] [datetime] NULL, + [OvertimeIn] [datetime] NULL, + [OvertimeOut] [datetime] NULL, + [qingjia] [decimal](18, 4) NOT NULL DEFAULT ((0)), + [xiaojia] [decimal](18, 4) NOT NULL DEFAULT ((0)), + [rec_status] [nvarchar](1) NOT NULL, + [creater] [nvarchar](50) NOT NULL, + [createtime] [datetime] NOT NULL, + [modifier] [nvarchar](50) NOT NULL, + [modifytime] [datetime] NOT NULL, + [shangwuchidaofenzhong] [decimal](18, 4) NOT NULL DEFAULT ((0)), + [xiawuchidaofenzhong] [decimal](18, 4) NOT NULL DEFAULT ((0)), + [shangwuzaotuifenzhong] [decimal](18, 4) NOT NULL DEFAULT ((0)), + [xiawuzaotuifenzhong] [decimal](18, 4) NOT NULL DEFAULT ((0)), + [kuanggongtianshu] [decimal](18, 4) NOT NULL DEFAULT ((0)), + [iswork] [nvarchar](1) NULL, + CONSTRAINT [PK__ADM_Attendance_dtl] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100) ON [PRIMARY] +) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT (getdate()) FOR [SgninDate] +GO + +ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT ('A') FOR [rec_status] +GO + +ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT ('1') FOR [creater] +GO + +ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT (getdate()) FOR [createtime] +GO + +ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT ('1') FOR [modifier] +GO + +ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT (getdate()) FOR [modifytime] +GO + + + + + + + + + + + + + + + + + + + + + +USE [zhengcaioa] +GO + /****** Object: Table [dbo].[hr_salary] Script Date: 2021/6/10 12:54:34 ******/ SET ANSI_NULLS ON GO @@ -142,62 +222,6 @@ -USE [zhengcaioa] -GO - -/****** Object: Table [dbo].[ADM_Attendance_dtl] Script Date: 2021/6/10 13:04:31 ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO -IF EXISTS(Select 1 From Sysobjects Where Name='ADM_Attendance_dtl') --查询表名costSeparateConfig是否存在 -drop TABLE [dbo].[ADM_Attendance_dtl] -GO -CREATE TABLE [dbo].[ADM_Attendance_dtl]( - [Id] [nvarchar](50) NOT NULL, - [attendance_id] [nvarchar](50) NOT NULL, - [SgninDate] [datetime] NULL, - [MorningIn] [datetime] NULL, - [MorningOut] [datetime] NULL, - [AfternoonIn] [datetime] NULL, - [AfternoonOut] [datetime] NULL, - [OvertimeIn] [datetime] NULL, - [OvertimeOut] [datetime] NULL, - [qingjia] [decimal](18, 4) NOT NULL DEFAULT ((0)), - [xiaojia] [decimal](18, 4) NOT NULL DEFAULT ((0)), - [rec_status] [nvarchar](1) NOT NULL, - [creater] [nvarchar](50) NOT NULL, - [createtime] [datetime] NOT NULL, - [modifier] [nvarchar](50) NOT NULL, - [modifytime] [datetime] NOT NULL, - [chidaofenzhong] [decimal](18, 4) NOT NULL DEFAULT ((0)), - [zaotuifenzhong] [decimal](18, 4) NOT NULL DEFAULT ((0)), - [kuanggongtianshu] [decimal](18, 4) NOT NULL DEFAULT ((0)), - CONSTRAINT [PK__ADM_Attendance_dtl] PRIMARY KEY CLUSTERED -( - [Id] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100) ON [PRIMARY] -) ON [PRIMARY] -GO - -ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT (getdate()) FOR [SgninDate] -GO - -ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT ('A') FOR [rec_status] -GO - -ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT ('1') FOR [creater] -GO - -ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT (getdate()) FOR [createtime] -GO - -ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT ('1') FOR [modifier] -GO - -ALTER TABLE [dbo].[ADM_Attendance_dtl] ADD DEFAULT (getdate()) FOR [modifytime] -GO -- Gitblit v1.9.1