考勤-批量请假,假期预支逻辑中可预支假期记录筛选逻辑变更为延期失效日期最晚的

zm_dev
sy 9 months ago
parent 3d59ef9024
commit 562ccad27f

@ -691,10 +691,10 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
private List<Map<String, Object>> collectUsableHolidayBalance(List<String> unableUseJqyeIdList, Map<String, Double> editedUseJqed, Map<String,Object> holidayItem, String startDate, String leaveEmpId) {
String itemId = Util.null2String(holidayItem.get("id"));
String sql = "select id,jqid,sxrq,ktsc,yxsc,wxsc,yqsxrq,ztsc from uf_jcl_kq_jqye where ygid=? and jqid=? and sxrq<=? and yqsxrq>=? order by sxrq, modedatacreatedate, modedatacreatetime";
String sql = "select id,jqid,sxrq,ktsc,yxsc,wxsc,yqsxrq,ztsc from uf_jcl_kq_jqye where ygid=? and jqid=? and sxrq<=? and yqsxrq>=? order by yqsxrq, modedatacreatedate, modedatacreatetime";
List<Map<String, Object>> holidayBalanceList = DbTools.getSqlToList(sql, leaveEmpId, itemId, startDate, startDate);
//获取失效日期最晚的一条
Map<String, Object> maxSxrqMap = holidayBalanceList.stream().reduce((m1, m2) -> m2).orElse(null);
//获取延期失效日期最晚的一条
Map<String, Object> maxYqsxrqMap = holidayBalanceList.stream().reduce((m1, m2) -> m2).orElse(null);
//获取假期额度规则中额度可修次数、单次最小休时长、额度单位
String jqedSql = "select eddw, dczskxsc, edbxdcxw from uf_jcl_kq_jqed where jb = ?";
Map<String, Object> jqedInfo = DbTools.getSqlToMap(jqedSql, itemId);
@ -750,7 +750,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
if (!unableUseJqyeIdList.contains(jqyeId)) {
double wxsc = Utils.convertDouble(holidayBalance.get("wxsc")) * multiple;
//如果该条假期余额可以预支,则在原有未休时长基础上增加预支时长
if ("1".equals(allowAdvance) && maxSxrqMap != null && Util.null2String(maxSxrqMap.get("id")).equals(jqyeId)) {
if ("1".equals(allowAdvance) && maxYqsxrqMap != null && Util.null2String(maxYqsxrqMap.get("id")).equals(jqyeId)) {
wxsc = wxsc + Utils.convertDouble(advanceSc) * multiple;
}
double editedUseSc = Utils.convertDouble(editedUseJqed.get(jqyeId));

Loading…
Cancel
Save