出勤分析适配人员部门变化

main
liuliang 7 months ago
parent ec483e255d
commit 4aa022373a

@ -122,8 +122,8 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
} }
/** 加班计划*/ /** 加班计划*/
Map<String,List<Map<String,Object>>> overtimePlanMap = allOverPlanList.stream().filter(e->DateUtil.getTime("gsrq").compareTo(DateUtil.getTime(params.get("startDate").toString())) >=0 && Map<String,List<Map<String,Object>>> overtimePlanMap = allOverPlanList.stream().filter(e->DateUtil.getTime(e.get("gsrq").toString()).compareTo(DateUtil.getTime(params.get("startDate").toString())) >=0 &&
DateUtil.getTime("gsrq").compareTo(DateUtil.getTime(params.get("endDate").toString())) <=0).collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq")))); DateUtil.getTime(e.get("gsrq").toString()).compareTo(DateUtil.getTime(params.get("endDate").toString())) <=0).collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq"))));
//考勤项目 //考勤项目
for (Map.Entry<String,List<Map<String,Object>>> e: overtimePlanMap.entrySet()){ for (Map.Entry<String,List<Map<String,Object>>> e: overtimePlanMap.entrySet()){

@ -0,0 +1,100 @@
package com.engine.jucailinkq.attendance.attendanceanalysis.cmd.item;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.ExtensionClassHolder;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import weaver.hrm.company.DepartmentComInfo;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@Slf4j
public class GerPersonAttendanceItemsCmd extends AbstractCommonCommand<Map<String,Object>> {
public GerPersonAttendanceItemsCmd(Map<String, Object> params){
this.params=params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
String userId = Util.null2String(params.get("userId"));
String departmentId = Util.null2String(params.get("departmentId"));
String subCompanyId = Util.null2String(params.get("subCompanyId"));
String anysisyDate = Util.null2String(params.get("anysisyDate"));
String seclevel = Util.null2String(params.get("seclevel"));
Map<String, List<Map<String, String>>> personData = (Map<String, List<Map<String, String>>>)params.get("personData");
Map<String, List<Map<String, String>>> personOrganzationMap = (Map<String, List<Map<String, String>>>)params.get("personOrganzationMap");
Map<String, List<Map<String, String>>> departMentMap = (Map<String, List<Map<String, String>>>)params.get("departMentMap");
Map<String, List<Map<String, String>>> subCompanyMap = (Map<String, List<Map<String, String>>>)params.get("subCompanyMap");
Set<String> attendanceItems = Sets.newHashSet();
//人力资源
if (personData.get(userId) != null){
for (Map<String, String> personMap :personData.get(userId)){
attendanceItems.add(personMap.get("dataid"));
}
}
//人员分组
Map<String,List<Map<String,Object>>> personBelongGroup = ExtensionClassHolder.getPersonBelongGroupThreadLocal();
List<Map<String,Object>> personnelGroups = personBelongGroup.get(userId) == null? Lists.newArrayList():personBelongGroup.get(userId);
personnelGroups = personnelGroups.stream().filter(e->(Util.null2String(e.get("bdate")).equals("") || DateUtil.getTime(e.get("bdate").toString()).compareTo(DateUtil.getTime(anysisyDate))<=0) &&
(Util.null2String(e.get("edate")).equals("") || DateUtil.getTime(e.get("edate").toString()).compareTo(DateUtil.getTime(anysisyDate))>=0)).collect(Collectors.toList());
Set<String> personnelGroupIds = personnelGroups.stream().map(e->e.get("mainid").toString()).collect(Collectors.toSet());
for (Map.Entry<String, List<Map<String, String>>> entry: personOrganzationMap.entrySet()){
String personnelGroupId = entry.getKey();
if (personnelGroupIds.contains(personnelGroupId)){
for (Map<String, String> personGroupMap :entry.getValue()){
attendanceItems.add(personGroupMap.get("dataid"));
}
}
}
//部门
try {
Map<String,String> petDepart = ExtensionClassHolder.getPetDepartMentThreadLocal();
String pdeptids = "";
if (petDepart != null){
pdeptids = petDepart.get(departmentId);
}
if (pdeptids == null || pdeptids.equals("")){
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(params.get("departmentId")), pdeptids);
pdeptids = departmentId + pdeptids;
}
for (Map.Entry<String, List<Map<String, String>>> entry: departMentMap.entrySet()){
String id = entry.getKey();
for (String pdeptid : pdeptids.split(",")){
if (pdeptid.equals(id)){
for (Map<String, String> map :entry.getValue()){
attendanceItems.add(map.get("dataid"));
}
}
}
}
}catch (Exception e){
log.error("catch error :{}",e);
}
//分部
if (subCompanyMap.get(subCompanyId) != null){
for (Map<String, String> map :subCompanyMap.get(subCompanyId)){
attendanceItems.add(map.get("dataid"));
}
}
Map<String,Object> resultMap = Maps.newHashMap();
resultMap.put("attendanceItems",attendanceItems);
return resultMap;
}
}

@ -122,7 +122,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
/** /**
* *
*/ */
if (CheckBoxEnum.CHECKED.getKey().equals(ksjbbxydk)) { if (startClockPointDTO.size()>0) {
Map<String, Object> clcokInTimeData = clcokInTimeMap.get(kssj); Map<String, Object> clcokInTimeData = clcokInTimeMap.get(kssj);
if (clcokInTimeData == null) { if (clcokInTimeData == null) {
log.debug("加班开始时间漏卡: {},clcokInTimeData:{}", kssj, clcokInTimeMap); log.debug("加班开始时间漏卡: {},clcokInTimeData:{}", kssj, clcokInTimeMap);
@ -138,7 +138,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
} else { } else {
realityStartTime = kssj; realityStartTime = kssj;
} }
if (CheckBoxEnum.CHECKED.getKey().equals(jsjbbxydk)) { if (endClockPointDTO.size()>0) {
Map<String, Object> clcokInTimeData = clcokInTimeMap.get(jssj); Map<String, Object> clcokInTimeData = clcokInTimeMap.get(jssj);
if (clcokInTimeData == null) { if (clcokInTimeData == null) {
log.debug("加班结束时间漏卡: {},clcokInTimeData:{}", jssj, clcokInTimeData); log.debug("加班结束时间漏卡: {},clcokInTimeData:{}", jssj, clcokInTimeData);
@ -154,6 +154,9 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
} else { } else {
realityEndime = jssj; realityEndime = jssj;
} }
if (DateUtil.getTime(realityEndime).compareTo(DateUtil.getTime(realityStartTime)) < 0){
realityEndime=realityStartTime;
}
jbsc = jbsc * 60; jbsc = jbsc * 60;
if (CheckBoxEnum.CHECKED.getKey().equals(tqdkjrjb) && CheckBoxEnum.CHECKED.getKey().equals(ksjbbxydk)) { if (CheckBoxEnum.CHECKED.getKey().equals(tqdkjrjb) && CheckBoxEnum.CHECKED.getKey().equals(ksjbbxydk)) {
//提前打卡开始的时长计入加班 //提前打卡开始的时长计入加班
@ -206,6 +209,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
//当存在迟到异常被抵消的情况 //当存在迟到异常被抵消的情况
if (collect1.size() > 0) { if (collect1.size() > 0) {
beLateTime = 0; beLateTime = 0;
realityStartTime = kssjTime;
} }
} }
@ -249,6 +253,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
//当存在早退异常被抵消的情况 //当存在早退异常被抵消的情况
if (collect2.size() > 0) { if (collect2.size() > 0) {
leaveElaryTime = 0; leaveElaryTime = 0;
realityEndime=jssjTime;
} }
} }

@ -58,7 +58,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
//查询所有在职人员 //查询所有在职人员
String queryUserSql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where status <> '5' and status <> '4' and status <> '7'"; String queryUserSql = "select id,departmentid,subcompanyid1,companystartdate,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7'";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql); List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
@ -115,7 +115,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
dataList.addAll(makeUpList); dataList.addAll(makeUpList);
} }
sql = "select sjzt,sgsj,ygid,rq,j1,c1,j2,c2,j3,c3,j4,c4,j5,c5,j6,c6,j7,c7,j8,c8 from uf_jcl_kq_cqjg where rq in ("+dateStrs+")"; sql = "select sjzt,sgsj,bc,fbid,bm,ygid,rq,j1,c1,j2,c2,j3,c3,j4,c4,j5,c5,j6,c6,j7,c7,j8,c8 from uf_jcl_kq_cqjg where rq in ("+dateStrs+")";
List<Map<String,Object>> resultList = DbTools.getSqlToList(sql); List<Map<String,Object>> resultList = DbTools.getSqlToList(sql);
if (resultList.size() > 0){ if (resultList.size() > 0){
attendaceResult.addAll(resultList); attendaceResult.addAll(resultList);
@ -132,10 +132,9 @@ public class AttendanceAnalysisJob extends BaseCronJob {
Map<String,Object> params = Maps.newHashMap(); Map<String,Object> params = Maps.newHashMap();
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqfa"); String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqfa");
params.put("modeId",modeId); params.put("modeId",modeId);
Map<String,Object> resultMap = commonService.getPersonBySuitOrganzation(params); Map<String,Object> attendancePlanMap = commonService.GetAllPersonBySuitOrganzationCmd(params);
Map<String,Object> attendacnePlanItems = basicsetService.getAttendanceItemsGroupByAttendancePlanDataCmd(); Map<String,Object> attendacnePlanItems = basicsetService.getAttendanceItemsGroupByAttendancePlanDataCmd();
//人员所拥有的所有考勤方案
Map<String,List<Map<String,String>>> personAttendancePlan = (Map<String,List<Map<String,String>>>)resultMap.get("personAllData");
//通用考勤项目 //通用考勤项目
List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)attendacnePlanItems.get("generalAttendanceItems"); List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)attendacnePlanItems.get("generalAttendanceItems");
//考勤方案对应所属的考勤项目 //考勤方案对应所属的考勤项目
@ -204,19 +203,10 @@ public class AttendanceAnalysisJob extends BaseCronJob {
paramMap.put("endDate",DateUtil.beforeDay(useDate,1)); paramMap.put("endDate",DateUtil.beforeDay(useDate,1));
paramMap.put("resourceId",userId); paramMap.put("resourceId",userId);
List<Map<String,String>> attendancePlanList = personAttendancePlan.get(userId)==null?Lists.newArrayList():personAttendancePlan.get(userId);
List<Map<String, Object>> attendanceItems =Lists.newArrayList();
for (Map<String,String> attendancePlan :attendancePlanList){
if (attendanceItemGroupByPlan.get(attendancePlan.get("dataid")) != null &&
attendanceItemGroupByPlan.get(attendancePlan.get("dataid")).size()>0){
attendanceItems.addAll(attendanceItemGroupByPlan.get(attendancePlan.get("dataid")));
}
}
attendanceItems.addAll(generalAttendanceItems);
analysisParam.put("generalAttendanceItems",generalAttendanceItems); analysisParam.put("generalAttendanceItems",generalAttendanceItems);
analysisParam.put("attendancePlanList",attendancePlanList); analysisParam.put("attendancePlanMap",attendancePlanMap);
analysisParam.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan); analysisParam.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan);
analysisParam.put("comprehensiveWorkingHourList",personComprehensiveWorkingHours.get(userId)==null?Lists.newArrayList():personComprehensiveWorkingHours.get(userId)); analysisParam.put("comprehensiveWorkingHourList",personComprehensiveWorkingHours.get(userId)==null?Lists.newArrayList():personComprehensiveWorkingHours.get(userId));
analysisParam.put("workingHourGroupBy",workingHourGroupBy); analysisParam.put("workingHourGroupBy",workingHourGroupBy);
@ -234,6 +224,10 @@ public class AttendanceAnalysisJob extends BaseCronJob {
analysisParam.put("evectionList",evectionList); analysisParam.put("evectionList",evectionList);
analysisParam.put("askforList",askforList); analysisParam.put("askforList",askforList);
analysisParam.put("hxbzList",hxbzList); analysisParam.put("hxbzList",hxbzList);
analysisParam.put("seclevel",Util.null2String(userMap.get("seclevel")));
analysisParam.put("departmentId",Util.null2String(userMap.get("departmentid")));
analysisParam.put("subCompanyId",Util.null2String(userMap.get("subcompanyid1")));
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap(); Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();
List<Map<String, Object>> attendaceResultByUser = attendaceGroupById.get(userId); List<Map<String, Object>> attendaceResultByUser = attendaceGroupById.get(userId);

@ -57,4 +57,9 @@ public interface UtilService {
* @return * @return
*/ */
Map<String, Object> getAttendanceCycle(Map<String,Object> params); Map<String, Object> getAttendanceCycle(Map<String,Object> params);
/**
*
*/
Map<String, Object> getAttendanceItems(Map<String,Object> params);
} }

@ -41,14 +41,15 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
String bdlx = Util.null2String(abnormalClockInList.get(i).get("bdlx")); String bdlx = Util.null2String(abnormalClockInList.get(i).get("bdlx"));
String classStartTime = Util.null2String(abnormalClockInList.get(i).get("classStartTime")); String classStartTime = Util.null2String(abnormalClockInList.get(i).get("classStartTime"));
String classEndTime = Util.null2String(abnormalClockInList.get(i).get("classEndTime")); String classEndTime = Util.null2String(abnormalClockInList.get(i).get("classEndTime"));
String betweenMinutes = Util.null2String(abnormalClockInList.get(i).get("betweenMinutes"));
if ((zysd.contains(Utils.getWorkFor(bdlx)) || zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())) && if ((zysd.contains(Utils.getWorkFor(bdlx)) || zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())) &&
!"".equals(classStartTime) && !"".equals(classEndTime)){ !"".equals(classStartTime) && !"".equals(classEndTime)){
Map<String,Object> leaveMap = Maps.newHashMap(); Map<String,Object> leaveMap = Maps.newHashMap();
leaveMap.put("kssj",kssj); leaveMap.put("kssj",kssj);
leaveMap.put("jssj",jssj); leaveMap.put("jssj",jssj);
int betweenTime = Utils.removeRestTime(classStartTime,classEndTime,scheduleResult,analysisDate); int betweenTime = Integer.valueOf(betweenMinutes);
int intersectionTime = Utils.getIntersectionTime(classStartTime,classEndTime,leaveMap,scheduleResult,analysisDate); int intersectionTime = Utils.getIntersectionTime(classStartTime,classEndTime,leaveMap,scheduleResult,analysisDate);
if (betweenTime == intersectionTime){ if (betweenTime <= intersectionTime){
offsetAskForLeaveAnomaly.add(abnormalClockInList.get(i)); offsetAskForLeaveAnomaly.add(abnormalClockInList.get(i));
}else { }else {
String hsdw = Util.null2String(abnormalClockInList.get(i).get("hsdw")); String hsdw = Util.null2String(abnormalClockInList.get(i).get("hsdw"));
@ -56,6 +57,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
double itemduration = Utils.getItemduration(hsl,hsdw,betweenTime-intersectionTime, AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString())); double itemduration = Utils.getItemduration(hsl,hsdw,betweenTime-intersectionTime, AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
abnormalClockInList.get(i).put("itemduration",itemduration); abnormalClockInList.get(i).put("itemduration",itemduration);
abnormalClockInList.get(i).put("betweenMinutes",betweenTime-intersectionTime); abnormalClockInList.get(i).put("betweenMinutes",betweenTime-intersectionTime);
} }
} }
} }

@ -37,15 +37,16 @@ public class EvectionServiceImpl extends Service implements EvectionService {
String bdlx = Util.null2String(abnormalClockInList.get(i).get("bdlx")); String bdlx = Util.null2String(abnormalClockInList.get(i).get("bdlx"));
String classStartTime = Util.null2String(abnormalClockInList.get(i).get("classStartTime")); String classStartTime = Util.null2String(abnormalClockInList.get(i).get("classStartTime"));
String classEndTime = Util.null2String(abnormalClockInList.get(i).get("classEndTime")); String classEndTime = Util.null2String(abnormalClockInList.get(i).get("classEndTime"));
String betweenMinutes = Util.null2String(abnormalClockInList.get(i).get("betweenMinutes"));
if ((zysd.contains(Utils.getWorkFor(bdlx)) || zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())) && if ((zysd.contains(Utils.getWorkFor(bdlx)) || zysd.contains(WorkForTimeEnum.ALL_TIME.getKey())) &&
!"".equals(classStartTime) && !"".equals(classEndTime)) { !"".equals(classStartTime) && !"".equals(classEndTime)) {
Map<String,Object> leaveMap = Maps.newHashMap(); Map<String,Object> leaveMap = Maps.newHashMap();
leaveMap.put("kssj",kssj); leaveMap.put("kssj",kssj);
leaveMap.put("jssj",jssj); leaveMap.put("jssj",jssj);
int betweenTime = Utils.removeRestTime(classStartTime,classEndTime,scheduleResult,analysisDate); int betweenTime = Integer.valueOf(betweenMinutes);
int intersectionTime = Utils.getIntersectionTime(classStartTime,classEndTime,leaveMap,scheduleResult,analysisDate); int intersectionTime = Utils.getIntersectionTime(classStartTime,classEndTime,leaveMap,scheduleResult,analysisDate);
if (betweenTime == intersectionTime){ if (betweenTime <= intersectionTime){
offsetEvectionAnomaly.add(abnormalClockInList.get(i)); offsetEvectionAnomaly.add(abnormalClockInList.get(i));
}else { }else {
String hsdw = Util.null2String(abnormalClockInList.get(i).get("hsdw")); String hsdw = Util.null2String(abnormalClockInList.get(i).get("hsdw"));

@ -58,7 +58,6 @@ public class ShiftServiceImpl extends Service implements ShiftService {
// String bcSql = "select * from uf_jcl_kq_hxbz_dt1 where mainid = " + shiftTeamId; // String bcSql = "select * from uf_jcl_kq_hxbz_dt1 where mainid = " + shiftTeamId;
List<Map<String, Object>> bcData = hxbzList.stream().filter(e->shiftTeamId.equals(e.get("mainid"))).collect(Collectors.toList()); List<Map<String, Object>> bcData = hxbzList.stream().filter(e->shiftTeamId.equals(e.get("mainid"))).collect(Collectors.toList());
if (bcData.size() > 0) { if (bcData.size() > 0) {
log.info("compute waitCompareResultList start");
List<Map<String, Object>> waitCompareResultList = new ArrayList<>(); List<Map<String, Object>> waitCompareResultList = new ArrayList<>();
//循环匹配,输出匹配结果 //循环匹配,输出匹配结果
for (Map<String, Object> bcMap : bcData) { for (Map<String, Object> bcMap : bcData) {
@ -67,9 +66,7 @@ public class ShiftServiceImpl extends Service implements ShiftService {
waitCompareMap.put("priorityValue", Util.null2String(bcMap.get("yxj"))); waitCompareMap.put("priorityValue", Util.null2String(bcMap.get("yxj")));
waitCompareResultList.add(waitCompareMap); waitCompareResultList.add(waitCompareMap);
} }
log.info("compute waitCompareResultList end");
//比较匹配结果 //比较匹配结果
log.info("compareMap start");
for (Map<String, Object> compareMap : waitCompareResultList) { for (Map<String, Object> compareMap : waitCompareResultList) {
//分析每组数据生成对应的ABCDE //分析每组数据生成对应的ABCDE
compareMap = countMatchItem(compareMap); compareMap = countMatchItem(compareMap);
@ -117,9 +114,7 @@ public class ShiftServiceImpl extends Service implements ShiftService {
result = resultE.compareTo(compareE) > 0 ? compareMap : result; result = resultE.compareTo(compareE) > 0 ? compareMap : result;
} }
} }
log.info("compareMap end");
//全天没有打卡时,看上一个工作日的班次为优先,如果前一个工作日也没有班次,按优先级 //全天没有打卡时,看上一个工作日的班次为优先,如果前一个工作日也没有班次,按优先级
log.info("maxPriorityResult start");
if (result == null) { if (result == null) {
//获取上一个工作日的班次 //获取上一个工作日的班次
// String lastWorkDayInfoSql = "select * from uf_jcl_kq_cqjg where rqlx = 0 and ygid = " + empId + " and rq < '" + punchDate + "' order by rq desc limit 1;"; // String lastWorkDayInfoSql = "select * from uf_jcl_kq_cqjg where rqlx = 0 and ygid = " + empId + " and rq < '" + punchDate + "' order by rq desc limit 1;";
@ -134,7 +129,7 @@ public class ShiftServiceImpl extends Service implements ShiftService {
result = maxPriorityResult; result = maxPriorityResult;
} }
} }
log.info("maxPriorityResult end");
} }
} }
@ -371,7 +366,7 @@ public class ShiftServiceImpl extends Service implements ShiftService {
//sql = "select a.id,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.gsrq>=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1"; //sql = "select a.id,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.gsrq>=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1";
// Map<String,List<Map<String,Object>>> overtimePlanMap = DbTools.getSqlToList(sql,classesParamMap.get("pbdx"),punchDate,punchDate).stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq")))); // Map<String,List<Map<String,Object>>> overtimePlanMap = DbTools.getSqlToList(sql,classesParamMap.get("pbdx"),punchDate,punchDate).stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq"))));
Map<String,List<Map<String,Object>>> overtimePlanMap = allOverPlanList.stream().filter(e->DateUtil.getTime("gsrq").compareTo(DateUtil.getTime(punchDate)) ==0).collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq")))); Map<String,List<Map<String,Object>>> overtimePlanMap = allOverPlanList.stream().filter(e->DateUtil.getTime(e.get("gsrq").toString()).compareTo(DateUtil.getTime(punchDate)) ==0).collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq"))));
//考勤项目 //考勤项目

@ -3,6 +3,7 @@ package com.engine.jucailinkq.attendance.attendanceanalysis.service.impl;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.*; import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.*;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.biz.AbstractAdjustClockPointAction; import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.biz.AbstractAdjustClockPointAction;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.GetClockInPointCmd; import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.GetClockInPointCmd;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.item.GerPersonAttendanceItemsCmd;
import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO; import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;
import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointInfo; import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointInfo;
import com.engine.jucailinkq.attendance.attendanceanalysis.service.UtilService; import com.engine.jucailinkq.attendance.attendanceanalysis.service.UtilService;
@ -248,4 +249,9 @@ public class UtilServiceImpl extends Service implements UtilService {
public Map<String, Object> getAttendanceCycle(Map<String, Object> params) { public Map<String, Object> getAttendanceCycle(Map<String, Object> params) {
return commandExecutor.execute(new GetAttendanceCycleCmd(params)); return commandExecutor.execute(new GetAttendanceCycleCmd(params));
} }
@Override
public Map<String,Object> getAttendanceItems(Map<String, Object> params) {
return commandExecutor.execute(new GerPersonAttendanceItemsCmd(params));
}
} }

@ -48,9 +48,9 @@ public class AttendanceanalysisAction {
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-06-20"); // paramMap.put("startDate","2024-11-05");
// paramMap.put("endDate","2024-06-20"); // paramMap.put("endDate","2024-11-05");
// paramMap.put("userIds","36"); // paramMap.put("userIds","82");
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);
@ -69,10 +69,9 @@ public class AttendanceanalysisAction {
Map<String,Object> params = Maps.newHashMap(); Map<String,Object> params = Maps.newHashMap();
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqfa"); String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqfa");
params.put("modeId",modeId); params.put("modeId",modeId);
Map<String,Object> resultMap = commonService.getPersonBySuitOrganzation(params); Map<String,Object> attendancePlanMap = commonService.GetAllPersonBySuitOrganzationCmd(params);
Map<String,Object> attendacnePlanItems = basicsetService.getAttendanceItemsGroupByAttendancePlanDataCmd(); Map<String,Object> attendacnePlanItems = basicsetService.getAttendanceItemsGroupByAttendancePlanDataCmd();
//人员所拥有的所有考勤方案 //人员所拥有的所有考勤方案
Map<String,List<Map<String,String>>> personAttendancePlan = (Map<String,List<Map<String,String>>>)resultMap.get("personAllData");
//通用考勤项目 //通用考勤项目
List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)attendacnePlanItems.get("generalAttendanceItems"); List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)attendacnePlanItems.get("generalAttendanceItems");
//考勤方案对应所属的考勤项目 //考勤方案对应所属的考勤项目
@ -98,7 +97,7 @@ public class AttendanceanalysisAction {
/**排班结果*/ /**排班结果*/
String querySchedulesql = "select a.id as keyid,a.* from uf_pbjg a where bcrq >=? and bcrq<=? order by bcrq"; String querySchedulesql = "select a.id as keyid,a.* from uf_pbjg a where bcrq >=? and bcrq<=? order by bcrq";
List<Map<String,Object>> allScheduleList = DbTools.getSqlToList(querySchedulesql,startBeforeDate,endAfterDate); List<Map<String,Object>> allScheduleList = DbTools.getSqlToList(querySchedulesql,startDate,endDate);
/**加班计划*/ /**加班计划*/
String queryOverplansql = "select a.id,b.jbry,b.ksrq,b.kssj,b.jblx,b.jsrq,b.jssj,b.jbsc,b.gsrq,b.d_jxgz,b.jxsc from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.gsrq >=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1"; String queryOverplansql = "select a.id,b.jbry,b.ksrq,b.kssj,b.jblx,b.jsrq,b.jssj,b.jbsc,b.gsrq,b.d_jxgz,b.jxsc from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.gsrq >=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1";
List<Map<String,Object>> allOverPlanList = DbTools.getSqlToList(queryOverplansql,startDate,endDate); List<Map<String,Object>> allOverPlanList = DbTools.getSqlToList(queryOverplansql,startDate,endDate);
@ -117,7 +116,7 @@ public class AttendanceanalysisAction {
List<Map<String,Object>> hxbzList = DbTools.getSqlToList(queryHxbz); List<Map<String,Object>> hxbzList = DbTools.getSqlToList(queryHxbz);
String queryUserSql = "select id,companystartdate from hrmresource where status <> '5' and status <> '4' and status <> '7'"; String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where status <> '5' and status <> '4' and status <> '7'";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql); List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and signdate >= ? and signdate <= ? order by signdate,signtime"; String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and signdate >= ? and signdate <= ? order by signdate,signtime";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate); List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
@ -130,7 +129,7 @@ public class AttendanceanalysisAction {
dataList = dataList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList()); dataList = dataList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid")))); Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
sql = "select sjzt,sgsj,ygid,rq,j1,c1,j2,c2,j3,c3,j4,c4,j5,c5,j6,c6,j7,c7,j8,c8 from uf_jcl_kq_cqjg where rq>=? and rq<=?"; sql = "select sjzt,sgsj,ygid,bc,fbid,bm,rq,j1,c1,j2,c2,j3,c3,j4,c4,j5,c5,j6,c6,j7,c7,j8,c8 from uf_jcl_kq_cqjg where rq>=? and rq<=?";
List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate); List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString())); Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString()));
@ -157,7 +156,7 @@ public class AttendanceanalysisAction {
Map<String,Object> analysisParam = Maps.newHashMap(); Map<String,Object> analysisParam = Maps.newHashMap();
analysisParam.put("generalAttendanceItems",generalAttendanceItems); analysisParam.put("generalAttendanceItems",generalAttendanceItems);
analysisParam.put("attendancePlanList",personAttendancePlan.get(userId)==null?Lists.newArrayList():personAttendancePlan.get(userId)); analysisParam.put("attendancePlanMap",attendancePlanMap);
analysisParam.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan); analysisParam.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan);
analysisParam.put("comprehensiveWorkingHourList",personComprehensiveWorkingHours.get(userId)==null?Lists.newArrayList():personComprehensiveWorkingHours.get(userId)); analysisParam.put("comprehensiveWorkingHourList",personComprehensiveWorkingHours.get(userId)==null?Lists.newArrayList():personComprehensiveWorkingHours.get(userId));
analysisParam.put("workingHourGroupBy",workingHourGroupBy); analysisParam.put("workingHourGroupBy",workingHourGroupBy);
@ -167,6 +166,10 @@ public class AttendanceanalysisAction {
analysisParam.put("evectionList",evectionGroup.get(userId)==null?Lists.newArrayList():evectionGroup.get(userId)); analysisParam.put("evectionList",evectionGroup.get(userId)==null?Lists.newArrayList():evectionGroup.get(userId));
analysisParam.put("askforList",askforGroup.get(userId)==null?Lists.newArrayList():askforGroup.get(userId)); analysisParam.put("askforList",askforGroup.get(userId)==null?Lists.newArrayList():askforGroup.get(userId));
analysisParam.put("hxbzList",hxbzList); analysisParam.put("hxbzList",hxbzList);
analysisParam.put("seclevel",Util.null2String(userMap.get("seclevel")));
analysisParam.put("departmentId",Util.null2String(userMap.get("departmentid")));
analysisParam.put("subCompanyId",Util.null2String(userMap.get("subcompanyid1")));
@ -216,7 +219,7 @@ public class AttendanceanalysisAction {
String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and userid in ("+userIds+") and signdate >= ? and signdate <= ? order by signdate,signtime"; String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and userid in ("+userIds+") and signdate >= ? and signdate <= ? order by signdate,signtime";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate); List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
String queryUserSql = "select id,companystartdate from hrmresource where id in ("+userIds+")"; String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where id in ("+userIds+")";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql); List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
Map<String,List<Map<String,Object>>> userGroupMap = userList.stream().collect(Collectors.groupingBy(e->e.get("id").toString())); Map<String,List<Map<String,Object>>> userGroupMap = userList.stream().collect(Collectors.groupingBy(e->e.get("id").toString()));
@ -231,7 +234,7 @@ public class AttendanceanalysisAction {
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid")))); Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
sql = "select sjzt,sgsj,ygid,rq,j1,c1,j2,c2,j3,c3,j4,c4,j5,c5,j6,c6,j7,c7,j8,c8 from uf_jcl_kq_cqjg where rq>=? and rq<=? and ygid in ("+userIds+")"; sql = "select sjzt,sgsj,ygid,bc,fbid,bm,rq,j1,c1,j2,c2,j3,c3,j4,c4,j5,c5,j6,c6,j7,c7,j8,c8 from uf_jcl_kq_cqjg where rq>=? and rq<=? and ygid in ("+userIds+")";
List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate); List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString())); Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString()));
@ -247,7 +250,7 @@ public class AttendanceanalysisAction {
Map<String,Object> analysisParam = Maps.newHashMap(); Map<String,Object> analysisParam = Maps.newHashMap();
analysisParam.put("generalAttendanceItems",generalAttendanceItems); analysisParam.put("generalAttendanceItems",generalAttendanceItems);
analysisParam.put("attendancePlanList",personAttendancePlan.get(userId)==null?Lists.newArrayList():personAttendancePlan.get(userId)); analysisParam.put("attendancePlanMap",attendancePlanMap);
analysisParam.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan); analysisParam.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan);
analysisParam.put("comprehensiveWorkingHourList",personComprehensiveWorkingHours.get(userId)==null?Lists.newArrayList():personComprehensiveWorkingHours.get(userId)); analysisParam.put("comprehensiveWorkingHourList",personComprehensiveWorkingHours.get(userId)==null?Lists.newArrayList():personComprehensiveWorkingHours.get(userId));
analysisParam.put("workingHourGroupBy",workingHourGroupBy); analysisParam.put("workingHourGroupBy",workingHourGroupBy);
@ -257,6 +260,9 @@ public class AttendanceanalysisAction {
analysisParam.put("evectionList",evectionGroup.get(userId)==null?Lists.newArrayList():evectionGroup.get(userId)); analysisParam.put("evectionList",evectionGroup.get(userId)==null?Lists.newArrayList():evectionGroup.get(userId));
analysisParam.put("askforList",askforGroup.get(userId)==null?Lists.newArrayList():askforGroup.get(userId)); analysisParam.put("askforList",askforGroup.get(userId)==null?Lists.newArrayList():askforGroup.get(userId));
analysisParam.put("hxbzList",hxbzList); analysisParam.put("hxbzList",hxbzList);
analysisParam.put("seclevel",userGroupMap.get(userId).get(0).get("seclevel"));
analysisParam.put("departmentId",userGroupMap.get(userId).get(0).get("departmentid"));
analysisParam.put("subCompanyId",userGroupMap.get(userId).get(0).get("subcompanyid1"));
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap(); Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();

@ -10,10 +10,12 @@ import com.engine.jucailinkq.attendance.enums.ClassSegmentTypeEnum;
import com.engine.jucailinkq.common.util.CommonUtil; import com.engine.jucailinkq.common.util.CommonUtil;
import com.engine.jucailinkq.common.util.DateUtil; import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.engine.jucailinkq.common.util.ExtensionClassHolder;
import com.engine.jucailinkq.common.util.Utils; import com.engine.jucailinkq.common.util.Utils;
import com.engine.core.impl.Service; import com.engine.core.impl.Service;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import weaver.general.Util; import weaver.general.Util;
@ -21,6 +23,7 @@ import java.time.ZoneOffset;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -43,26 +46,18 @@ public class AttendanceAnalysisWrapper extends Service {
log.debug("***********analysis userId:{} analysisDate:{} start***********", userId,analysisDateList); log.debug("***********analysis userId:{} analysisDate:{} start***********", userId,analysisDateList);
log.debug("clockInTimeDate : [{}]", dataList); log.debug("clockInTimeDate : [{}]", dataList);
String beforeTwoDayDateDate = DateUtil.beforeDay(analysisDateList.get(0), 2);
/** 打卡数据 */ /** 打卡数据 */
Map<String, List<Map<String, Object>>> collect = Maps.newHashMap(); Map<String, List<Map<String, Object>>> collect = Maps.newHashMap();
if (dataList != null && dataList.size() > 0) { if (dataList != null && dataList.size() > 0) {
collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("signdate")))); collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("signdate"))));
} }
String departmentid = Util.null2String(analysisParam.get("departmentId"));
String subcompanyid1 = Util.null2String(analysisParam.get("subCompanyId"));
Map<String,String> attendancePlanMap = (Map<String,String>)analysisParam.get("attendancePlanMap");
List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)analysisParam.get("generalAttendanceItems"); List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)analysisParam.get("generalAttendanceItems");
List<Map<String,String>> attendancePlanList = (List<Map<String,String>>)analysisParam.get("attendancePlanList");
Map<String,List<Map<String,Object>>> attendanceItemGroupByPlan = (Map<String,List<Map<String,Object>>>)analysisParam.get("attendanceItemGroupByPlan"); Map<String,List<Map<String,Object>>> attendanceItemGroupByPlan = (Map<String,List<Map<String,Object>>>)analysisParam.get("attendanceItemGroupByPlan");
/**获得人员考勤项目*/
// List<Map<String, Object>> attendanceItems =Lists.newArrayList();
// for (Map<String,String> attendancePlan :attendancePlanList){
// if (attendanceItemGroupByPlan.get(attendancePlan.get("dataid")) != null &&
// attendanceItemGroupByPlan.get(attendancePlan.get("dataid")).size()>0){
// attendanceItems.addAll(attendanceItemGroupByPlan.get(attendancePlan.get("dataid")));
// }
// }
// attendanceItems.addAll(generalAttendanceItems);
/**获得综合工时*/ /**获得综合工时*/
List<Map<String,String>> comprehensiveWorkingHourList = (List<Map<String,String>>)analysisParam.get("comprehensiveWorkingHourList"); List<Map<String,String>> comprehensiveWorkingHourList = (List<Map<String,String>>)analysisParam.get("comprehensiveWorkingHourList");
Map<String,List<Map<String,Object>>> workingHourGroupBy = (Map<String,List<Map<String,Object>>>)analysisParam.get("workingHourGroupBy"); Map<String,List<Map<String,Object>>> workingHourGroupBy = (Map<String,List<Map<String,Object>>>)analysisParam.get("workingHourGroupBy");
@ -70,22 +65,13 @@ public class AttendanceAnalysisWrapper extends Service {
for (String analysisDate :analysisDateList){ for (String analysisDate :analysisDateList){
/**获得人员考勤项目*/ /**获得人员考勤项目*/
List<Map<String,String>> analysisDateAttendancePlanList = attendancePlanList.stream().filter(e->{ Map<String,Object> getAttendacneParamMap = Maps.newHashMap();
if ((!"".equals(Util.null2String(e.get("bdate"))) && DateUtil.getTime(analysisDate).compareTo(DateUtil.getTime(e.get("bdate"))) <0) || getAttendacneParamMap.put("userId",userId);
(!"".equals(Util.null2String(e.get("edate"))) && DateUtil.getTime(analysisDate).compareTo(DateUtil.getTime(e.get("edate"))) > 0)){ getAttendacneParamMap.put("departmentId",departmentid);
return false; getAttendacneParamMap.put("subCompanyId",subcompanyid1);
}else { getAttendacneParamMap.put("anysisyDate",analysisDate);
return true; getAttendacneParamMap.put("seclevel",analysisParam.get("seclevel"));
} getAttendacneParamMap.putAll(attendancePlanMap);
}).collect(Collectors.toList());
List<Map<String, Object>> analysisDateAttendanceItems =Lists.newArrayList();
for (Map<String,String> attendancePlan :analysisDateAttendancePlanList){
if (attendanceItemGroupByPlan.get(attendancePlan.get("dataid")) != null &&
attendanceItemGroupByPlan.get(attendancePlan.get("dataid")).size()>0){
analysisDateAttendanceItems.addAll(attendanceItemGroupByPlan.get(attendancePlan.get("dataid")));
}
}
analysisDateAttendanceItems.addAll(generalAttendanceItems);
/** /**
* *
@ -107,26 +93,71 @@ public class AttendanceAnalysisWrapper extends Service {
} }
} }
List<Map<String, Object>> analysisDateAttendaceResult = attendaceResultMap.get(analysisDate); /** 获取人员班次*/
Map<String, Object> classesParamMap = Maps.newHashMap();
classesParamMap.put("startDate", analysisDate);
classesParamMap.put("endDate", analysisDate);
classesParamMap.put("pbdx", userId);
classesParamMap.put("clockInTimeMap", clockInTimeMap);
classesParamMap.put("clockInData", dataList);
classesParamMap.put("allScheduleList",analysisParam.get("allScheduleList"));
classesParamMap.put("allClassInfoList",analysisParam.get("allClassInfoList"));
classesParamMap.put("allOverPlanList",analysisParam.get("allOverPlanList"));
classesParamMap.put("attendaceResultMap",attendaceResultMap);
classesParamMap.put("evectionList",analysisParam.get("evectionList"));
classesParamMap.put("askforList",analysisParam.get("askforList"));
classesParamMap.put("hxbzList",analysisParam.get("hxbzList"));
List<Map<String, Object>> analysisDateAttendaceResult = attendaceResultMap.get(analysisDate);
List<Map<String, Object>> analysisDateAttendanceItems =Lists.newArrayList();
Map<String, Object> schedulMap = null;
if (analysisDateAttendaceResult == null || analysisDateAttendaceResult.size() == 0 || (!CheckBoxEnum.CHECKED.getKey().equals(analysisDateAttendaceResult.get(0).get("sgsj")) && if (analysisDateAttendaceResult == null || analysisDateAttendaceResult.size() == 0 || (!CheckBoxEnum.CHECKED.getKey().equals(analysisDateAttendaceResult.get(0).get("sgsj")) &&
!"3".equals(analysisDateAttendaceResult.get(0).get("sjzt")))) { !"3".equals(analysisDateAttendaceResult.get(0).get("sjzt")))) {
/** 获取人员班次*/ /**人员换了部门,需班次、分部、部门继续走老的*/
Map<String, Object> classesParamMap = Maps.newHashMap(); if (analysisDateAttendaceResult!=null && analysisDateAttendaceResult.size() >0 && (!analysisDateAttendaceResult.get(0).get("fbid").equals(subcompanyid1) || !analysisDateAttendaceResult.get(0).get("bm").equals(departmentid))){
classesParamMap.put("startDate", analysisDate); String olddepartmentid = analysisDateAttendaceResult.get(0).get("bm").toString();
classesParamMap.put("endDate", analysisDate); String oldsubCompanyid = analysisDateAttendaceResult.get(0).get("fbid").toString();
classesParamMap.put("pbdx", userId);
classesParamMap.put("clockInTimeMap", clockInTimeMap); //旧的考勤项目
classesParamMap.put("attendanceItems", analysisDateAttendanceItems); getAttendacneParamMap.put("departmentId",olddepartmentid);
classesParamMap.put("clockInData", dataList); getAttendacneParamMap.put("subCompanyId",oldsubCompanyid);
classesParamMap.put("allScheduleList",analysisParam.get("allScheduleList")); Map<String, Object> attendanceItemresultMap = utilService.getAttendanceItems(getAttendacneParamMap);
classesParamMap.put("allClassInfoList",analysisParam.get("allClassInfoList")); Set<String> attendanceItems = (Set<String>)attendanceItemresultMap.get("attendanceItems");
classesParamMap.put("allOverPlanList",analysisParam.get("allOverPlanList")); for (String attendanceItemId:attendanceItems){
classesParamMap.put("attendaceResultMap",attendaceResultMap); if (attendanceItemGroupByPlan.get(attendanceItemId) != null &&
classesParamMap.put("evectionList",analysisParam.get("evectionList")); attendanceItemGroupByPlan.get(attendanceItemId).size()>0){
classesParamMap.put("askforList",analysisParam.get("askforList")); analysisDateAttendanceItems.addAll(attendanceItemGroupByPlan.get(attendanceItemId));
classesParamMap.put("hxbzList",analysisParam.get("hxbzList")); }
Map<String, Object> schedulMap = utilService.getSchedulingInFormation(classesParamMap); }
analysisDateAttendanceItems.addAll(generalAttendanceItems);
//旧的综合工时
Map<String,Object> workhourpersonOrganzationMap = (Map<String,Object>)analysisParam.get("workhourpersonOrganzationMap");
Map<String,Object> workhourdepartMentMap = (Map<String,Object>)analysisParam.get("workhourdepartMentMap");
Map<String,Object> workhoursubCompanyMap = (Map<String,Object>)analysisParam.get("workhoursubCompanyMap");
//旧的班次
classesParamMap.put("olddepartmentid",olddepartmentid);
classesParamMap.put("oldsubCompanyid",oldsubCompanyid);
classesParamMap.put("attendanceItems", analysisDateAttendanceItems);
schedulMap = utilService.getSchedulingInFormation(classesParamMap);
}else {
Map<String, Object> attendanceItemresultMap = utilService.getAttendanceItems(getAttendacneParamMap);
Set<String> attendanceItems = (Set<String>)attendanceItemresultMap.get("attendanceItems");
for (String attendanceItemId:attendanceItems){
if (attendanceItemGroupByPlan.get(attendanceItemId) != null &&
attendanceItemGroupByPlan.get(attendanceItemId).size()>0){
analysisDateAttendanceItems.addAll(attendanceItemGroupByPlan.get(attendanceItemId));
}
}
analysisDateAttendanceItems.addAll(generalAttendanceItems);
classesParamMap.put("attendanceItems", analysisDateAttendanceItems);
schedulMap = utilService.getSchedulingInFormation(classesParamMap);
}
Map<String, List<Map<String, Object>>> schedulingResultsMap = (Map<String, List<Map<String, Object>>>) schedulMap.get("schedulingResultsMap"); Map<String, List<Map<String, Object>>> schedulingResultsMap = (Map<String, List<Map<String, Object>>>) schedulMap.get("schedulingResultsMap");
Map<String, Object> getClockTimeParam = Maps.newHashMap(); Map<String, Object> getClockTimeParam = Maps.newHashMap();
@ -158,38 +189,36 @@ public class AttendanceAnalysisWrapper extends Service {
log.debug("***********analysis userId:{},analysisDate:{} start***********", userId, analysisDate); log.debug("***********analysis userId:{},analysisDate:{} start***********", userId, analysisDate);
log.debug("clockInTimeDate : [{}]", dataList); log.debug("clockInTimeDate : [{}]", dataList);
List<Map<String, Object>> attendaceResult = attendaceResultMap.get(analysisDate); List<Map<String, Object>> attendaceResult = attendaceResultMap.get(analysisDate);
log.debug("attendaceResult : [{}]",attendaceResult); log.debug("attendaceResult : [{}]",attendaceResult);
if (attendaceResult!=null && attendaceResult.size()>0 && (CheckBoxEnum.CHECKED.getKey().equals(attendaceResult.get(0).get("sgsj")) || if (attendaceResult!=null && attendaceResult.size()>0 && (CheckBoxEnum.CHECKED.getKey().equals(attendaceResult.get(0).get("sgsj")) ||
"3".equals(attendaceResult.get(0).get("sjzt")))) { "3".equals(attendaceResult.get(0).get("sjzt")))) {
return; return;
} }
Map<String, List<Map<String, Object>>> collect = Maps.newHashMap(); Map<String, List<Map<String, Object>>> collect = Maps.newHashMap();
if (dataList != null && dataList.size() > 0) { if (dataList != null && dataList.size() > 0) {
collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("signdate")))); collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("signdate"))));
} }
List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)analysisParam.get("generalAttendanceItems"); List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)analysisParam.get("generalAttendanceItems");
List<Map<String,String>> attendancePlanList = (List<Map<String,String>>)analysisParam.get("attendancePlanList");
Map<String,String> attendancePlanMap = (Map<String,String>)analysisParam.get("attendancePlanMap");
Map<String,List<Map<String,Object>>> attendanceItemGroupByPlan = (Map<String,List<Map<String,Object>>>)analysisParam.get("attendanceItemGroupByPlan"); Map<String,List<Map<String,Object>>> attendanceItemGroupByPlan = (Map<String,List<Map<String,Object>>>)analysisParam.get("attendanceItemGroupByPlan");
List<Map<String,String>> comprehensiveWorkingHourList = (List<Map<String,String>>)analysisParam.get("comprehensiveWorkingHourList"); List<Map<String,String>> comprehensiveWorkingHourList = (List<Map<String,String>>)analysisParam.get("comprehensiveWorkingHourList");
Map<String,List<Map<String,Object>>> workingHourGroupBy = (Map<String,List<Map<String,Object>>>)analysisParam.get("workingHourGroupBy"); Map<String,List<Map<String,Object>>> workingHourGroupBy = (Map<String,List<Map<String,Object>>>)analysisParam.get("workingHourGroupBy");
String departmentid = Util.null2String(analysisParam.get("departmentId"));
String subcompanyid1 = Util.null2String(analysisParam.get("subCompanyId"));
/**获得人员考勤项目*/ /**获得人员考勤项目*/
List<Map<String,String>> analysisDateAttendancePlanList = attendancePlanList.stream().filter(e->{ Map<String,Object> getAttendacneParamMap = Maps.newHashMap();
if ((!"".equals(Util.null2String(e.get("bdate"))) && DateUtil.getTime(analysisDate).compareTo(DateUtil.getTime(e.get("bdate"))) <0) || getAttendacneParamMap.put("userId",userId);
(!"".equals(Util.null2String(e.get("edate"))) && DateUtil.getTime(analysisDate).compareTo(DateUtil.getTime(e.get("edate"))) > 0)){ getAttendacneParamMap.put("departmentId",departmentid);
return false; getAttendacneParamMap.put("subCompanyId",subcompanyid1);
}else { getAttendacneParamMap.put("anysisyDate",analysisDate);
return true; getAttendacneParamMap.put("seclevel",analysisParam.get("seclevel"));
} getAttendacneParamMap.putAll(attendancePlanMap);
}).collect(Collectors.toList());
List<Map<String, Object>> analysisDateAttendanceItems =Lists.newArrayList();
for (Map<String,String> attendancePlan :analysisDateAttendancePlanList){
if (attendanceItemGroupByPlan.get(attendancePlan.get("dataid")) != null &&
attendanceItemGroupByPlan.get(attendancePlan.get("dataid")).size()>0){
analysisDateAttendanceItems.addAll(attendanceItemGroupByPlan.get(attendancePlan.get("dataid")));
}
}
analysisDateAttendanceItems.addAll(generalAttendanceItems);
/** /**
* *
@ -217,7 +246,6 @@ public class AttendanceAnalysisWrapper extends Service {
classesParamMap.put("endDate", analysisDate); classesParamMap.put("endDate", analysisDate);
classesParamMap.put("pbdx", userId); classesParamMap.put("pbdx", userId);
classesParamMap.put("clockInTimeMap", clockInTimeMap); classesParamMap.put("clockInTimeMap", clockInTimeMap);
classesParamMap.put("attendanceItems", analysisDateAttendanceItems);
classesParamMap.put("clockInData", dataList); classesParamMap.put("clockInData", dataList);
classesParamMap.put("allScheduleList",analysisParam.get("allScheduleList")); classesParamMap.put("allScheduleList",analysisParam.get("allScheduleList"));
classesParamMap.put("allClassInfoList",analysisParam.get("allClassInfoList")); classesParamMap.put("allClassInfoList",analysisParam.get("allClassInfoList"));
@ -226,7 +254,55 @@ public class AttendanceAnalysisWrapper extends Service {
classesParamMap.put("evectionList",analysisParam.get("evectionList")); classesParamMap.put("evectionList",analysisParam.get("evectionList"));
classesParamMap.put("askforList",analysisParam.get("askforList")); classesParamMap.put("askforList",analysisParam.get("askforList"));
classesParamMap.put("hxbzList",analysisParam.get("hxbzList")); classesParamMap.put("hxbzList",analysisParam.get("hxbzList"));
Map<String, Object> schedulMap = utilService.getSchedulingInFormation(classesParamMap); Map<String, Object> schedulMap = null;
List<Map<String, Object>> analysisDateAttendanceItems =Lists.newArrayList();
/**人员换了部门,需班次、分部、部门继续走老的*/
if (attendaceResult!=null && attendaceResult.size() >0 && (!attendaceResult.get(0).get("fbid").equals(subcompanyid1) || !attendaceResult.get(0).get("bm").equals(departmentid))){
String olddepartmentid = attendaceResult.get(0).get("bm").toString();
String oldsubCompanyid = attendaceResult.get(0).get("fbid").toString();
//旧的考勤项目
getAttendacneParamMap.put("departmentId",olddepartmentid);
getAttendacneParamMap.put("subCompanyId",oldsubCompanyid);
Map<String, Object> attendanceItemresultMap = utilService.getAttendanceItems(getAttendacneParamMap);
Set<String> attendanceItems = (Set<String>)attendanceItemresultMap.get("attendanceItems");
for (String attendanceItemId:attendanceItems){
if (attendanceItemGroupByPlan.get(attendanceItemId) != null &&
attendanceItemGroupByPlan.get(attendanceItemId).size()>0){
analysisDateAttendanceItems.addAll(attendanceItemGroupByPlan.get(attendanceItemId));
}
}
analysisDateAttendanceItems.addAll(generalAttendanceItems);
//旧的综合工时
Map<String,Object> workhourpersonOrganzationMap = (Map<String,Object>)analysisParam.get("workhourpersonOrganzationMap");
Map<String,Object> workhourdepartMentMap = (Map<String,Object>)analysisParam.get("workhourdepartMentMap");
Map<String,Object> workhoursubCompanyMap = (Map<String,Object>)analysisParam.get("workhoursubCompanyMap");
//旧的班次
classesParamMap.put("olddepartmentid",olddepartmentid);
classesParamMap.put("oldsubCompanyid",oldsubCompanyid);
classesParamMap.put("attendanceItems", analysisDateAttendanceItems);
schedulMap = utilService.getSchedulingInFormation(classesParamMap);
}else {
classesParamMap.put("attendanceItems", analysisDateAttendanceItems);
Map<String, Object> attendanceItemresultMap = utilService.getAttendanceItems(getAttendacneParamMap);
Set<String> attendanceItems = (Set<String>)attendanceItemresultMap.get("attendanceItems");
for (String attendanceItemId:attendanceItems){
if (attendanceItemGroupByPlan.get(attendanceItemId) != null &&
attendanceItemGroupByPlan.get(attendanceItemId).size()>0){
analysisDateAttendanceItems.addAll(attendanceItemGroupByPlan.get(attendanceItemId));
}
}
analysisDateAttendanceItems.addAll(generalAttendanceItems);
classesParamMap.put("attendanceItems", analysisDateAttendanceItems);
schedulMap = utilService.getSchedulingInFormation(classesParamMap);
}
Map<String, List<Map<String, Object>>> schedulingResultsMap = (Map<String, List<Map<String, Object>>>) schedulMap.get("schedulingResultsMap"); Map<String, List<Map<String, Object>>> schedulingResultsMap = (Map<String, List<Map<String, Object>>>) schedulMap.get("schedulingResultsMap");

@ -38,7 +38,7 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand<Map
String resourceId = Util.null2String(params.get("resourceId")); String resourceId = Util.null2String(params.get("resourceId"));
String startDate = Util.null2String(params.get("startDate")).equals("")?DateUtil.getCurrentDate():Util.null2String(params.get("startDate")); String startDate = Util.null2String(params.get("startDate")).equals("")?DateUtil.getCurrentDate():Util.null2String(params.get("startDate"));
String endDate = Util.null2String(params.get("endDate"));
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqfa"); String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqfa");
Map<String,Object> resultMap = Maps.newHashMap(); Map<String,Object> resultMap = Maps.newHashMap();

@ -38,6 +38,18 @@ public class GetAttendanceItemsGroupByAttendancePlanDataCmd extends AbstractComm
sql = "select id keyid,mc kqxm,a.* from uf_jcl_kq_kqxm a where tyxm=1 and (xmzt is null or xmzt <> '0')"; sql = "select id keyid,mc kqxm,a.* from uf_jcl_kq_kqxm a where tyxm=1 and (xmzt is null or xmzt <> '0')";
List<Map<String,Object>> generalAttendanceItems = DbTools.getSqlToList(sql); List<Map<String,Object>> generalAttendanceItems = DbTools.getSqlToList(sql);
fatherItems = generalAttendanceItems.stream().filter(e-> Util.null2String(e.get("sffzcx")).equals(CheckBoxEnum.CHECKED.getKey())).map(e->e.get("keyid").toString()).collect(Collectors.toList());
if (fatherItems.size() > 0){
sql = "select id keyid,mc kqxm,a.* from uf_jcl_kq_kqxm a where (xmzt is null or xmzt <> '0') and a.sjxm in ("+String.join(",",fatherItems)+")";
List<Map<String,Object>> sonItemList = DbTools.getSqlToList(sql);
Map<String,List<Map<String,Object>>> sonGroupMap = sonItemList.stream().collect(Collectors.groupingBy(e->e.get("sjxm").toString()));
for (Map<String,Object> attendanceItem :generalAttendanceItems){
if (CheckBoxEnum.CHECKED.getKey().equals(attendanceItem.get("sffzcx"))){
attendanceItem.put("sonItems",sonGroupMap.get(attendanceItem.get("keyid")));
}
}
}
Map<String,List<Map<String,Object>>> attendanceItemGroupByPlan = attendanceItems.stream().collect(Collectors.groupingBy(e->e.get("planid").toString())); Map<String,List<Map<String,Object>>> attendanceItemGroupByPlan = attendanceItems.stream().collect(Collectors.groupingBy(e->e.get("planid").toString()));
resultMap.put("generalAttendanceItems",generalAttendanceItems); resultMap.put("generalAttendanceItems",generalAttendanceItems);
resultMap.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan); resultMap.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan);

@ -42,6 +42,8 @@ public class GetScheduleFoAnalysisCmd extends AbstractCommonCommand<Map<String,
String startDate = Util.null2String(params.get("startDate")); String startDate = Util.null2String(params.get("startDate"));
String endDate = Util.null2String(params.get("endDate")); String endDate = Util.null2String(params.get("endDate"));
String pbdx = Util.null2String(params.get("pbdx")); String pbdx = Util.null2String(params.get("pbdx"));
String olddepartmentid = Util.null2String(params.get("olddepartmentid"));
String oldsubCompanyid = Util.null2String(params.get("oldsubCompanyid"));
List<Map<String,Object>> allScheduleList = (List<Map<String,Object>>)params.get("allScheduleList"); List<Map<String,Object>> allScheduleList = (List<Map<String,Object>>)params.get("allScheduleList");
Map<String, Object> resultMap = Maps.newHashMap(); Map<String, Object> resultMap = Maps.newHashMap();
@ -91,6 +93,18 @@ public class GetScheduleFoAnalysisCmd extends AbstractCommonCommand<Map<String,
Map<String, Object> personInformationMap = personInformationThreadLocal.get(pbdx); Map<String, Object> personInformationMap = personInformationThreadLocal.get(pbdx);
String pdeptids = Util.null2String(personInformationMap.get("pdeptids")); String pdeptids = Util.null2String(personInformationMap.get("pdeptids"));
String subcompanyid1 = Util.null2String(personInformationMap.get("subcompanyid1")); String subcompanyid1 = Util.null2String(personInformationMap.get("subcompanyid1"));
if (!olddepartmentid.equals("")){
Map<String,String> petDepart = ExtensionClassHolder.getPetDepartMentThreadLocal();
pdeptids = petDepart.get(olddepartmentid);
if (pdeptids == null || pdeptids.equals("")){
pdeptids="";
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(params.get("olddepartmentid")), pdeptids);
pdeptids = olddepartmentid + pdeptids;
}
}
if (!oldsubCompanyid.equals("")){
subcompanyid1=oldsubCompanyid;
}
List<String> pdeptidList = Lists.newArrayList(pdeptids.split(",")); List<String> pdeptidList = Lists.newArrayList(pdeptids.split(","));
List<String> subcompanyList = Lists.newArrayList(subcompanyid1.split(",")); List<String> subcompanyList = Lists.newArrayList(subcompanyid1.split(","));

@ -36,7 +36,7 @@ public class VocationServiceImpl extends Service implements VocationService {
String sql = "select a.id userid,a.*,b.* from hrmresource a left join cus_fielddata b on a.id=b.id where a.id in ("; String sql = "select a.id userid,a.*,b.* from hrmresource a left join cus_fielddata b on a.id=b.id where a.id in (";
String queryDepartEmployeeSql = "select resourceid ,changedate,type_n from HRMSTATUSHISTORY where type_n = 5 or type_n = 7"; String queryDepartEmployeeSql = "select resourceid ,changedate,type_n from HRMSTATUSHISTORY where type_n = 5 or type_n = 7 and changedate <> '' and changedate is not null";
//获取离职日期 //获取离职日期
List<Map<String,Object>> departEmployeeList = DbTools.getSqlToList(queryDepartEmployeeSql); List<Map<String,Object>> departEmployeeList = DbTools.getSqlToList(queryDepartEmployeeSql);
Map<String,Object> departEmployeeMap = CommonUtil.getDepartEmployeeMap(departEmployeeList); Map<String,Object> departEmployeeMap = CommonUtil.getDepartEmployeeMap(departEmployeeList);

@ -0,0 +1,142 @@
package com.engine.jucailinkq.common.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.jucailinkq.common.util.DbTools;
import com.engine.jucailinkq.common.util.ExtensionClassHolder;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import weaver.general.Util;
import weaver.hrm.company.DepartmentComInfo;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
public class GetAllPersonBySuitOrganzationCmd extends AbstractCommonCommand<Map<String, Object>> {
public GetAllPersonBySuitOrganzationCmd(Map<String, Object> params) {
this.params = params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
String modeId = Util.null2String(params.get("modeId"));
String sql = "select dxlx,dataid,dx,aqjb from uf_jcl_syzz where modeid=?";
List<Map<String, Object>> organizationList = DbTools.getSqlToList(sql, modeId);
Map<String,Object> resultMap = Maps.newHashMap();
Map<String, List<Map<String, Object>>> organizationListGroupBydxlx = organizationList.stream().collect(Collectors.groupingBy(e -> e.get("dxlx").toString()));
//对象类型为人员
List<Map<String, Object>> personOrganizationList = organizationListGroupBydxlx.get("0");
//对象类型为人员组织
List<Map<String, Object>> personGroupOrganizationList = organizationListGroupBydxlx.get("1");
//对象类型为部门
List<Map<String, Object>> departmentOrganizationList = organizationListGroupBydxlx.get("2");
//对象类型为分部
List<Map<String, Object>> subCompanyOrganizationList = organizationListGroupBydxlx.get("3");
//人力资源id
Map<String, List<Map<String, String>>> personData = Maps.newHashMap();
//人员分组id
Map<String, List<Map<String, String>>> personOrganzationMap = Maps.newHashMap();
//部门id
Map<String, List<Map<String, String>>> departMentMap = Maps.newHashMap();
//分部id
Map<String, List<Map<String, String>>> subCompanyMap = Maps.newHashMap();
if (personOrganizationList != null) {
for (Map<String, Object> personOrganization : personOrganizationList) {
String dx = Util.null2String(personOrganization.get("dx"));
String userId = dx.split("-")[0];
String dataId = Util.null2String(personOrganization.get("dataid"));
List<Map<String, String>> dataList2 = personData.get(userId);
if (dataList2 == null) {
dataList2 = Lists.newArrayList();
personData.put(userId, dataList2);
}
if (dataList2.stream().filter(e -> e.get("dataid").equals(dataId)).collect(Collectors.toList()).size() == 0) {
Map<String, String> dataMap = Maps.newHashMap();
dataMap.put("dataid", dataId);
dataMap.put("priority", "0");
dataMap.put("seclevel",Util.null2String(personOrganization.get("aqjb")));
dataList2.add(dataMap);
}
}
}
if (personGroupOrganizationList != null){
for (Map<String, Object> personGroupOrganization : personGroupOrganizationList) {
String dx = Util.null2String(personGroupOrganization.get("dx"));
String personGroupId = dx.split("-")[0];
String dataId = Util.null2String(personGroupOrganization.get("dataid"));
List<Map<String, String>> dataList = personOrganzationMap.get(personGroupId);
if (dataList == null) {
dataList = Lists.newArrayList();
personOrganzationMap.put(personGroupId, dataList);
}
if (dataList.stream().filter(e -> e.get("dataid").equals(dataId)).collect(Collectors.toList()).size() == 0) {
Map<String, String> dataMap = Maps.newHashMap();
dataMap.put("dataid", dataId);
dataMap.put("priority", "0");
dataMap.put("seclevel",Util.null2String(personGroupOrganization.get("aqjb")));
dataList.add(dataMap);
}
}
}
if (departmentOrganizationList != null) {
for (Map<String, Object> departmentOrganization : departmentOrganizationList) {
String dx = Util.null2String(departmentOrganization.get("dx"));
String departmentId = dx.split("-")[0];
String dataId = Util.null2String(departmentOrganization.get("dataid"));
List<Map<String, String>> dataList = departMentMap.get(departmentId);
if (dataList == null) {
dataList = Lists.newArrayList();
departMentMap.put(departmentId, dataList);
}
if (dataList.stream().filter(e -> e.get("dataid").equals(dataId)).collect(Collectors.toList()).size() == 0) {
Map<String, String> dataMap = Maps.newHashMap();
dataMap.put("dataid", dataId);
dataMap.put("priority", "2");
dataMap.put("seclevel",Util.null2String(departmentOrganization.get("aqjb")));
dataList.add(dataMap);
}
}
}
if (subCompanyOrganizationList != null) {
for (Map<String, Object> subCompanyOrganization : subCompanyOrganizationList) {
String dx = Util.null2String(subCompanyOrganization.get("dx"));
String subCompanyId = dx.split("-")[0];
String dataId = Util.null2String(subCompanyOrganization.get("dataid"));
List<Map<String, String>> dataList = subCompanyMap.get(subCompanyId);
if (dataList == null) {
dataList = Lists.newArrayList();
subCompanyMap.put(subCompanyId, dataList);
}
if (dataList.stream().filter(e -> e.get("dataid").equals(dataId)).collect(Collectors.toList()).size() == 0) {
Map<String, String> dataMap = Maps.newHashMap();
dataMap.put("dataid", dataId);
dataMap.put("priority", "3");
dataMap.put("seclevel",Util.null2String(subCompanyOrganization.get("aqjb")));
dataList.add(dataMap);
}
}
}
resultMap.put("personData",personData);
resultMap.put("personOrganzationMap",personOrganzationMap);
resultMap.put("departMentMap",departMentMap);
resultMap.put("subCompanyMap",subCompanyMap);
return resultMap;
}
}

@ -19,7 +19,7 @@ import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* modeid * modeid
*/ */
public class GetPersonBySuitOrganzationCmd extends AbstractCommonCommand<Map<String,Object>> { public class GetPersonBySuitOrganzationCmd extends AbstractCommonCommand<Map<String,Object>> {
@ -195,6 +195,9 @@ public class GetPersonBySuitOrganzationCmd extends AbstractCommonCommand<Map<Str
} }
resultMap.put("personMap",personMap); resultMap.put("personMap",personMap);
resultMap.put("personAllData",personAllData); resultMap.put("personAllData",personAllData);
resultMap.put("personOrganzationMap",personOrganzationMap);
resultMap.put("departMentMap",departMentMap);
resultMap.put("subCompanyMap",subCompanyMap);
return resultMap; return resultMap;
} }

@ -12,4 +12,6 @@ public interface CommonService {
Map<String,Object> insertCommon(Map<String,Object> param); Map<String,Object> insertCommon(Map<String,Object> param);
Map<String,Object> getPersonBySuitOrganzation(Map<String,Object> param); Map<String,Object> getPersonBySuitOrganzation(Map<String,Object> param);
Map<String,Object> GetAllPersonBySuitOrganzationCmd(Map<String,Object> param);
} }

@ -1,5 +1,6 @@
package com.engine.jucailinkq.common.service.impl; package com.engine.jucailinkq.common.service.impl;
import com.engine.jucailinkq.common.cmd.GetAllPersonBySuitOrganzationCmd;
import com.engine.jucailinkq.common.cmd.GetPersonBySuitOrganzationCmd; import com.engine.jucailinkq.common.cmd.GetPersonBySuitOrganzationCmd;
import com.engine.jucailinkq.common.cmd.QueryCommonCmd; import com.engine.jucailinkq.common.cmd.QueryCommonCmd;
import com.engine.jucailinkq.common.service.CommonService; import com.engine.jucailinkq.common.service.CommonService;
@ -45,4 +46,9 @@ public class CommonServiceImpl extends Service implements CommonService {
public Map<String, Object> getPersonBySuitOrganzation(Map<String, Object> param) { public Map<String, Object> getPersonBySuitOrganzation(Map<String, Object> param) {
return commandExecutor.execute(new GetPersonBySuitOrganzationCmd(param)); return commandExecutor.execute(new GetPersonBySuitOrganzationCmd(param));
} }
@Override
public Map<String, Object> GetAllPersonBySuitOrganzationCmd(Map<String, Object> param) {
return commandExecutor.execute(new GetAllPersonBySuitOrganzationCmd(param));
}
} }

@ -725,7 +725,7 @@ public class Utils<T> {
log.debug("休息时间在请假时间 左边"); log.debug("休息时间在请假时间 左边");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dtkssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dtjssj)) <=0){ }else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dtkssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dtjssj)) <=0){
//请假时间在休息时间中间 //请假时间在休息时间中间
betweenMinutes = 0; betweenMinutes = DateUtil.getBetWeenMinutes(kssj,jssj);
log.debug("请假时间在休息时间中间"); log.debug("请假时间在休息时间中间");
} }
if (betweenMinutes > 0){ if (betweenMinutes > 0){
@ -1427,4 +1427,11 @@ public class Utils<T> {
return sqltj; return sqltj;
} }
public static void setDataIdbyMap(Set<String> itemSet,Map<String,Object>...values){
for (Map<String,Object> map : values){
}
}
} }

Loading…
Cancel
Save