You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
4.1 KiB
Java
84 lines
4.1 KiB
Java
1 year ago
|
package com.engine.attendance.attendanceanalysis.web;
|
||
|
|
||
|
import com.engine.attendance.attendanceanalysis.service.UtilService;
|
||
|
import com.engine.attendance.attendanceanalysis.service.impl.UtilServiceImpl;
|
||
|
import com.engine.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper;
|
||
|
import com.engine.attendance.attendanceplan.service.AttendancePlanService;
|
||
|
import com.engine.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl;
|
||
|
import com.engine.common.util.*;
|
||
|
import com.google.common.collect.Maps;
|
||
|
import lombok.extern.slf4j.Slf4j;
|
||
|
import weaver.general.Util;
|
||
|
|
||
|
import javax.servlet.http.HttpServletRequest;
|
||
|
import javax.servlet.http.HttpServletResponse;
|
||
|
import javax.ws.rs.POST;
|
||
|
import javax.ws.rs.Path;
|
||
|
import javax.ws.rs.Produces;
|
||
|
import javax.ws.rs.core.Context;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
import java.util.stream.Collectors;
|
||
|
|
||
|
@Slf4j
|
||
|
public class AttendanceanalysisAction {
|
||
|
private AttendancePlanService basicsetService = ServiceUtil.getService(AttendancePlanServiceImpl.class);
|
||
|
private UtilService utilService = ServiceUtil.getService(UtilServiceImpl.class);
|
||
|
private AttendanceAnalysisWrapper attendanceAnalysisService = ServiceUtil.getService(AttendanceAnalysisWrapper.class);
|
||
|
|
||
|
/**
|
||
|
* 排班分析
|
||
|
* @return
|
||
|
*/
|
||
|
@POST
|
||
|
@Path("/attendanceAnalysisByHrmAndDate")
|
||
|
@Produces({"text/plain"})
|
||
|
public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||
|
try {
|
||
|
Map<String,Object> paramMap = ParamUtil.request2Map(request);
|
||
|
String startDate = Util.null2String(paramMap.get("startDate"));
|
||
|
String startBeforeDate = DateUtil.beforeDay(startDate,1);
|
||
|
String endDate = Util.null2String(paramMap.get("endDate"));
|
||
|
String endAfterDate = DateUtil.AfterDay(endDate,1);
|
||
|
String userIds = Util.null2String(paramMap.get("userIds"));
|
||
|
String modeId = Util.null2String(paramMap.get("modeId"));
|
||
|
int betweenDays = DateUtil.getBetWeenDays(startDate,endDate);
|
||
|
String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and userid in ("+userIds+") and signdate >= ? and signdate <= ?";
|
||
|
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
|
||
|
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
|
||
|
|
||
|
for (String userId : userIds.split(",")){
|
||
|
/**获得人员考勤项目*/
|
||
|
Map<String,Object> param = Maps.newHashMap();
|
||
|
param.put("startDate","");
|
||
|
param.put("endDate","");
|
||
|
param.put("resourceId",userId);
|
||
|
param.put("modeId","204");
|
||
|
Map<String,Object> dataMap = basicsetService.getAttendanceItemsByPerson(param);
|
||
|
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)dataMap.get("data");
|
||
|
|
||
|
/** 获取人员班次*/
|
||
|
Map<String,Object> classesParamMap = Maps.newHashMap();
|
||
|
classesParamMap.put("tableName","uf_pbjg");
|
||
|
classesParamMap.put("startDate",startBeforeDate);
|
||
|
classesParamMap.put("endDate",endAfterDate);
|
||
|
classesParamMap.put("pblx","0");
|
||
|
classesParamMap.put("pbdx",userId);
|
||
|
classesParamMap.put("current","1");
|
||
|
classesParamMap.put("pageSize",10);
|
||
|
classesParamMap.put("recurrence",1);
|
||
|
Map<String,List<Map<String,Object>>> schedulingResultsMap = utilService.getSchedulingInFormation(classesParamMap);
|
||
|
|
||
|
for (int i=0; i<=betweenDays;i++){
|
||
|
String date = DateUtil.AfterDay(startDate,i);
|
||
|
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulingResultsMap,modeId);
|
||
|
}
|
||
|
}
|
||
|
return null;
|
||
|
}catch (Exception e){
|
||
|
log.error("execute fail,catch error: [{}]",e);
|
||
|
return ApiReturnTools.error("500","saveApplicableOrganization error");
|
||
|
}
|
||
|
}
|
||
|
}
|