考勤规则修改,添加考勤组成备注

This commit is contained in:
fl 2025-03-06 17:11:31 +08:00
parent d4df9cff0f
commit ec07f51615
6 changed files with 21 additions and 14 deletions

View File

@ -225,7 +225,7 @@ public interface AttSourceDataDao {
* @param nowDate
* @param i
*/
void updateMonthReportRequiredDay(@Param("userId") String userId, @Param("nowDate") String nowDate, @Param("requiredDays") Long requiredDays);
void updateMonthReportRequiredDay(@Param("userId") String userId, @Param("nowDate") String nowDate, @Param("requiredDays") Long requiredDays, @Param("requiredDaysRemark") String requiredDaysRemark);
/**
* 查询考勤人员基础数据

View File

@ -143,4 +143,7 @@ public class AttMonthReportBean {
private String startMonth;
/**结束月份*/
private String endMonth;
/**考勤组成卑职*/
private String requiredDaysRemark;
}

View File

@ -99,11 +99,13 @@ public interface AttCalService {
/**
* 修改月的应考勤天数
*
* @param userId
* @param nowDate
* @param i
* @param requiredDaysRemark
*/
void updateMonthReportRequiredDay(String userId, String nowDate, Long i);
void updateMonthReportRequiredDay(String userId, String nowDate, Long i, String requiredDaysRemark);
/**
* 月半才第一次加入考勤组

View File

@ -6,22 +6,16 @@ import com.alibaba.fastjson2.JSONObject;
import com.bonus.common.core.utils.DateTimeHelper;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.system.api.domain.MapVo;
import com.bonus.system.api.domain.SysUser;
import com.bonus.system.att.dao.AttGroupDao;
import com.bonus.system.att.dao.AttSourceDataDao;
import com.bonus.system.att.dao.OrgChangeDao;
import com.bonus.system.att.entity.*;
import com.bonus.system.att.utils.AddressCoordinateFormatUtil;
import com.bonus.system.att.utils.AttTimeUtil;
import com.bonus.system.att.utils.WorkdayCalculator;
import com.bonus.system.dept.dao.ProDeptRoleDao;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.Duration;
@ -338,13 +332,15 @@ public class AttCalServiceImpl implements AttCalService {
/**
* 修改月的应考勤天数
*
* @param userId
* @param nowDate
* @param i
* @param requiredDaysRemark
*/
@Override
public void updateMonthReportRequiredDay(String userId, String nowDate, Long i) {
attSourceDataDao.updateMonthReportRequiredDay(userId, nowDate, i);
public void updateMonthReportRequiredDay(String userId, String nowDate, Long i, String requiredDaysRemark) {
attSourceDataDao.updateMonthReportRequiredDay(userId, nowDate, i, requiredDaysRemark);
}
@Override

View File

@ -172,6 +172,7 @@ public class AttGroupServiceImpl implements AttGroupService {
addList.forEach(m -> {
int i = attCalService.getMonthReportTempData(m.getUserId(),nowDate);
AtomicLong requiredDays = new AtomicLong();
StringBuilder requiredDaysRemark = new StringBuilder();
//查询历史考勤规则方便分组计算
List<AttGroupBean> dataList = attCalService.getAttSettingHistoryByUserAndDate(m.getUserId(),nowDate);
//以最后一个考勤规则补全剩下当月日期所有考勤规则数据
@ -208,13 +209,15 @@ public class AttGroupServiceImpl implements AttGroupService {
List<String> attDayList = WorkdayCalculator.getWorkDay(collect.get(0).getAttDay(),
collect.get(0).getIsHaveHoliday(), holidays, v.get(0).getCurrentDay(),v.get(v.size()-1).getCurrentDay());
requiredDays.addAndGet(attDayList.size());
requiredDaysRemark.append(v.get(0).getCurrentDay()).append("-").append(v.get(v.size()-1).getCurrentDay())
.append("").append(collect.get(0).getGroupName()).append(",应考勤").append(attDayList.size()).append("天;");
}
});
}
if(i>0){
//存在属于修改考勤组需要修改月报表考勤天数
attCalService.updateMonthReportRequiredDay(m.getUserId(),nowDate,requiredDays.get());
attCalService.updateMonthReportRequiredDay(m.getUserId(),nowDate,requiredDays.get(),requiredDaysRemark.toString());
}else{
//查询人当前组织
List<AttMonthReportBean> list = attCalService.getOrgDataByUserId(m.getUserId());
@ -223,6 +226,7 @@ public class AttGroupServiceImpl implements AttGroupService {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String currentYearMonth = sdf.format(new Date());
list.get(0).setAttCurrentMonth(currentYearMonth);
list.get(0).setRequiredDaysRemark(requiredDaysRemark.toString());
attCalService.insertMonthHalfReportTempData(list);
}

View File

@ -67,11 +67,13 @@
</insert>
<insert id="insertAttMonthReportTemp">
insert into att_month_report(user_id, name, org_id, org_name, att_current_month,
required_days)
required_days, required_day_remark
)
values
<foreach collection="list" item="params" separator=",">
(#{params.userId}, #{params.userName}, #{params.orgId}, #{params.orgName},
#{params.attCurrentMonth}, #{params.requiredDays})
#{params.attCurrentMonth}, #{params.requiredDays}, #{params.requiredDaysRemark}
)
</foreach>
</insert>
@ -180,7 +182,7 @@
</update>
<update id="updateMonthReportRequiredDay">
update att_month_report
set required_days = #{requiredDays}
set required_days = #{requiredDays},required_day_remark = #{requiredDaysRemark}
where user_id = #{userId}
and att_current_month = DATE_FORMAT(#{nowDate}, '%Y-%m')
</update>