Merge remote-tracking branch 'origin/main'

main
sy 6 months ago
commit 3fb003f146

@ -274,6 +274,8 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
/**卡点集合*/ /**卡点集合*/
List<ClockPointDTO> clcokInTimeData = Lists.newArrayList(); List<ClockPointDTO> clcokInTimeData = Lists.newArrayList();
List<Map<String, Object>> restScheduleList = scheduleResult.stream().filter(e -> (ClassSegmentTypeEnum.REST_AND_DINE.getKey().equals(e.get("bdlx")) || ClassSegmentTypeEnum.REST_PERIOD.getKey().equals(e.get("bdlx"))
|| ClassSegmentTypeEnum.DINING_PERIOD.getKey().equals(e.get("bdlx"))) && CheckBoxEnum.CHECKED.getKey().equals(e.get("dtsfdx"))).collect(Collectors.toList());
for (Map<String, Object> needClockIn : scheduleResult) { for (Map<String, Object> needClockIn : scheduleResult) {
/**非请假外出开始打卡逻辑处理*/ /**非请假外出开始打卡逻辑处理*/
@ -324,8 +326,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
/** /**
* *
*/ */
List<Map<String, Object>> restScheduleList = scheduleResult.stream().filter(e -> (ClassSegmentTypeEnum.REST_AND_DINE.getKey().equals(e.get("bdlx")) || ClassSegmentTypeEnum.REST_PERIOD.getKey().equals(e.get("bdlx"))
|| ClassSegmentTypeEnum.DINING_PERIOD.getKey().equals(e.get("bdlx"))) && CheckBoxEnum.CHECKED.getKey().equals(e.get("dtsfdx"))).collect(Collectors.toList());
if (restScheduleList.size() > 0){ if (restScheduleList.size() > 0){
flexibleRestClass(restScheduleList,clcokInTimeData,scheduleResult); flexibleRestClass(restScheduleList,clcokInTimeData,scheduleResult);
} }
@ -981,6 +982,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
//打卡时间大于等于最早打卡时间 //打卡时间大于等于最早打卡时间
timeType = ClockPointEnum.BEFORE; timeType = ClockPointEnum.BEFORE;
} }
} }
if (ClockPointEnum.EMPTY.equals(timeType) && ksdkNearestClcokInTime.get(ClockPointEnum.AFTER) != null) { if (ClockPointEnum.EMPTY.equals(timeType) && ksdkNearestClcokInTime.get(ClockPointEnum.AFTER) != null) {
String clockInTime = ksdkNearestClcokInTime.get(ClockPointEnum.AFTER).get("signdate") + " " + ksdkNearestClcokInTime.get(ClockPointEnum.AFTER).get("signtime"); String clockInTime = ksdkNearestClcokInTime.get(ClockPointEnum.AFTER).get("signdate") + " " + ksdkNearestClcokInTime.get(ClockPointEnum.AFTER).get("signtime");
@ -989,6 +991,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
//打卡时间小于结束时间 //打卡时间小于结束时间
timeType = ClockPointEnum.AFTER; timeType = ClockPointEnum.AFTER;
} }
} }
return timeType; return timeType;
} }
@ -1015,16 +1018,39 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
} }
if (ClockPointEnum.EMPTY.equals(timeType) && jsdkNearestClcokInTime.get(ClockPointEnum.AFTER) != null) { if (ClockPointEnum.EMPTY.equals(timeType) && jsdkNearestClcokInTime.get(ClockPointEnum.AFTER) != null) {
String clockInTime = jsdkNearestClcokInTime.get(ClockPointEnum.AFTER).get("signdate") + " " + jsdkNearestClcokInTime.get(ClockPointEnum.AFTER).get("signtime"); String clockInTime = jsdkNearestClcokInTime.get(ClockPointEnum.AFTER).get("signdate") + " " + jsdkNearestClcokInTime.get(ClockPointEnum.AFTER).get("signtime");
if (DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(DateUtil.AfterMinutes(maxelasticTime, thdkfzs))) <= 0 && if (dtjssj.equals(maxelasticTime)){
(getNextClockTime(needClockDateList,dtjssj).equals("") || DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(getNextClockTime(needClockDateList,dtjssj))) < 0)) { if (DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(DateUtil.AfterMinutes(maxelasticTime, thdkfzs))) <= 0 &&
(getNextClockTime(needClockDateList,dtjssj).equals("") || DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(getNextClockTime(needClockDateList,dtjssj))) < 0)) {
timeType = ClockPointEnum.AFTER;
}
}else {
//弹性逻辑
if (DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(DateUtil.AfterMinutes(maxelasticTime, thdkfzs))) <= 0 &&
(getNextClockTime(needClockDateList,dtjssj).equals("") || DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(getNextClockTime(needClockDateList,dtjssj))) < 0 ||
DateUtil.getTime(maxelasticTime).compareTo(DateUtil.getTime(getNextClockTime(needClockDateList,dtjssj))) >= 0)) {
timeType = ClockPointEnum.AFTER;
}
}
if (DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(DateUtil.AfterMinutes(maxelasticTime, thdkfzs))) <= 0) {
timeType = ClockPointEnum.AFTER; timeType = ClockPointEnum.AFTER;
} }
} }
if (ClockPointEnum.EMPTY.equals(timeType) && jsdkNearestClcokInTime.get(ClockPointEnum.BEFORE) != null) { if (ClockPointEnum.EMPTY.equals(timeType) && jsdkNearestClcokInTime.get(ClockPointEnum.BEFORE) != null) {
String clockInTime = jsdkNearestClcokInTime.get(ClockPointEnum.BEFORE).get("signdate") + " " + jsdkNearestClcokInTime.get(ClockPointEnum.BEFORE).get("signtime"); String clockInTime = jsdkNearestClcokInTime.get(ClockPointEnum.BEFORE).get("signdate") + " " + jsdkNearestClcokInTime.get(ClockPointEnum.BEFORE).get("signtime");
if (getBeforeClockTime(needClockDateList,dtjssj).equals("") || DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(getBeforeClockTime(needClockDateList,dtjssj))) > 0) { if (dtjssj.equals(maxelasticTime)){
timeType = ClockPointEnum.BEFORE; if (getBeforeClockTime(needClockDateList,dtjssj).equals("") || DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(getBeforeClockTime(needClockDateList,dtjssj))) > 0) {
timeType = ClockPointEnum.BEFORE;
}
}else {
int betweenTime = DateUtil.getBetWeenMinutes(dtjssj,maxelasticTime);
if (getBeforeClockTime(needClockDateList,dtjssj).equals("") || DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(getBeforeClockTime(needClockDateList,dtjssj))) > 0
|| DateUtil.getTime(clockInTime).compareTo(DateUtil.getTime(DateUtil.beforeMinutes(dtjssj,betweenTime))) >=0) {
timeType = ClockPointEnum.BEFORE;
}
} }
} }
return timeType; return timeType;
} }

@ -44,11 +44,11 @@ public class AttendanceanalysisAction {
public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) { public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try { try {
log.info("********AttendanceanalysisAction start********"); log.info("********AttendanceanalysisAction start********");
// Map<String,Object> paramMap = ParamUtil.request2Map(request); Map<String,Object> paramMap = ParamUtil.request2Map(request);
Map<String,Object> paramMap = Maps.newHashMap(); // Map<String,Object> paramMap = Maps.newHashMap();
paramMap.put("startDate","2024-07-22"); // paramMap.put("startDate","2024-10-10");
paramMap.put("endDate","2024-07-22"); // paramMap.put("endDate","2024-10-10");
paramMap.put("userIds","31"); // paramMap.put("userIds","22");
String startDate = Util.null2String(paramMap.get("startDate")); String startDate = Util.null2String(paramMap.get("startDate"));
String startBeforeDate = DateUtil.beforeDay(startDate,2); String startBeforeDate = DateUtil.beforeDay(startDate,2);

@ -127,8 +127,11 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand<Map
List<Map<String,Object>> attendanceItems = DbTools.getSqlToList(sql); List<Map<String,Object>> attendanceItems = DbTools.getSqlToList(sql);
sql = "select b.id keyid,b.mc kqxm,c.mc famc,b.* from uf_jcl_kq_kqfa_dt1 a left join uf_jcl_kq_kqxm b on a.kqxm=b.id left join uf_jcl_kq_kqfa c on a.mainid=c.id where mainid in ("+String.join(",",dataIds)+") and (b.xmzt is null or b.xmzt <> '0')";
if (dataIds.size() > 0){ if (dataIds.size() > 0){
sql = "select id from uf_jcl_kq_kqfa where zt=0 and id in ("+String.join(",",dataIds)+")";
dataIds = DbTools.getSqlToList(sql).stream().map(e->e.get("id").toString()).collect(Collectors.toSet());
sql = "select b.id keyid,b.mc kqxm,c.mc famc,b.* from uf_jcl_kq_kqfa_dt1 a left join uf_jcl_kq_kqxm b on a.kqxm=b.id left join uf_jcl_kq_kqfa c on a.mainid=c.id where mainid in ("+String.join(",",dataIds)+") and (b.xmzt is null or b.xmzt <> '0')";
attendanceItems.addAll(DbTools.getSqlToList(sql)); attendanceItems.addAll(DbTools.getSqlToList(sql));
} }
List<String> fatherItems = attendanceItems.stream().filter(e->Util.null2String(e.get("sffzcx")).equals(CheckBoxEnum.CHECKED.getKey())).map(e->e.get("keyid").toString()).collect(Collectors.toList()); List<String> fatherItems = attendanceItems.stream().filter(e->Util.null2String(e.get("sffzcx")).equals(CheckBoxEnum.CHECKED.getKey())).map(e->e.get("keyid").toString()).collect(Collectors.toList());

@ -48,7 +48,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
String pbdx = Util.null2String(params.get("pbdx")); String pbdx = Util.null2String(params.get("pbdx"));
String showAll = Util.null2String(params.get("showAll")); String showAll = Util.null2String(params.get("showAll"));
String sql = "select a.id as keyid,b.lastname,a.* from "+tableName +" a left join hrmresource b on a.pbdxry=b.id where 1=1 "; String sql = "select a.id as keyid,a.* from "+tableName +" a where 1=1 ";
String conditions = ""; String conditions = "";
List<Object> Dateparam = Lists.newArrayList(); List<Object> Dateparam = Lists.newArrayList();

@ -398,7 +398,7 @@ public class PersongroupCommonUtil {
} }
}else if (!"".equals(sqltj)){ }else if (!"".equals(sqltj)){
sqltj = Utils.converSQL(sqltj); sqltj = Utils.converSQL(sqltj);
log.debug("getPersonnelGroupingByPerson sqltj : [{}]",sqltj); log.info("getPersonnelGroupingByPerson sqltj : [{}]",sqltj);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj); List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj);
for (Map<String,Object> dataMap :dataList){ for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id")); String hrmId = Util.null2String(dataMap.get("id"));
@ -577,6 +577,10 @@ public class PersongroupCommonUtil {
String sql = "select id,mc name from uf_jcl_kq_hxbz"; String sql = "select id,mc name from uf_jcl_kq_hxbz";
return DbTools.getSqlToMapList(sql); return DbTools.getSqlToMapList(sql);
} }
public static Map<String,Object> getPersonName(){
String sql = "select id,lastname name from hrmresource";
return DbTools.getSqlToMapList(sql);
}
/** /**
* *

@ -24,11 +24,6 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class SchedulingResultsServiceImpl extends Service implements SchedulingResultsService { public class SchedulingResultsServiceImpl extends Service implements SchedulingResultsService {
private Map<String,Object> personGroupMap = PersongroupCommonUtil.getPersonGroup();
private Map<String,Object> departMentMap = PersongroupCommonUtil.getDepartMent();
private Map<String,Object> subCompanyMap = PersongroupCommonUtil.getSubCompany();
private Map<String,Object> classesInformationMap = PersongroupCommonUtil.getClassesInformation();
private Map<String,Object> candidateTeamMap = PersongroupCommonUtil.getCandidateTeam();
@Override @Override
public Map<String, Object> queryDataTable(Map<String, Object> params) { public Map<String, Object> queryDataTable(Map<String, Object> params) {
@ -65,9 +60,6 @@ public class SchedulingResultsServiceImpl extends Service implements SchedulingR
} }
dataTableList = dataTableList.subList(startindex,endindex); dataTableList = dataTableList.subList(startindex,endindex);
} }
for (Map<String, Object> map:dataTableList){
SetBrowSerName(map);
}
resultMap.put("data",dataTableList); resultMap.put("data",dataTableList);
}else { }else {
@ -76,61 +68,12 @@ public class SchedulingResultsServiceImpl extends Service implements SchedulingR
int total = Integer.valueOf(result.get("total").toString()); int total = Integer.valueOf(result.get("total").toString());
params.put("total",total); params.put("total",total);
resultMap = commandExecutor.execute(new GetDatatableCmd(params)); resultMap = commandExecutor.execute(new GetDatatableCmd(params));
List<Map<String,Object>> dataTable = (List<Map<String,Object>>)resultMap.get("data");
for (Map<String,Object> map :dataTable){
SetBrowSerName(map);
}
resultMap.put("total",total); resultMap.put("total",total);
} }
return resultMap; return resultMap;
} }
/**
*
* @param map
*/
public void SetBrowSerName(Map<String,Object> map){
log.debug("personGroupMap :{},departMentMap:{},subCompanyMap:{},classesInformationMap:{},candidateTeamMap:{}"
,personGroupMap.hashCode(),departMentMap.hashCode(),subCompanyMap.hashCode(),classesInformationMap.hashCode(),candidateTeamMap.hashCode());
String dxlx = Util.null2String(map.get("dxlx"));
if (dxlx.equals("0")){
//人员
String lastname = Util.null2String(map.get("lastname"));
String pbdxry = Util.null2String(map.get("pbdxry"));
pbdxry = pbdxry +"-"+lastname;
map.put("pbdxry",pbdxry);
}else if (dxlx.equals("1")){
//人员分组
String pbdxryfz = Util.null2String(map.get("pbdxryfz"));
pbdxryfz= pbdxryfz+"-"+personGroupMap.get(pbdxryfz);
map.put("pbdxryfz",pbdxryfz);
}else if (dxlx.equals("2")){
//部门
String pbdxbm = Util.null2String(map.get("pbdxbm"));
pbdxbm= pbdxbm+"-"+departMentMap.get(pbdxbm);
map.put("pbdxbm",pbdxbm);
}else if (dxlx.equals("3")){
//分部
String pbdxfb = Util.null2String(map.get("pbdxfb"));
pbdxfb= pbdxfb+"-"+subCompanyMap.get(pbdxfb);
map.put("pbdxfb",pbdxfb);
}
String bcxx = Util.null2String(map.get("bcxx"));
String hxbz = Util.null2String(map.get("hxbz"));
if (!"".equals(bcxx)){
bcxx = bcxx +"-"+classesInformationMap.get(bcxx);
map.put("bcxx",bcxx);
}
if (!"".equals(hxbz)){
hxbz = hxbz +"-"+candidateTeamMap.get(hxbz);
map.put("hxbz",hxbz);
}
}
@Override @Override
public Map<String, Object> queryDataTableActualUse(Map<String, Object> params) { public Map<String, Object> queryDataTableActualUse(Map<String, Object> params) {

@ -1,11 +1,13 @@
package com.engine.jucailinkq.attendance.component.persongroup.web; package com.engine.jucailinkq.attendance.component.persongroup.web;
import com.engine.jucailinkq.attendance.component.persongroup.commonutil.PersongroupCommonUtil;
import com.engine.jucailinkq.attendance.component.persongroup.service.SchedulingResultsService; import com.engine.jucailinkq.attendance.component.persongroup.service.SchedulingResultsService;
import com.engine.jucailinkq.attendance.component.persongroup.service.impl.SchedulingResultsServiceImpl; import com.engine.jucailinkq.attendance.component.persongroup.service.impl.SchedulingResultsServiceImpl;
import com.engine.jucailinkq.common.util.ApiReturnTools; import com.engine.jucailinkq.common.util.ApiReturnTools;
import com.engine.common.util.ParamUtil; import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -13,6 +15,7 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.core.Context; import javax.ws.rs.core.Context;
import java.util.List;
import java.util.Map; import java.util.Map;
@Slf4j @Slf4j
public class SchedulingResultsAction { public class SchedulingResultsAction {
@ -29,6 +32,53 @@ public class SchedulingResultsAction {
try { try {
Map<String,Object> paramMap = ParamUtil.request2Map(request); Map<String,Object> paramMap = ParamUtil.request2Map(request);
Map<String,Object> dataMap = basicsetService.queryDataTable(paramMap); Map<String,Object> dataMap = basicsetService.queryDataTable(paramMap);
List<Map<String,Object>> dataTable = (List<Map<String,Object>>)dataMap.get("data");
Map<String,Object> personGroupMap = PersongroupCommonUtil.getPersonGroup();
Map<String,Object> departMentMap = PersongroupCommonUtil.getDepartMent();
Map<String,Object> subCompanyMap = PersongroupCommonUtil.getSubCompany();
Map<String,Object> classesInformationMap = PersongroupCommonUtil.getClassesInformation();
Map<String,Object> candidateTeamMap = PersongroupCommonUtil.getCandidateTeam();
Map<String,Object> personName = PersongroupCommonUtil.getPersonName();
for (Map<String,Object> map :dataTable){
String dxlx = Util.null2String(map.get("dxlx"));
if (dxlx.equals("0")){
//人员
String pbdxry = Util.null2String(map.get("pbdxry"));
String lastname = Util.null2String(personName.get(pbdxry));
pbdxry = pbdxry +"-"+lastname;
map.put("pbdxry",pbdxry);
}else if (dxlx.equals("1")){
//人员分组
String pbdxryfz = Util.null2String(map.get("pbdxryfz"));
pbdxryfz= pbdxryfz+"-"+personGroupMap.get(pbdxryfz);
map.put("pbdxryfz",pbdxryfz);
}else if (dxlx.equals("2")){
//部门
String pbdxbm = Util.null2String(map.get("pbdxbm"));
pbdxbm= pbdxbm+"-"+departMentMap.get(pbdxbm);
map.put("pbdxbm",pbdxbm);
}else if (dxlx.equals("3")){
//分部
String pbdxfb = Util.null2String(map.get("pbdxfb"));
pbdxfb= pbdxfb+"-"+subCompanyMap.get(pbdxfb);
map.put("pbdxfb",pbdxfb);
}
String bcxx = Util.null2String(map.get("bcxx"));
String hxbz = Util.null2String(map.get("hxbz"));
if (!"".equals(bcxx)){
bcxx = bcxx +"-"+classesInformationMap.get(bcxx);
map.put("bcxx",bcxx);
}
if (!"".equals(hxbz)){
hxbz = hxbz +"-"+candidateTeamMap.get(hxbz);
map.put("hxbz",hxbz);
}
}
return ApiReturnTools.success(dataMap); return ApiReturnTools.success(dataMap);
}catch (Exception e){ }catch (Exception e){
log.error("execute fail,catch error: [{}]",e); log.error("execute fail,catch error: [{}]",e);

Loading…
Cancel
Save