liuliang 9 months ago
commit 6942e4a80d

@ -5,4 +5,6 @@ import java.util.Map;
public interface AllowanceService {
Map<String, Object> addAllowanceRecords(Map<String, Object> params);
Map<String, Object> getAllowanceRecordList(Map<String, Object> params);
}

@ -10,6 +10,7 @@ import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.DbTools;
import com.engine.jucailinkq.common.util.Utils;
import com.engine.core.impl.Service;
import lombok.extern.slf4j.Slf4j;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
@ -26,6 +27,7 @@ import java.util.stream.Collectors;
* @Description:
* @Date: 2024/4/2
**/
@Slf4j
public class AllowanceServiceImpl extends Service implements AllowanceService {
BaseBean bs = new BaseBean();
@Override
@ -736,4 +738,38 @@ public class AllowanceServiceImpl extends Service implements AllowanceService {
return kqxmIdsWithCq;
}
@Override
public Map<String, Object> getAllowanceRecordList(Map<String, Object> params) {
Map<String, Object> resultMap = new HashMap<String, Object>();
//获取主表id列表
String targetUserId = Util.null2String(params.get("xjr"));
String queryDateRange = Util.null2String(params.get("cxqj"));
String startDate = "";
String endDate = "";
String targetMonth = "";
if (queryDateRange.equals("0")) {
//上月
targetMonth = DateUtil.beforeMonth(DateUtil.getCurrentDate());
} else if (queryDateRange.equals("1")) {
targetMonth = DateUtil.getCurrentMonth();
}
startDate = targetMonth + "-01";
//结束日期只作为范围筛选不用考虑是目标月份是否存在31号
endDate = targetMonth + "-31";
log.info("targetUserId : {}, queryDateRange : {}, startDate : {}, endDate : {}", targetUserId, queryDateRange, startDate, endDate);
String detailSql = "select rq, bc, jtlx, sc, zt , bz as sm from uf_jcl_kq_cqjt where yg = ? and rq >= ? and rq <= ? ";
List<Map<String, Object>> detailList = DbTools.getSqlToList(detailSql,targetUserId,startDate,endDate);
if (detailList.size() > 0) {
resultMap.put("data", detailList);
} else {
resultMap.put("data", null);
}
log.info("detailList : [{}]", detailList);
return resultMap;
}
}

@ -161,6 +161,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
String leaveMode = Util.null2String(mainTableData.get("cxjqj"));
String leaveType = Util.null2String(mainTableData.get("jqlx"));
String leaveDuration = Util.null2String(mainTableData.get("qjsc"));
String dailyRepeat = Util.null2String(mainTableData.get("mtcfsdjq"));
//获取请假日期集合
List<String> leaveDateList = DateUtil.getDatesBetween(startDate, endDate);
//已编辑内容中的假期额度使用信息
@ -219,8 +220,14 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
Map<String, List<Map<String, Object>>> scheduleInfoMap = (removeNonWorkDayRange || removeNonWorkTimeRange) ? getScheduleInfoWithEmpId(leaveEmpIdList, DateUtil.beforeDay(startDate,1), DateUtil.AfterDay(endDate,1)) : new HashMap<>();
//收集未关联假期余额的请假明细数据
List<Map<String, String>> simpleLeaveDetailList = createSimpleLeaveDetailList(leaveEmpIdList, leaveDateList, removeNonWorkDayRange, scheduleInfoMap,
restDayInfo, leaveMode, startTime, endTime, leaveDuration, countBdlxList);
List<Map<String, String>> simpleLeaveDetailList;
if (leaveMode.equals(AskAndEvctionWayEnum.TIME_INTERVAL.getKey()) && !"1".equals(dailyRepeat)) {
simpleLeaveDetailList = createSimpleLeaveDetailListWithNoDaily(leaveEmpIdList, leaveDateList, removeNonWorkDayRange, scheduleInfoMap,
restDayInfo, startDate, endDate, startTime, endTime, countBdlxList);
} else {
simpleLeaveDetailList = createSimpleLeaveDetailList(leaveEmpIdList, leaveDateList, removeNonWorkDayRange, scheduleInfoMap,
restDayInfo, leaveMode, startTime, endTime, leaveDuration, countBdlxList);
}
//收集已关联假期余额的请假明细数据
List<Map<String, String>> completeLeaveDetailList = new ArrayList<>();
//按照人员id分组处理请假明细信息关联假期余额数据
@ -337,16 +344,13 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
String startTime, String endTime, String leaveDuration, List<String> countBdlxList) {
List<Map<String, String>> simpleLeaveDetailList = new ArrayList<>();
Map<String, String> simpleLeaveDetailItem;
//实际需要请假的日期集合
List<String> realLeaveDateList;
for (String leaveEmpId : leaveEmpIdList) {
//需要自动移除日期区间内的休息日时,去除请假日期区间中的休息日
List<Map<String, Object>> scheduleInfoList = scheduleInfoMap.get(leaveEmpId);
Map<String, String> dateToBcxxMap = scheduleInfoList == null ? new HashMap<>()
: scheduleInfoList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("bcrq")),e->Util.null2String(e.get("bcxx"))));
Map<String, String> dateToHxbzMap = scheduleInfoList == null ? new HashMap<>()
: scheduleInfoList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("bcrq")),e->Util.null2String(e.get("hxbz"))));
List<Map<String, Object>> scheduleInfoList = scheduleInfoMap.getOrDefault(leaveEmpId, new ArrayList<>());
Map<String, String> dateToBcxxMap = scheduleInfoList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("bcrq")),e->Util.null2String(e.get("bcxx"))));
List<String> restDateList = new ArrayList<>();
if (removeNonWorkDayRange) {
//排班结果中休息的日期
List<String> restDateListFromSchedule = scheduleInfoList.stream()
@ -357,15 +361,12 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
//排班结果中未出现的日期
List<String> nonSetDateListFromSchedule = leaveDateList.stream().filter(f -> !allDateListFromSchedule.contains(f)).collect(Collectors.toList());
//企业日历中人员对应日期的休息日
List<String> restDateList = restDayInfo.get(leaveEmpId);
restDateList = restDayInfo.get(leaveEmpId);
//筛选排班信息无法辨别的日期,依靠企业日历的日期信息
restDateList = restDateList.stream().filter(nonSetDateListFromSchedule::contains).collect(Collectors.toList());
List<String> finalRestDateList = restDateList;
realLeaveDateList = leaveDateList.stream().filter(f -> !finalRestDateList.contains(f) && !restDateListFromSchedule.contains(f)).collect(Collectors.toList());
} else {
realLeaveDateList = leaveDateList;
restDateList.addAll(restDateListFromSchedule);
}
for (String leaveDate : realLeaveDateList) {
for (String leaveDate : leaveDateList) {
//请假方式为“指定时间区间”时
if (leaveMode.equals(AskAndEvctionWayEnum.TIME_INTERVAL.getKey())) {
simpleLeaveDetailItem = new HashMap<>();
@ -376,15 +377,13 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
simpleLeaveDetailItem.put("kssj", startTime);
simpleLeaveDetailItem.put("jssj", endTime);
//获取当天班次id
String currentDayBcId = Util.null2String(dateToBcxxMap.get(leaveDate)).split("-")[0];
boolean currentDayHxbz = !"".equals(Util.null2String(dateToHxbzMap.get(leaveDate)));
String currentDayBcId = restDateList.contains(leaveDate) ? "" : Util.null2String(dateToBcxxMap.get(leaveDate)).split("-")[0];
//获取前一天班次id
String yesterday = DateUtil.beforeDay(leaveDate,1);
String yesterdayBcId = Util.null2String(dateToBcxxMap.get(DateUtil.beforeDay(leaveDate, 1))).split("-")[0];
String yesterdayBcId = restDateList.contains(yesterday) ? "" : Util.null2String(dateToBcxxMap.get(yesterday)).split("-")[0];
//获取次日班次id
String nextDay = DateUtil.AfterDay(leaveDate,1);
String nextDayBcId = Util.null2String(dateToBcxxMap.get(nextDay)).split("-")[0];
boolean nextDayHxbz = !"".equals(Util.null2String(dateToHxbzMap.get(nextDay)));
String nextDayBcId = restDateList.contains(nextDay) ? "" : Util.null2String(dateToBcxxMap.get(nextDay)).split("-")[0];
String sql = "";
List<Map<String, Object>> bcDetailData;
@ -395,64 +394,41 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
endDate = nextDay;
simpleLeaveDetailItem.put("jsrq", nextDay);
}
String toDealStartTime = startTime;
if (!"".equals(yesterdayBcId)) {
sql = "select id, bdlx, gsrq, kssj as dtkssj, jssj as dtjssj from uf_jcl_kq_bcxx_dt1 where mainid = " + yesterdayBcId + " order by gsrq desc, kssj desc";
sql = "select id, bdlx, gsrq, kssj as dtkssj, jssj as dtjssj from uf_jcl_kq_bcxx_dt1 where mainid = " + yesterdayBcId;
bcDetailData = DbTools.getSqlToList(sql);
bcDetailData = bcDetailData.stream().filter(e -> countBdlxList.contains(Util.null2String(e.get("bdlx")))).collect(Collectors.toList());
//获取需要累计的班段时长区间和请假区间存在交集的分钟数
scMinutes = Utils.removeTime(leaveDate + " " + startTime, endDate + " " + endTime, bcDetailData, yesterday);
//更新可匹配请假时长开始时间
String gsrq = Util.null2String(bcDetailData.get(0).get("gsrq"));
toDealStartTime = "2".equals(gsrq) && startTime.compareTo(Util.null2String(bcDetailData.get(0).get("dtjssj"))) < 0
? Util.null2String(bcDetailData.get(0).get("dtjssj")) : startTime;
}
if (!"".equals(currentDayBcId)) {
sql = "select id, bdlx, gsrq, kssj as dtkssj, jssj as dtjssj from uf_jcl_kq_bcxx_dt1 where mainid = " + currentDayBcId + " order by gsrq desc, kssj desc";
sql = "select id, bdlx, gsrq, kssj as dtkssj, jssj as dtjssj from uf_jcl_kq_bcxx_dt1 where mainid = " + currentDayBcId;
bcDetailData = DbTools.getSqlToList(sql);
bcDetailData = bcDetailData.stream().filter(e -> countBdlxList.contains(Util.null2String(e.get("bdlx")))).collect(Collectors.toList());
//获取需要累计的班段时长区间和请假区间存在交集的分钟数
scMinutes = scMinutes + Utils.removeTime(leaveDate + " " + toDealStartTime, endDate + " " + endTime, bcDetailData, leaveDate);
//更新可匹配请假时长开始时间
String gsrq = Util.null2String(bcDetailData.get(0).get("gsrq"));
if ("2".equals(gsrq)) {
leaveDate = nextDay;
toDealStartTime = Util.null2String(bcDetailData.get(0).get("dtjssj"));
} else if ("1".equals(gsrq)) {
toDealStartTime = toDealStartTime.compareTo(Util.null2String(bcDetailData.get(0).get("dtjssj"))) < 0
? Util.null2String(bcDetailData.get(0).get("dtjssj")) : toDealStartTime;
}
} else if (currentDayHxbz) {
scMinutes = scMinutes + DateUtil.getBetWeenMinutes(leaveDate + " " + toDealStartTime, nextDay + " " + "00:00");
scMinutes = scMinutes + Utils.removeTime(leaveDate + " " + startTime, endDate + " " + endTime, bcDetailData, leaveDate);
}
if (!"".equals(nextDayBcId)) {
sql = "select id, bdlx, gsrq, kssj as dtkssj, jssj as dtjssj from uf_jcl_kq_bcxx_dt1 where mainid = " + nextDayBcId + " order by gsrq desc, kssj desc";
sql = "select id, bdlx, gsrq, kssj as dtkssj, jssj as dtjssj from uf_jcl_kq_bcxx_dt1 where mainid = " + nextDayBcId;
bcDetailData = DbTools.getSqlToList(sql);
bcDetailData = bcDetailData.stream().filter(e -> countBdlxList.contains(Util.null2String(e.get("bdlx")))).collect(Collectors.toList());
//获取需要累计的班段时长区间和请假区间存在交集的分钟数
scMinutes = scMinutes + Utils.removeTime(leaveDate + " " + toDealStartTime, endDate + " " + endTime, bcDetailData, nextDay);
} else if (nextDayHxbz) {
if ("".equals(currentDayBcId)) {
scMinutes = scMinutes + DateUtil.getBetWeenMinutes(nextDay + " " + "00:00", nextDay + " " + endTime);
} else {
int nextDayMinutes = leaveDate.compareTo(nextDay) >= 0 ? DateUtil.getBetWeenMinutes(leaveDate + " " + toDealStartTime, nextDay + " " + endTime)
: DateUtil.getBetWeenMinutes(nextDay + " " + "00:00", nextDay + " " + endTime);
scMinutes = scMinutes + Math.max(nextDayMinutes, 0);
}
scMinutes = scMinutes + Utils.removeTime(leaveDate + " " + startTime, endDate + " " + endTime, bcDetailData, nextDay);
}
//增加加班计划中的数据,加班计划明细中的数据作为“加班计划”班段类型数据的补充
if (countBdlxList.contains(ClassSegmentTypeEnum.OVERTIME_PLAN.getKey())) {
sql = "select b.jbry,b.ksrq,b.kssj,b.jblx,b.jsrq,b.jssj,b.jbsc,b.gsrq from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.jbry =? and b.ksrq>=? and b.jsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1";
List<Map<String,Object>> overtimePlanList = DbTools.getSqlToList(sql, leaveEmpId, leaveDate, leaveDate);
List<Map<String,Object>> overtimePlanList = DbTools.getSqlToList(sql, leaveEmpId, DateUtil.beforeDay(leaveDate,1), DateUtil.AfterDay(endDate,1));
int scMinutesInOvertimePlan = Utils.removeTimeWithOvertimePlan(leaveDate + " " + startTime, endDate + " " + endTime, overtimePlanList);
scMinutes = scMinutes + scMinutesInOvertimePlan;
}
//组装初步的请假时长
simpleLeaveDetailItem.put("qjsc", String.format("%.2f", scMinutes / 60.0));
simpleLeaveDetailList.add(simpleLeaveDetailItem);
} else if (leaveMode.equals(AskAndEvctionWayEnum.HOUR.getKey())) {
if (scMinutes > 0) {
simpleLeaveDetailList.add(simpleLeaveDetailItem);
}
} else if (leaveMode.equals(AskAndEvctionWayEnum.HOUR.getKey()) && !restDateList.contains(leaveDate)) {
simpleLeaveDetailItem = new HashMap<>();
//组装初步的请假明细数据
simpleLeaveDetailItem.put("qjr", leaveEmpId);
@ -460,7 +436,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
simpleLeaveDetailItem.put("jsrq", leaveDate);
simpleLeaveDetailItem.put("qjsc", leaveDuration);
simpleLeaveDetailList.add(simpleLeaveDetailItem);
} else if (leaveMode.equals(AskAndEvctionWayEnum.ALLDAY.getKey())) {
} else if (leaveMode.equals(AskAndEvctionWayEnum.ALLDAY.getKey()) && !restDateList.contains(leaveDate)) {
simpleLeaveDetailItem = new HashMap<>();
//组装初步的请假明细数据
simpleLeaveDetailItem.put("qjr", leaveEmpId);
@ -468,7 +444,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
simpleLeaveDetailItem.put("jsrq", leaveDate);
simpleLeaveDetailItem.put("qtj", "1");
simpleLeaveDetailList.add(simpleLeaveDetailItem);
} else if (leaveMode.equals(AskAndEvctionWayEnum.HALFDAY.getKey())) {
} else if (leaveMode.equals(AskAndEvctionWayEnum.HALFDAY.getKey()) && !restDateList.contains(leaveDate)) {
simpleLeaveDetailItem = new HashMap<>();
//组装初步的请假明细数据
simpleLeaveDetailItem.put("qjr", leaveEmpId);
@ -482,6 +458,83 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
return simpleLeaveDetailList;
}
/**
* @param leaveEmpIdList id
* @param leaveDateList
* @param removeNonWorkDayRange
* @param scheduleInfoMap
* @param restDayInfo
* @param startDate
* @param endDate
* @param startTime
* @param endTime
* @param countBdlxList
* @return
*/
private List<Map<String, String>> createSimpleLeaveDetailListWithNoDaily(List<String> leaveEmpIdList, List<String> leaveDateList, boolean removeNonWorkDayRange,
Map<String, List<Map<String, Object>>> scheduleInfoMap, Map<String, List<String>> restDayInfo,
String startDate, String endDate, String startTime, String endTime, List<String> countBdlxList) {
List<Map<String, String>> simpleLeaveDetailList = new ArrayList<>();
Map<String, String> simpleLeaveDetailItem;
String sql = "";
List<Map<String, Object>> bcDetailData;
String targetDateBcId = "";
int scMinutes = 0;
leaveDateList.add(0, DateUtil.beforeDay(startDate,1));
leaveDateList.add(DateUtil.AfterDay(endDate,1));
for (String leaveEmpId : leaveEmpIdList) {
//需要自动移除日期区间内的休息日时,去除请假日期区间中的休息日
List<Map<String, Object>> scheduleInfoList = scheduleInfoMap.getOrDefault(leaveEmpId, new ArrayList<>());
Map<String, String> dateToBcxxMap = scheduleInfoList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("bcrq")),e->Util.null2String(e.get("bcxx"))));
List<String> restDateList = new ArrayList<>();
if (removeNonWorkDayRange) {
//排班结果中休息的日期
List<String> restDateListFromSchedule = scheduleInfoList.stream()
.filter(f -> Util.null2String(f.get("sfxx")).equals(CheckBoxEnum.CHECKED.getKey()))
.map(e -> Util.null2String(e.get("bcrq")))
.collect(Collectors.toList());
List<String> allDateListFromSchedule = scheduleInfoList.stream().map(e -> Util.null2String(e.get("bcrq"))).collect(Collectors.toList());
//排班结果中未出现的日期
List<String> nonSetDateListFromSchedule = leaveDateList.stream().filter(f -> !allDateListFromSchedule.contains(f)).collect(Collectors.toList());
//企业日历中人员对应日期的休息日
restDateList = restDayInfo.get(leaveEmpId);
//筛选排班信息无法辨别的日期,依靠企业日历的日期信息
restDateList = restDateList.stream().filter(nonSetDateListFromSchedule::contains).collect(Collectors.toList());
restDateList.addAll(restDateListFromSchedule);
}
simpleLeaveDetailItem = new HashMap<>();
//组装初步的请假明细数据
simpleLeaveDetailItem.put("qjr", leaveEmpId);
simpleLeaveDetailItem.put("ksrq", startDate);
simpleLeaveDetailItem.put("jsrq", endDate);
simpleLeaveDetailItem.put("kssj", startTime);
simpleLeaveDetailItem.put("jssj", endTime);
for (String date : leaveDateList) {
targetDateBcId = restDateList.contains(date) ? "" : Util.null2String(dateToBcxxMap.get(date)).split("-")[0];
if (!"".equals(targetDateBcId)) {
sql = "select id, bdlx, gsrq, kssj as dtkssj, jssj as dtjssj from uf_jcl_kq_bcxx_dt1 where mainid = " + targetDateBcId;
bcDetailData = DbTools.getSqlToList(sql);
bcDetailData = bcDetailData.stream().filter(e -> countBdlxList.contains(Util.null2String(e.get("bdlx")))).collect(Collectors.toList());
//获取需要累计的班段时长区间和请假区间存在交集的分钟数
scMinutes = scMinutes + Utils.removeTime(startDate + " " + startTime, endDate + " " + endTime, bcDetailData, date);
}
}
//增加加班计划中的数据,加班计划明细中的数据作为“加班计划”班段类型数据的补充
if (countBdlxList.contains(ClassSegmentTypeEnum.OVERTIME_PLAN.getKey())) {
sql = "select b.jbry,b.ksrq,b.kssj,b.jblx,b.jsrq,b.jssj,b.jbsc,b.gsrq from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.jbry =? and b.ksrq>=? and b.jsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1";
List<Map<String,Object>> overtimePlanList = DbTools.getSqlToList(sql, leaveEmpId, DateUtil.beforeDay(startDate,1), DateUtil.AfterDay(endDate,1));
int scMinutesInOvertimePlan = Utils.removeTimeWithOvertimePlan(startDate + " " + startTime, endDate + " " + endTime, overtimePlanList);
scMinutes = scMinutes + scMinutesInOvertimePlan;
}
//组装初步的请假时长
simpleLeaveDetailItem.put("qjsc", String.format("%.2f", scMinutes / 60.0));
if (scMinutes > 0) {
simpleLeaveDetailList.add(simpleLeaveDetailItem);
}
}
return simpleLeaveDetailList;
}
/**
* @param qjry id
* @param detailTableData
@ -534,7 +587,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
* @param canUseCheckJqyeInfo 使
* @param canUseFirstJqyeInfo 使使
* @param editedUseJqed 使
* @param editedUseJqlxWithEmp id_id使
* @param editedUseJqlxWithEmp ,id_id使
* @param leaveDetailList
* @param checkItemId id
* @param firstItemId 使id
@ -566,12 +619,14 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
totalLeaveDuration = totalLeaveDuration + leaveDuration;
}
//减去编辑已使用时长
Double checkItemEditedUseSc = editedUseJqlxWithEmp.get(checkItemId + "_" + empId);
Double firstItemEditedUseSc = editedUseJqlxWithEmp.get(firstItemId + "_" + empId);
totalLeaveDuration = Utils.subtract(totalLeaveDuration, checkItemEditedUseSc == null ? 0 : checkItemEditedUseSc);
totalLeaveDuration = Utils.subtract(totalLeaveDuration, firstItemEditedUseSc == null ? 0 : firstItemEditedUseSc);
//如果总时长为0则退出
if (totalLeaveDuration <= 0) {
Double checkItemEditedUseSc = editedUseJqlxWithEmp.getOrDefault(checkItemId + "_" + empId, (double) 0);
Double firstItemEditedUseSc = editedUseJqlxWithEmp.getOrDefault(firstItemId + "_" + empId, (double) 0);
// totalLeaveDuration = Utils.subtract(totalLeaveDuration, checkItemEditedUseSc == null ? 0 : checkItemEditedUseSc);
// totalLeaveDuration = Utils.subtract(totalLeaveDuration, firstItemEditedUseSc == null ? 0 : firstItemEditedUseSc);
// //如果总时长为0则退出
if (Utils.add(checkItemEditedUseSc, firstItemEditedUseSc) > 0) {
String message = empName + "在该请假类型的本次请假日期范围内,已存在开始日期相同的请假明细,请重新选择日期范围!";
errorMessage.add(message);
return result;
}
Map<String, Double> leaveDurationMap = new HashMap<>();

@ -5,11 +5,15 @@ import com.engine.jucailinkq.attendance.workflow.service.AllowanceService;
import com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.jucailinkq.common.util.ApiReturnTools;
import com.engine.jucailinkq.common.util.ResponseResult;
import lombok.extern.slf4j.Slf4j;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@ -23,6 +27,7 @@ import java.util.Map;
* @Description:
* @Date: 2024/4/9
**/
@Slf4j
public class AllowanceApi {
private AllowanceService getAllowanceService(User user) {
@ -44,4 +49,24 @@ public class AllowanceApi {
apidatas = getAllowanceService(user).addAllowanceRecords(ParamUtil.request2Map(request));
return JSONObject.toJSONString(apidatas);
}
/**
*
* @param request
* @param response
* @return
*/
@GET
@Path("/getAllowanceRecordList")
@Produces(MediaType.APPLICATION_JSON)
public String getAllowanceRecordList(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
User user = HrmUserVarify.getUser(request, response);
Map<String,Object> param = ParamUtil.request2Map(request);
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getAllowanceService(user) :: getAllowanceRecordList,param);
}catch (Exception e){
log.error("execute fail,catch error: [{}]",e);
return ApiReturnTools.error("500","getAllowanceRecordList error");
}
}
}

@ -36,7 +36,10 @@ public class DateUtil {
return localDateTime.minusMonths(month).format(yyyyMMdd);
}
public static String beforeMonth(String time){
LocalDateTime localDateTime = DateUtil.getTime(time);
return localDateTime.minusMonths(1).format(yyyyMM);
}
public static String lastMonth(String time){
LocalDateTime localDateTime = DateUtil.getTime(time);
@ -94,6 +97,9 @@ public class DateUtil {
return localDateTime.format(yyyyMM);
}
public static String getCurrentMonth(){
return LocalDateTime.now().format(yyyyMM);
}
public static String getCurrentDate(){
return LocalDateTime.now().format(yyyyMMdd);
}

Loading…
Cancel
Save