|
|
@@ -2222,14 +2222,25 @@ group by AcademicYearNo,Semester,DeptNo,MajorNo,LessonNo,TeachClassNo,EmpNo,Les |
|
|
|
var strSql = new StringBuilder(); |
|
|
|
var queryParam = queryJson.ToJObject(); |
|
|
|
int month = queryParam["month"] == null ? DateTime.Now.Month : queryParam["month"].ToInt() ; |
|
|
|
if (month < 1 || month > 12) month = DateTime.Now.Month; |
|
|
|
int weeks = queryParam["weeks"] == null ? 4 : queryParam["weeks"].ToInt(); |
|
|
|
if (weeks < 1 || weeks > 4) weeks = 4; |
|
|
|
var deptNo = queryParam["deptNo"] == null? string.Empty : queryParam["deptNo"].ToString(); |
|
|
|
string starttime = DateTime.Now.Year.ToString()+"-" + month + "-1 00:00:00"; |
|
|
|
string endtime = DateTime.Now.Year.ToString() + "-" + month + "-"+ DateTime.DaysInMonth(DateTime.Now.Year, month) +" 23:59:59"; |
|
|
|
strSql.Append("select a.*,b.jobrank as zhiwu,b.F_DepartmentId as dept,b.feestandard,b.Weekcourses,ta.actcourses as monthactcourses,ta.actcourses-(b.Weekcourses*"+ (queryParam["weeks"]==null?4: queryParam["weeks"]) + ") as zhesuan_monthactcourses, "); |
|
|
|
strSql.Append(" case when b.jobrank in('5') then (ta.actcourses-" + (queryParam["weeks"]==null ? 4 : queryParam["weeks"]) + "*b.Weekcourses)*b.feestandard/2 "); |
|
|
|
strSql.Append(" when b.jobrank in('6') then (ta.actcourses-" + (queryParam["weeks"]==null ? 4 : queryParam["weeks"]) + "*b.Weekcourses)*b.feestandard "); |
|
|
|
strSql.Append("when b.jobrank in(1,2,3,4) then (case when ta.actcourses<=(" + (queryParam["weeks"]==null ? 4 : queryParam["weeks"]) + "*b.weekcourses)/2 then ta.actcourses*b.feestandard else " + (queryParam["weeks"] == null ? 4 : queryParam["weeks"]) + "*b.weekcourses*b.feestandard/2 end) end as actfeestandard "); |
|
|
|
strSql.Append("select a.*,b.jobrank as zhiwu,b.F_DepartmentId as dept,b.feestandard,b.Weekcourses,ta.actcourses as monthactcourses,ta.actcourses-(b.Weekcourses*"+ weeks + ") as zhesuan_monthactcourses, "); |
|
|
|
strSql.Append(" case when b.jobrank in('5') then (ta.actcourses-" + weeks + "*b.Weekcourses)*b.feestandard/2 "); |
|
|
|
strSql.Append(" when b.jobrank in('6') then (ta.actcourses-" + weeks + "*b.Weekcourses)*b.feestandard "); |
|
|
|
strSql.Append("when b.jobrank in(1,2,3,4) then (case when ta.actcourses<=(" + weeks + "*b.weekcourses)/2 then ta.actcourses*b.feestandard else " + weeks + "*b.weekcourses*b.feestandard/2 end) end as actfeestandard "); |
|
|
|
strSql.Append("from "); |
|
|
|
strSql.Append("(select count(*) as courses,a.empno,a.empname from ArrangeLessonTerm a where lessondate between '"+ starttime + "' and '" + endtime + "' group by a.empno,a.empname ) a "); |
|
|
|
if(string.IsNullOrWhiteSpace(deptNo)) |
|
|
|
{ |
|
|
|
strSql.Append("(select count(*) as courses,a.empno,a.empname from ArrangeLessonTerm a where lessondate between '" + starttime + "' and '" + endtime + "' group by a.empno,a.empname ) a "); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
strSql.Append("(select count(*) as courses,a.empno,a.empname from ArrangeLessonTerm a where DeptNo='" + deptNo + "' and lessondate between '" + starttime + "' and '" + endtime + "' group by a.empno,a.empname ) a "); |
|
|
|
} |
|
|
|
strSql.Append("left join (select count(*) as actcourses,empno from Teach_attendance where clocktime between '" + starttime + "' and '" + endtime + "' group by empno) ta on ta.empno=a.empno "); |
|
|
|
strSql.Append("left join empinfo b on a.empno=b.empno "); |
|
|
|
strSql.Append("where a.empno is not null "); |
|
|
|