Commit 4b4df225 authored by 廖旭伟's avatar 廖旭伟

若尔盖考勤汇总导表需求

parent b258a9f2
......@@ -32,7 +32,7 @@ public class AttendanceStatEntity extends AttendanceStatVo {
/**
* 员工姓名
*/
@Excel(name = "员工姓名")
@Excel(name = "员工姓名",sort = 1)
private String staffName;
/**
* 所属大厅
......@@ -41,7 +41,7 @@ public class AttendanceStatEntity extends AttendanceStatVo {
/**
* 所属大厅名称
*/
@Excel(name = "所属大厅")
@Excel(name = "所属大厅",sort = 2)
private String salaName;
/**
* 所属部门
......@@ -50,24 +50,25 @@ public class AttendanceStatEntity extends AttendanceStatVo {
/**
* 所属部门名称
*/
@Excel(name = "部门名称")
@Excel(name = "部门名称",sort = 3)
private String deptName;
/**
* 手机号码
*/
private String phoneNumer;
@Excel(name = "出勤天数")
@Excel(name = "应出勤天数(天)",sort = 4)
private Integer workDays;
/**
* 出勤天数
* 实际正常天数
*/
@Excel(name = "实际出勤天数")
@Excel(name = "实际正常天数(天)",sort = 6)
private Integer goTimes;
/**
* 考勤汇总-出勤率(%)
*/
@Excel(name = "考勤汇总-出勤率",percentEnabled = true,suffix="%",scale=2)
@Excel(name = "考勤汇总-出勤率",percentEnabled = true,suffix="%",scale=2,sort = 7)
private BigDecimal attendanceRate;
/**
* 上午缺卡次数
......@@ -172,12 +173,12 @@ public class AttendanceStatEntity extends AttendanceStatVo {
/**
* 考勤汇总-未按规定打卡(含忘记打卡)
*/
@Excel(name = "考勤汇总-未按规定打卡")
@Excel(name = "考勤汇总-未按规定打卡(缺卡次数(次))",sort = 9)
private BigDecimal nonCompliancePunch;
/**
* 考勤汇总-迟到(次)
*/
@Excel(name = "考勤汇总-迟到")
@Excel(name = "考勤汇总-迟到(次)",sort = 10)
private Integer lateTimes;
/**
* 考勤汇总-上网耍手机(次)
......@@ -187,7 +188,7 @@ public class AttendanceStatEntity extends AttendanceStatVo {
/**
* 考勤汇总-溜班(次)
*/
@Excel(name = "考勤汇总-溜班")
@Excel(name = "考勤汇总-溜班(次)",sort = 11)
private Integer overtimeTimes;
/**
* 考勤汇总-空岗
......@@ -251,6 +252,18 @@ public class AttendanceStatEntity extends AttendanceStatVo {
@Excel(name = "陪产假")
private BigDecimal paternityLeaveDays;
/**
* 实际出勤
*/
@Excel(name = "实际出勤(天)",sort = 5)
private Integer goWorks;
/**
* 请假总数(天)
*/
@Excel(name = "请假总数(天)",sort = 12)
private BigDecimal leaveTime;
@Override
public int hashCode() {
......@@ -363,6 +376,10 @@ public class AttendanceStatEntity extends AttendanceStatVo {
this.salaId = null;
this.salaName = "";
this.goWorks = 0;
this.leaveTime = BigDecimal.valueOf(0.0);
}
public static void main(String[] args) {
......
......@@ -23,4 +23,10 @@ public class AttendanceStatVo extends BaseEntityLong {
private String endTime;
private List <Long> idList;
/**
* 正常打卡次数
*/
@Excel(name = "正常次数(次)",sort = 8)
private Integer sumCheck;
}
\ No newline at end of file
......@@ -400,6 +400,9 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
temp.setGoTimes(0); //默认只要有异常考勤,当天就不算全勤
if (item.getMorningTimes() > 0) {
temp.setNonCompliancePunch(new BigDecimal(item.getMorningTimes()));
if(item.getMorningTimes()>=4){
temp.setGoWorks(0); //缺卡4次以上不算全勤
}
}
//this.dao.update(temp);
temp.setStaffName(staffName);
......@@ -526,6 +529,7 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
leaveTime = oneDay;
}
}
temp.setLeaveTime(leaveTime);
//temp.setGoTimes(0); //默认只要有请假,当天就不算全勤
//temp.setMorningTimes(0); //有请假则清空当天缺卡次数
//temp.setLateTimes(0);
......
......@@ -51,16 +51,16 @@
<result property="annualLeaveDays" column="annualLeaveDays" />
<result property="compensatedLeaveDays" column="compensatedLeaveDays" />
<result property="paternityLeaveDays" column="paternityLeaveDays" />
<result property="salaId" column="salaId" />
<result property="salaName" column="salaName" />
<result property="phoneNumer" column="phoneNumer" />
<result property="goTimes" column="goTimes" />
<result property="morningTimes" column="morningTimes" />
<result property="afternoonTimes" column="afternoonTimes" />
<result property="salaId" column="salaId" />
<result property="salaName" column="salaName" />
<result property="goWorks" column="goWorks" />
<result property="leaveTime" column="leaveTime" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
......@@ -202,6 +202,12 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('paternityLeaveDays') or colPickMode == 1 and data.containsKey('paternityLeaveDays')))">
a.paternityLeaveDays,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('salaId') or colPickMode == 1 and data.containsKey('salaId')))">
a.salaId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('salaName') or colPickMode == 1 and data.containsKey('salaName')))">
a.salaName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('phoneNumer') or colPickMode == 1 and data.containsKey('phoneNumer')))">
a.phoneNumer,
</if>
......@@ -214,29 +220,29 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('afternoonTimes') or colPickMode == 1 and data.containsKey('afternoonTimes')))">
a.afternoonTimes,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('salaId') or colPickMode == 1 and data.containsKey('salaId')))">
a.salaId,
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('goWorks') or colPickMode == 1 and data.containsKey('goWorks')))">
a.goWorks,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('salaName') or colPickMode == 1 and data.containsKey('salaName')))">
a.salaName,
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('leaveTime') or colPickMode == 1 and data.containsKey('leaveTime')))">
a.leaveTime,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="AttendanceStatEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_attendance_stat
(windowCategory,staffId,staffName,deptId,deptName,backToUnit,onDutyLeave,outOfOffice,shiftCompensation,physicalExamination,quarantine,businessTrip,publicHoliday,sickLeave,funeralLeave,marriageLeave,childRearingLeave,maternityLeave,transferBack,homeLeave,personalLeave,absenteeismDays,otherDays,attendanceRate,nonCompliancePunch,lateTimes,surfingMobileTimes,overtimeTimes,vacancy,nonStandardDressTimes,unexcusedMeetingAbsence,earlyLeaveMeeting,year,month,day,remark,createUserId,createTime,updateUserId,updateTime,breastfeedingLeaveDays,menstrualLeaveDays,annualLeaveDays,compensatedLeaveDays,paternityLeaveDays,phoneNumer,goTimes,morningTimes,afternoonTimes,salaId,salaName)
(windowCategory,staffId,staffName,deptId,deptName,backToUnit,onDutyLeave,outOfOffice,shiftCompensation,physicalExamination,quarantine,businessTrip,publicHoliday,sickLeave,funeralLeave,marriageLeave,childRearingLeave,maternityLeave,transferBack,homeLeave,personalLeave,absenteeismDays,otherDays,attendanceRate,nonCompliancePunch,lateTimes,surfingMobileTimes,overtimeTimes,vacancy,nonStandardDressTimes,unexcusedMeetingAbsence,earlyLeaveMeeting,year,month,day,remark,createUserId,createTime,updateUserId,updateTime,breastfeedingLeaveDays,menstrualLeaveDays,annualLeaveDays,compensatedLeaveDays,paternityLeaveDays,salaId,salaName,phoneNumer,goTimes,morningTimes,afternoonTimes,goWorks,leaveTime)
VALUES
(#{windowCategory},#{staffId},#{staffName},#{deptId},#{deptName},#{backToUnit},#{onDutyLeave},#{outOfOffice},#{shiftCompensation},#{physicalExamination},#{quarantine},#{businessTrip},#{publicHoliday},#{sickLeave},#{funeralLeave},#{marriageLeave},#{childRearingLeave},#{maternityLeave},#{transferBack},#{homeLeave},#{personalLeave},#{absenteeismDays},#{otherDays},#{attendanceRate},#{nonCompliancePunch},#{lateTimes},#{surfingMobileTimes},#{overtimeTimes},#{vacancy},#{nonStandardDressTimes},#{unexcusedMeetingAbsence},#{earlyLeaveMeeting},#{year},#{month},#{day},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{breastfeedingLeaveDays},#{menstrualLeaveDays},#{annualLeaveDays},#{compensatedLeaveDays},#{paternityLeaveDays},#{phoneNumer},#{goTimes},#{morningTimes},#{afternoonTimes},#{salaId},#{salaName})
(#{windowCategory},#{staffId},#{staffName},#{deptId},#{deptName},#{backToUnit},#{onDutyLeave},#{outOfOffice},#{shiftCompensation},#{physicalExamination},#{quarantine},#{businessTrip},#{publicHoliday},#{sickLeave},#{funeralLeave},#{marriageLeave},#{childRearingLeave},#{maternityLeave},#{transferBack},#{homeLeave},#{personalLeave},#{absenteeismDays},#{otherDays},#{attendanceRate},#{nonCompliancePunch},#{lateTimes},#{surfingMobileTimes},#{overtimeTimes},#{vacancy},#{nonStandardDressTimes},#{unexcusedMeetingAbsence},#{earlyLeaveMeeting},#{year},#{month},#{day},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{breastfeedingLeaveDays},#{menstrualLeaveDays},#{annualLeaveDays},#{compensatedLeaveDays},#{paternityLeaveDays},#{salaId},#{salaName},#{phoneNumer},#{goTimes},#{morningTimes},#{afternoonTimes},#{goWorks},#{leaveTime})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_attendance_stat
(windowCategory,staffId,staffName,deptId,deptName,backToUnit,onDutyLeave,outOfOffice,shiftCompensation,physicalExamination,quarantine,businessTrip,publicHoliday,sickLeave,funeralLeave,marriageLeave,childRearingLeave,maternityLeave,transferBack,homeLeave,personalLeave,absenteeismDays,otherDays,attendanceRate,nonCompliancePunch,lateTimes,surfingMobileTimes,overtimeTimes,vacancy,nonStandardDressTimes,unexcusedMeetingAbsence,earlyLeaveMeeting,year,month,day,remark,createUserId,createTime,updateUserId,updateTime,breastfeedingLeaveDays,menstrualLeaveDays,annualLeaveDays,compensatedLeaveDays,paternityLeaveDays,phoneNumer,goTimes,morningTimes,afternoonTimes,salaId,salaName)
(windowCategory,staffId,staffName,deptId,deptName,backToUnit,onDutyLeave,outOfOffice,shiftCompensation,physicalExamination,quarantine,businessTrip,publicHoliday,sickLeave,funeralLeave,marriageLeave,childRearingLeave,maternityLeave,transferBack,homeLeave,personalLeave,absenteeismDays,otherDays,attendanceRate,nonCompliancePunch,lateTimes,surfingMobileTimes,overtimeTimes,vacancy,nonStandardDressTimes,unexcusedMeetingAbsence,earlyLeaveMeeting,year,month,day,remark,createUserId,createTime,updateUserId,updateTime,breastfeedingLeaveDays,menstrualLeaveDays,annualLeaveDays,compensatedLeaveDays,paternityLeaveDays,salaId,salaName,phoneNumer,goTimes,morningTimes,afternoonTimes,goWorks,leaveTime)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.windowCategory},#{item.staffId},#{item.staffName},#{item.deptId},#{item.deptName},#{item.backToUnit},#{item.onDutyLeave},#{item.outOfOffice},#{item.shiftCompensation},#{item.physicalExamination},#{item.quarantine},#{item.businessTrip},#{item.publicHoliday},#{item.sickLeave},#{item.funeralLeave},#{item.marriageLeave},#{item.childRearingLeave},#{item.maternityLeave},#{item.transferBack},#{item.homeLeave},#{item.personalLeave},#{item.absenteeismDays},#{item.otherDays},#{item.attendanceRate},#{item.nonCompliancePunch},#{item.lateTimes},#{item.surfingMobileTimes},#{item.overtimeTimes},#{item.vacancy},#{item.nonStandardDressTimes},#{item.unexcusedMeetingAbsence},#{item.earlyLeaveMeeting},#{item.year},#{item.month},#{item.day},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.breastfeedingLeaveDays},#{item.menstrualLeaveDays},#{item.annualLeaveDays},#{item.compensatedLeaveDays},#{item.paternityLeaveDays},#{item.phoneNumer},#{item.goTimes},#{item.morningTimes},#{item.afternoonTimes},#{item.salaId},#{item.salaName})
(#{item.windowCategory},#{item.staffId},#{item.staffName},#{item.deptId},#{item.deptName},#{item.backToUnit},#{item.onDutyLeave},#{item.outOfOffice},#{item.shiftCompensation},#{item.physicalExamination},#{item.quarantine},#{item.businessTrip},#{item.publicHoliday},#{item.sickLeave},#{item.funeralLeave},#{item.marriageLeave},#{item.childRearingLeave},#{item.maternityLeave},#{item.transferBack},#{item.homeLeave},#{item.personalLeave},#{item.absenteeismDays},#{item.otherDays},#{item.attendanceRate},#{item.nonCompliancePunch},#{item.lateTimes},#{item.surfingMobileTimes},#{item.overtimeTimes},#{item.vacancy},#{item.nonStandardDressTimes},#{item.unexcusedMeetingAbsence},#{item.earlyLeaveMeeting},#{item.year},#{item.month},#{item.day},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.breastfeedingLeaveDays},#{item.menstrualLeaveDays},#{item.annualLeaveDays},#{item.compensatedLeaveDays},#{item.paternityLeaveDays},#{item.salaId},#{item.salaName},#{item.phoneNumer},#{item.goTimes},#{item.morningTimes},#{item.afternoonTimes},#{item.goWorks},#{item.leaveTime})
</foreach>
</insert>
......@@ -498,6 +504,15 @@
<if test="(colPickMode==0 and data.containsKey('paternityLeaveDaysIncrement')) or (colPickMode==1 and !data.containsKey('paternityLeaveDaysIncrement'))">
a.paternityLeaveDays=ifnull(a.paternityLeaveDays,0) + #{data.paternityLeaveDaysIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('salaId')) or (colPickMode==1 and !data.containsKey('salaId'))">
a.salaId=#{data.salaId},
</if>
<if test="(colPickMode==0 and data.containsKey('salaIdIncrement')) or (colPickMode==1 and !data.containsKey('salaIdIncrement'))">
a.salaId=ifnull(a.salaId,0) + #{data.salaIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('salaName')) or (colPickMode==1 and !data.containsKey('salaName'))">
a.salaName=#{data.salaName},
</if>
<if test="(colPickMode==0 and data.containsKey('phoneNumer')) or (colPickMode==1 and !data.containsKey('phoneNumer'))">
a.phoneNumer=#{data.phoneNumer},
</if>
......@@ -519,14 +534,17 @@
<if test="(colPickMode==0 and data.containsKey('afternoonTimesIncrement')) or (colPickMode==1 and !data.containsKey('afternoonTimesIncrement'))">
a.afternoonTimes=ifnull(a.afternoonTimes,0) + #{data.afternoonTimesIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('salaId')) or (colPickMode==1 and !data.containsKey('salaId'))">
a.salaId=#{data.salaId},
<if test="(colPickMode==0 and data.containsKey('goWorks')) or (colPickMode==1 and !data.containsKey('goWorks'))">
a.goWorks=#{data.goWorks},
</if>
<if test="(colPickMode==0 and data.containsKey('salaIdIncrement')) or (colPickMode==1 and !data.containsKey('salaIdIncrement'))">
a.salaId=ifnull(a.salaId,0) + #{data.salaIdIncrement},
<if test="(colPickMode==0 and data.containsKey('goWorksIncrement')) or (colPickMode==1 and !data.containsKey('goWorksIncrement'))">
a.goWorks=ifnull(a.goWorks,0) + #{data.goWorksIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('salaName')) or (colPickMode==1 and !data.containsKey('salaName'))">
a.salaName=#{data.salaName},
<if test="(colPickMode==0 and data.containsKey('leaveTime')) or (colPickMode==1 and !data.containsKey('leaveTime'))">
a.leaveTime=#{data.leaveTime},
</if>
<if test="(colPickMode==0 and data.containsKey('leaveTimeIncrement')) or (colPickMode==1 and !data.containsKey('leaveTimeIncrement'))">
a.leaveTime=ifnull(a.leaveTime,0) + #{data.leaveTimeIncrement},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
......@@ -1050,6 +1068,25 @@
</choose>
</foreach>
</trim>
<trim prefix="salaId=(case" suffix="ELSE salaId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('salaId')) or (colPickMode==1 and !item.containsKey('salaId'))">
when a.id=#{item.id} then #{item.salaId}
</when>
<when test="(colPickMode==0 and item.containsKey('salaIdIncrement')) or (colPickMode==1 and !item.containsKey('salaIdIncrement'))">
when a.id=#{item.id} then ifnull(a.salaId,0) + #{item.salaIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="salaName=(case" suffix="ELSE salaName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('salaName')) or (colPickMode==1 and !item.containsKey('salaName'))">
when a.id=#{item.id} then #{item.salaName}
</if>
</foreach>
</trim>
<trim prefix="phoneNumer=(case" suffix="ELSE phoneNumer end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('phoneNumer')) or (colPickMode==1 and !item.containsKey('phoneNumer'))">
......@@ -1093,23 +1130,28 @@
</choose>
</foreach>
</trim>
<trim prefix="salaId=(case" suffix="ELSE salaId end),">
<trim prefix="goWorks=(case" suffix="ELSE goWorks end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('salaId')) or (colPickMode==1 and !item.containsKey('salaId'))">
when a.id=#{item.id} then #{item.salaId}
<when test="(colPickMode==0 and item.containsKey('goWorks')) or (colPickMode==1 and !item.containsKey('goWorks'))">
when a.id=#{item.id} then #{item.goWorks}
</when>
<when test="(colPickMode==0 and item.containsKey('salaIdIncrement')) or (colPickMode==1 and !item.containsKey('salaIdIncrement'))">
when a.id=#{item.id} then ifnull(a.salaId,0) + #{item.salaIdIncrement}
<when test="(colPickMode==0 and item.containsKey('goWorksIncrement')) or (colPickMode==1 and !item.containsKey('goWorksIncrement'))">
when a.id=#{item.id} then ifnull(a.goWorks,0) + #{item.goWorksIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="salaName=(case" suffix="ELSE salaName end),">
<trim prefix="leaveTime=(case" suffix="ELSE leaveTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('salaName')) or (colPickMode==1 and !item.containsKey('salaName'))">
when a.id=#{item.id} then #{item.salaName}
</if>
<choose>
<when test="(colPickMode==0 and item.containsKey('leaveTime')) or (colPickMode==1 and !item.containsKey('leaveTime'))">
when a.id=#{item.id} then #{item.leaveTime}
</when>
<when test="(colPickMode==0 and item.containsKey('leaveTimeIncrement')) or (colPickMode==1 and !item.containsKey('leaveTimeIncrement'))">
when a.id=#{item.id} then ifnull(a.leaveTime,0) + #{item.leaveTimeIncrement}
</when>
</choose>
</foreach>
</trim>
</trim>
......@@ -1223,6 +1265,10 @@
<!-- 条件映射-代参数 -->
<sql id="_condition_param_">
<bind name="conditionParamRef" value="${_conditionParam_}"/>
<if test="permissionSql != null and permissionSql != ''">
${permissionSql}
</if>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null">
${_conditionType_} a.id=#{${_conditionParam_}.id}
......@@ -2422,6 +2468,54 @@
${_conditionType_} a.paternityLeaveDays <![CDATA[ <= ]]> #{${_conditionParam_}.paternityLeaveDaysEnd}
</if>
<if test="conditionParamRef.containsKey('salaId')">
<if test="conditionParamRef.salaId != null ">
${_conditionType_} a.salaId = #{${_conditionParam_}.salaId}
</if>
<if test="conditionParamRef.salaId == null">
${_conditionType_} a.salaId is null
</if>
</if>
<if test="conditionParamRef.containsKey('salaIdList') and conditionParamRef.salaIdList.size() > 0">
${_conditionType_} a.salaId in
<foreach collection="conditionParamRef.salaIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('salaIdNotList') and conditionParamRef.salaIdNotList.size() > 0">
${_conditionType_} a.salaId not in
<foreach collection="conditionParamRef.salaIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('salaIdStart') and conditionParamRef.salaIdStart != null">
${_conditionType_} a.salaId <![CDATA[ >= ]]> #{${_conditionParam_}.salaIdStart}
</if>
<if test="conditionParamRef.containsKey('salaIdEnd') and conditionParamRef.salaIdEnd != null">
${_conditionType_} a.salaId <![CDATA[ <= ]]> #{${_conditionParam_}.salaIdEnd}
</if>
<if test="conditionParamRef.containsKey('salaName')">
<if test="conditionParamRef.salaName != null and conditionParamRef.salaName != ''">
${_conditionType_} a.salaName like #{${_conditionParam_}.salaName}
</if>
<if test="conditionParamRef.salaName == null">
${_conditionType_} a.salaName is null
</if>
</if>
<if test="conditionParamRef.containsKey('salaNameList') and conditionParamRef.salaNameList.size() > 0">
${_conditionType_} a.salaName in
<foreach collection="conditionParamRef.salaNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('salaNameNotList') and conditionParamRef.salaNameNotList.size() > 0">
${_conditionType_} a.salaName not in
<foreach collection="conditionParamRef.salaNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('phoneNumer')">
<if test="conditionParamRef.phoneNumer != null and conditionParamRef.phoneNumer != ''">
......@@ -2524,54 +2618,60 @@
${_conditionType_} a.afternoonTimes <![CDATA[ <= ]]> #{${_conditionParam_}.afternoonTimesEnd}
</if>
<if test="conditionParamRef.containsKey('salaId')">
<if test="conditionParamRef.salaId != null ">
${_conditionType_} a.salaId = #{${_conditionParam_}.salaId}
<if test="conditionParamRef.containsKey('goWorks')">
<if test="conditionParamRef.goWorks != null ">
${_conditionType_} a.goWorks = #{${_conditionParam_}.goWorks}
</if>
<if test="conditionParamRef.salaId == null">
${_conditionType_} a.salaId is null
<if test="conditionParamRef.goWorks == null">
${_conditionType_} a.goWorks is null
</if>
</if>
<if test="conditionParamRef.containsKey('salaIdList') and conditionParamRef.salaIdList.size() > 0">
${_conditionType_} a.salaId in
<foreach collection="conditionParamRef.salaIdList" open="(" close=")" index="index" item="item" separator=",">
<if test="conditionParamRef.containsKey('goWorksList') and conditionParamRef.goWorksList.size() > 0">
${_conditionType_} a.goWorks in
<foreach collection="conditionParamRef.goWorksList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('salaIdNotList') and conditionParamRef.salaIdNotList.size() > 0">
${_conditionType_} a.salaId not in
<foreach collection="conditionParamRef.salaIdNotList" open="(" close=")" index="index" item="item" separator=",">
<if test="conditionParamRef.containsKey('goWorksNotList') and conditionParamRef.goWorksNotList.size() > 0">
${_conditionType_} a.goWorks not in
<foreach collection="conditionParamRef.goWorksNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('salaIdStart') and conditionParamRef.salaIdStart != null">
${_conditionType_} a.salaId <![CDATA[ >= ]]> #{${_conditionParam_}.salaIdStart}
<if test="conditionParamRef.containsKey('goWorksStart') and conditionParamRef.goWorksStart != null">
${_conditionType_} a.goWorks <![CDATA[ >= ]]> #{${_conditionParam_}.goWorksStart}
</if>
<if test="conditionParamRef.containsKey('salaIdEnd') and conditionParamRef.salaIdEnd != null">
${_conditionType_} a.salaId <![CDATA[ <= ]]> #{${_conditionParam_}.salaIdEnd}
<if test="conditionParamRef.containsKey('goWorksEnd') and conditionParamRef.goWorksEnd != null">
${_conditionType_} a.goWorks <![CDATA[ <= ]]> #{${_conditionParam_}.goWorksEnd}
</if>
<if test="conditionParamRef.containsKey('salaName')">
<if test="conditionParamRef.salaName != null and conditionParamRef.salaName != ''">
${_conditionType_} a.salaName like #{${_conditionParam_}.salaName}
<if test="conditionParamRef.containsKey('leaveTime')">
<if test="conditionParamRef.leaveTime != null ">
${_conditionType_} a.leaveTime = #{${_conditionParam_}.leaveTime}
</if>
<if test="conditionParamRef.salaName == null">
${_conditionType_} a.salaName is null
<if test="conditionParamRef.leaveTime == null">
${_conditionType_} a.leaveTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('salaNameList') and conditionParamRef.salaNameList.size() > 0">
${_conditionType_} a.salaName in
<foreach collection="conditionParamRef.salaNameList" open="(" close=")" index="index" item="item" separator=",">
<if test="conditionParamRef.containsKey('leaveTimeList') and conditionParamRef.leaveTimeList.size() > 0">
${_conditionType_} a.leaveTime in
<foreach collection="conditionParamRef.leaveTimeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('salaNameNotList') and conditionParamRef.salaNameNotList.size() > 0">
${_conditionType_} a.salaName not in
<foreach collection="conditionParamRef.salaNameNotList" open="(" close=")" index="index" item="item" separator=",">
<if test="conditionParamRef.containsKey('leaveTimeNotList') and conditionParamRef.leaveTimeNotList.size() > 0">
${_conditionType_} a.leaveTime not in
<foreach collection="conditionParamRef.leaveTimeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('leaveTimeStart') and conditionParamRef.leaveTimeStart != null">
${_conditionType_} a.leaveTime <![CDATA[ >= ]]> #{${_conditionParam_}.leaveTimeStart}
</if>
<if test="conditionParamRef.containsKey('leaveTimeEnd') and conditionParamRef.leaveTimeEnd != null">
${_conditionType_} a.leaveTime <![CDATA[ <= ]]> #{${_conditionParam_}.leaveTimeEnd}
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
......@@ -2856,6 +2956,13 @@
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('salaIdList') and conditionParamRef.salaIdList.size() > 0">
field(a.salaId,
<foreach collection="conditionParamRef.salaIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('goTimesList') and conditionParamRef.goTimesList.size() > 0">
field(a.goTimes,
<foreach collection="conditionParamRef.goTimesList" open="" close=")" index="index" item="item" separator=",">
......@@ -2877,9 +2984,16 @@
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('salaIdList') and conditionParamRef.salaIdList.size() > 0">
field(a.salaId,
<foreach collection="conditionParamRef.salaIdList" open="" close=")" index="index" item="item" separator=",">
<if test="conditionParamRef.containsKey('goWorksList') and conditionParamRef.goWorksList.size() > 0">
field(a.goWorks,
<foreach collection="conditionParamRef.goWorksList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('leaveTimeList') and conditionParamRef.leaveTimeList.size() > 0">
field(a.leaveTime,
<foreach collection="conditionParamRef.leaveTimeList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
......@@ -3172,6 +3286,13 @@
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('salaIdList') and conditionParamRef.salaIdList.size() > 0">
field(a.salaId,
<foreach collection="conditionParamRef.salaIdList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('goTimesList') and conditionParamRef.goTimesList.size() > 0">
field(a.goTimes,
<foreach collection="conditionParamRef.goTimesList" open="" close=")" index="index" item="item" separator=",">
......@@ -3193,9 +3314,16 @@
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('salaIdList') and conditionParamRef.salaIdList.size() > 0">
field(a.salaId,
<foreach collection="conditionParamRef.salaIdList" open="" close=")" index="index" item="item" separator=",">
<if test="conditionParamRef.containsKey('goWorksList') and conditionParamRef.goWorksList.size() > 0">
field(a.goWorks,
<foreach collection="conditionParamRef.goWorksList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
</if>
<if test="conditionParamRef.containsKey('leaveTimeList') and conditionParamRef.leaveTimeList.size() > 0">
field(a.leaveTime,
<foreach collection="conditionParamRef.leaveTimeList" open="" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
,
......@@ -3431,6 +3559,16 @@
<if test='orderCol.paternityLeaveDays != null and "DESC".equalsIgnoreCase(orderCol.paternityLeaveDays)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('salaId')">
a.salaId
<if test='orderCol.salaId != null and "DESC".equalsIgnoreCase(orderCol.salaId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('salaName')">
a.salaName
<if test='orderCol.salaName != null and "DESC".equalsIgnoreCase(orderCol.salaName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('phoneNumer')">
a.phoneNumer
<if test='orderCol.phoneNumer != null and "DESC".equalsIgnoreCase(orderCol.phoneNumer)'>DESC</if>
......@@ -3451,14 +3589,14 @@
<if test='orderCol.afternoonTimes != null and "DESC".equalsIgnoreCase(orderCol.afternoonTimes)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('salaId')">
a.salaId
<if test='orderCol.salaId != null and "DESC".equalsIgnoreCase(orderCol.salaId)'>DESC</if>
<if test="orderCol.containsKey('goWorks')">
a.goWorks
<if test='orderCol.goWorks != null and "DESC".equalsIgnoreCase(orderCol.goWorks)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('salaName')">
a.salaName
<if test='orderCol.salaName != null and "DESC".equalsIgnoreCase(orderCol.salaName)'>DESC</if>
<if test="orderCol.containsKey('leaveTime')">
a.leaveTime
<if test='orderCol.leaveTime != null and "DESC".equalsIgnoreCase(orderCol.leaveTime)'>DESC</if>
,
</if>
</trim>
......
......@@ -14,7 +14,9 @@
s.salaId,
s.salaName,
count(1) as workDays,
ROUND(IFNULL(sum(s.goTimes),0)/count(1),4) as attendanceRate,
sum(s.goWorks) AS goWorks,
ROUND(IFNULL(sum(s.goWorks),0)/count(1),4) as attendanceRate,
count(1)*4 as sumCheck,
sum(s.goTimes) AS goTimes,
sum(s.morningTimes) AS morningTimes,
sum(s.afternoonTimes) AS afternoonTimes,
......@@ -48,7 +50,8 @@
sum(s.nonStandardDressTimes) AS nonStandardDressTimes,
sum(s.unexcusedMeetingAbsence) AS unexcusedMeetingAbsence,
sum(s.earlyLeaveMeeting) AS earlyLeaveMeeting,
sum(s.lateTimes) AS lateTimes
sum(s.lateTimes) AS lateTimes,
sum(s.leaveTime) AS leaveTime
FROM
mortals_xhx_attendance_stat s
WHERE
......@@ -85,7 +88,10 @@
MAX(s.phoneNumer) as phoneNumer,
s.salaId,
s.salaName,
ROUND(IFNULL(sum(s.goTimes),0)/count(1),4) as attendanceRate,
count(1) as workDays,
sum(s.goWorks) AS goWorks,
ROUND(IFNULL(sum(s.goWorks),0)/count(1),4) as attendanceRate,
count(1)*4 as sumCheck,
sum(s.goTimes) AS goTimes,
sum(s.morningTimes) AS morningTimes,
sum(s.afternoonTimes) AS afternoonTimes,
......@@ -118,7 +124,9 @@
sum(s.vacancy) AS vacancy,
sum(s.nonStandardDressTimes) AS nonStandardDressTimes,
sum(s.unexcusedMeetingAbsence) AS unexcusedMeetingAbsence,
sum(s.earlyLeaveMeeting) AS earlyLeaveMeeting
sum(s.earlyLeaveMeeting) AS earlyLeaveMeeting,
sum(s.lateTimes) AS lateTimes,
sum(s.leaveTime) AS leaveTime
FROM
mortals_xhx_attendance_stat s
WHERE
......
......@@ -1343,4 +1343,11 @@ ALTER TABLE `mortals_xhx_staff_perform_summary`
ADD COLUMN `addTotalScore` DECIMAL (10, 2) DEFAULT NULL COMMENT '加分合计' AFTER `remarkAdd`,
ADD COLUMN `sumScore` DECIMAL (10, 2) DEFAULT NULL COMMENT '合计得分' AFTER `addTotalScore`;
UPDATE `mortals_xhx_staff_perform_summary` SET sumScore=totalScore,addTotalScore=0;
\ No newline at end of file
UPDATE `mortals_xhx_staff_perform_summary` SET sumScore=totalScore,addTotalScore=0;
-- ----------------------------
2024-09-02
-- ----------------------------
ALTER TABLE `mortals_xhx_attendance_stat`
ADD COLUMN `goWorks` int(9) DEFAULT '0' COMMENT '实际出勤天数',
ADD COLUMN `leaveTime` double(4,1) DEFAULT '0.0' COMMENT '请假天数';
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment