diff --git a/log/sdk.log b/log/sdk.log new file mode 100644 index 0000000..e69de29 diff --git a/out/artifacts/hrm_attendance/hrm-attendance.jar b/out/artifacts/hrm_attendance/hrm-attendance.jar index 8e079b7..e157294 100644 Binary files a/out/artifacts/hrm_attendance/hrm-attendance.jar and b/out/artifacts/hrm_attendance/hrm-attendance.jar differ diff --git a/src/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.java b/src/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.java index cfa9f3c..eb2d8ae 100644 --- a/src/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.java +++ b/src/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.java @@ -1,7 +1,7 @@ package com.api.attendance.attendancePlan.web; -import com.engine.attendance.attendancePlan.web.AttendancePlanAction; +import com.engine.attendance.attendanceplan.web.AttendancePlanAction; import lombok.extern.slf4j.Slf4j; import javax.ws.rs.Path; diff --git a/src/com/api/attendance/persongroup/web/PersonGroupActionApi.java b/src/com/api/attendance/persongroup/web/PersonGroupActionApi.java index 039d41b..d0313b2 100644 --- a/src/com/api/attendance/persongroup/web/PersonGroupActionApi.java +++ b/src/com/api/attendance/persongroup/web/PersonGroupActionApi.java @@ -1,6 +1,6 @@ package com.api.attendance.persongroup.web; -import com.engine.attendance.persongroup.web.PersonGroupAction; +import com.engine.attendance.component.persongroup.web.PersonGroupAction; import lombok.extern.slf4j.Slf4j; import javax.ws.rs.Path; diff --git a/src/com/api/attendance/persongroup/web/SchedulingResultsActionApi.java b/src/com/api/attendance/persongroup/web/SchedulingResultsActionApi.java index 9ddd498..0dc45d4 100644 --- a/src/com/api/attendance/persongroup/web/SchedulingResultsActionApi.java +++ b/src/com/api/attendance/persongroup/web/SchedulingResultsActionApi.java @@ -1,6 +1,6 @@ package com.api.attendance.persongroup.web; -import com.engine.attendance.persongroup.web.SchedulingResultsAction; +import com.engine.attendance.component.persongroup.web.SchedulingResultsAction; import lombok.extern.slf4j.Slf4j; import javax.ws.rs.Path; diff --git a/src/com/api/attendance/workflow/ProcessSubmitCheckActionApi.java b/src/com/api/attendance/workflow/ProcessSubmitCheckActionApi.java new file mode 100644 index 0000000..30b15de --- /dev/null +++ b/src/com/api/attendance/workflow/ProcessSubmitCheckActionApi.java @@ -0,0 +1,11 @@ +package com.api.attendance.workflow; + +import com.engine.attendance.workflow.web.ProcessSubmitCheckApi; +import lombok.extern.slf4j.Slf4j; + +import javax.ws.rs.Path; + +@Path("/attendance/processsubmitcheck") +@Slf4j +public class ProcessSubmitCheckActionApi extends ProcessSubmitCheckApi { +} diff --git a/src/com/engine/attendance/attendanceanalysis/README.md b/src/com/engine/attendance/attendanceanalysis/README.md new file mode 100644 index 0000000..123ba41 --- /dev/null +++ b/src/com/engine/attendance/attendanceanalysis/README.md @@ -0,0 +1,4 @@ +# attendance.attendanceAnalysis +## 考勤分析模块 +## 用于计算分析人员的考勤,算出正常上下班、加班、早退、迟到等一些列考勤项目,并入到出勤结果表 + diff --git a/src/com/engine/attendance/attendanceanalysis/cmd/absenteeismCmd.java b/src/com/engine/attendance/attendanceanalysis/cmd/absenteeismCmd.java new file mode 100644 index 0000000..79947fb --- /dev/null +++ b/src/com/engine/attendance/attendanceanalysis/cmd/absenteeismCmd.java @@ -0,0 +1,55 @@ +package com.engine.attendance.attendanceanalysis.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import weaver.general.Util; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 人员旷工 + */ +public class absenteeismCmd extends AbstractCommonCommand> { + @Override + public BizLogContext getLogContext() { + return null; + } + public absenteeismCmd(Map params){ + this.params=params; + } + + @Override + public Map execute(CommandContext commandContext) { + //作用时段 + String workfor = Util.null2String(params.get("workfor")); + String time = Util.null2String(params.get("time")); + String userId = Util.null2String(params.get("userId")); + String itemType = Util.null2String(params.get("itemType")); + List> attendanceItems = (List>)params.get("attendanceItems"); + attendanceItems.stream().filter(e -> { + //项目类型 + String xmlx = Util.null2String(e.get("xmlx")); + //作用时段 + String zysd = Util.null2String(e.get("zysd")); + //最小核算分钟数(不包含) + String zxhsl = Util.null2String(e.get("zxhsl")); + //最大核算分钟数(包含) + String zdhsl = Util.null2String(e.get("zdhsl")); + if( .equals(xmlx) && workfor.equals(zysd)){ + + } + + + + + + + return false; + }).collect(Collectors.toList()); + + return null; + } +} diff --git a/src/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java b/src/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java new file mode 100644 index 0000000..08a9299 --- /dev/null +++ b/src/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java @@ -0,0 +1,39 @@ +package com.engine.attendance.attendanceanalysis.job; + + +import com.engine.attendance.attendanceanalysis.wrapper.AttendanceAnalysisWrapper; +import com.engine.attendance.workflow.service.ProcessSubmitCheckService; +import com.engine.attendance.workflow.service.impl.ProcessSubmitCheckServiceImpl; +import com.engine.common.util.DateUtil; +import com.engine.common.util.DbTools; +import com.engine.common.util.ServiceUtil; +import lombok.extern.slf4j.Slf4j; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +public class AttendanceAnalysisJob extends BaseCronJob { + + + private AttendanceAnalysisWrapper attendanceAnalysisService = ServiceUtil.getService(AttendanceAnalysisWrapper.class); + @Override + public void execute() { + log.info("********AttendanceAnalysisJob start********"); + String beforeThreeDayDate = DateUtil.getCurrentDateMinusDay(3); + String beforeOneDayDate = DateUtil.getCurrentDateMinusDay(1); + String sql = "select userid,signdate,signtime from hrmschedulesign where isincom=1 and signdate >= ? and signdate <= ?"; + + List> dataList = DbTools.getSqlToList(sql,beforeThreeDayDate,beforeOneDayDate); + + Map>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid")))); + collect.entrySet().forEach(e -> { + + }); + log.info("********AttendanceAnalysisJob end********"); + } +} diff --git a/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java b/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java new file mode 100644 index 0000000..ce53752 --- /dev/null +++ b/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java @@ -0,0 +1,84 @@ +package com.engine.attendance.attendanceanalysis.wrapper; + +import com.engine.attendance.attendanceplan.service.AttendancePlanService; +import com.engine.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl; +import com.engine.common.util.DateUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import weaver.general.Util; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 考勤分析主题逻辑 + */ +public class AttendanceAnalysisWrapper extends Service { + + private AttendancePlanService basicsetService = ServiceUtil.getService(AttendancePlanServiceImpl.class); + + public void attendanceAnalysis(String userId, List> dataList){ + String beforeThreeDayDate = DateUtil.getCurrentDateMinusDay(3); + String beforeTwoDayDate = DateUtil.getCurrentDateMinusDay(1); + String beforeOneDayDate = DateUtil.getCurrentDateMinusDay(1); + Map>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("signdate")))); + + /**获得人员考勤项目*/ + Map paramMap = new HashMap<>(); + paramMap.put("startDate",""); + paramMap.put("endDate",""); + paramMap.put("resourceId","85"); + paramMap.put("modeId","204"); + Map dataMap = basicsetService.getAttendanceItemsByPerson(paramMap); + List> attendanceItems = (List>)dataMap.get("data"); + + + if (collect.size() == 0){ + //没有打卡数据,前一天记为全天旷工 + + + }else if (collect.size() == 1){ + //有1天有打卡数据 + if (collect.get(beforeOneDayDate) != null){ + //打卡数据为前一天 + + + }else { + //否则前一天记为全天旷工 + + + } + + }else if (collect.size() == 2){ + //有2天有打卡数据 + + //计算前一天考勤 + if (collect.get(beforeOneDayDate) != null){ + //打卡数据为前一天 + + + }else { + //否则前一天记为全天旷工 + + + } + + //计算第二天数据 + if (collect.get(beforeTwoDayDate) != null && collect.get(beforeOneDayDate) != null){ + + + } + + + }else if (collect.size() == 3){ + //连续3天打卡 + + + } + } + + + +} diff --git a/src/com/engine/attendance/attendanceplan/README.md b/src/com/engine/attendance/attendanceplan/README.md new file mode 100644 index 0000000..e71d698 --- /dev/null +++ b/src/com/engine/attendance/attendanceplan/README.md @@ -0,0 +1,4 @@ +# attendance.attendanceAnalysis +## 考勤方案模块 +## + diff --git a/src/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.java b/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java similarity index 91% rename from src/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.java rename to src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java index 8436efa..2e68f6a 100644 --- a/src/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.java +++ b/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java @@ -1,6 +1,6 @@ -package com.engine.attendance.attendancePlan.cmd; +package com.engine.attendance.attendanceplan.cmd; -import com.engine.attendance.persongroup.commonutil.CommonUtil; +import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; import com.engine.common.util.DbTools; @@ -94,7 +94,7 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand> personGroupData = DbTools.getSqlToList(sql); - Set personnelGroupIds = CommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate); + Set personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate); log.info("personnelGroupIds : {}",personnelGroupIds); for (Map personGroupOrganization :personGroupOrganizationList){ String personnelGroupId = Util.null2String(personGroupOrganization.get("dx")).split("-")[0]; @@ -108,7 +108,7 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand> attendanceItems = DbTools.getSqlToList(sql); log.info("dataIds : {}",dataIds); - sql = "select b.id `key`,b.mc kqxm,c.mc famc 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)+")"; + sql = "select b.id `key`,b.mc kqxm,c.mc,b.* famc 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)+")"; if (dataIds.size() > 0){ log.info("query attendanceItems sql : {}",sql); attendanceItems.addAll(DbTools.getSqlToList(sql)); diff --git a/src/com/engine/attendance/attendancePlan/service/AttendancePlanService.java b/src/com/engine/attendance/attendanceplan/service/AttendancePlanService.java similarity index 72% rename from src/com/engine/attendance/attendancePlan/service/AttendancePlanService.java rename to src/com/engine/attendance/attendanceplan/service/AttendancePlanService.java index 69a6c85..fb349af 100644 --- a/src/com/engine/attendance/attendancePlan/service/AttendancePlanService.java +++ b/src/com/engine/attendance/attendanceplan/service/AttendancePlanService.java @@ -1,4 +1,4 @@ -package com.engine.attendance.attendancePlan.service; +package com.engine.attendance.attendanceplan.service; import java.util.Map; diff --git a/src/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.java b/src/com/engine/attendance/attendanceplan/service/impl/AttendancePlanServiceImpl.java similarity index 69% rename from src/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.java rename to src/com/engine/attendance/attendanceplan/service/impl/AttendancePlanServiceImpl.java index 6784870..8982ca0 100644 --- a/src/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.java +++ b/src/com/engine/attendance/attendanceplan/service/impl/AttendancePlanServiceImpl.java @@ -1,7 +1,7 @@ -package com.engine.attendance.attendancePlan.service.impl; +package com.engine.attendance.attendanceplan.service.impl; -import com.engine.attendance.attendancePlan.cmd.GetAttendanceItemsByPersonDataCmd; -import com.engine.attendance.attendancePlan.service.AttendancePlanService; +import com.engine.attendance.attendanceplan.cmd.GetAttendanceItemsByPersonDataCmd; +import com.engine.attendance.attendanceplan.service.AttendancePlanService; import com.engine.core.impl.Service; import java.util.Map; diff --git a/src/com/engine/attendance/attendancePlan/web/AttendancePlanAction.java b/src/com/engine/attendance/attendanceplan/web/AttendancePlanAction.java similarity index 75% rename from src/com/engine/attendance/attendancePlan/web/AttendancePlanAction.java rename to src/com/engine/attendance/attendanceplan/web/AttendancePlanAction.java index 9a9b0a9..fc71a1d 100644 --- a/src/com/engine/attendance/attendancePlan/web/AttendancePlanAction.java +++ b/src/com/engine/attendance/attendanceplan/web/AttendancePlanAction.java @@ -1,9 +1,7 @@ -package com.engine.attendance.attendancePlan.web; +package com.engine.attendance.attendanceplan.web; -import com.engine.attendance.attendancePlan.service.AttendancePlanService; -import com.engine.attendance.attendancePlan.service.impl.AttendancePlanServiceImpl; -import com.engine.attendance.persongroup.service.SchedulingResultsService; -import com.engine.attendance.persongroup.service.impl.SchedulingResultsServiceImpl; +import com.engine.attendance.attendanceplan.service.AttendancePlanService; +import com.engine.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl; import com.engine.common.util.ApiReturnTools; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; diff --git a/src/com/engine/attendance/component/README.md b/src/com/engine/attendance/component/README.md new file mode 100644 index 0000000..6fc597b --- /dev/null +++ b/src/com/engine/attendance/component/README.md @@ -0,0 +1,4 @@ +# attendance.attendanceAnalysis +## 考勤组件模块 +## person_group 人员分组功能组件 + diff --git a/src/com/engine/attendance/persongroup/cmd/GetDatatableCmd.java b/src/com/engine/attendance/component/persongroup/cmd/GetDatatableCmd.java similarity index 97% rename from src/com/engine/attendance/persongroup/cmd/GetDatatableCmd.java rename to src/com/engine/attendance/component/persongroup/cmd/GetDatatableCmd.java index d46bcaf..e365636 100644 --- a/src/com/engine/attendance/persongroup/cmd/GetDatatableCmd.java +++ b/src/com/engine/attendance/component/persongroup/cmd/GetDatatableCmd.java @@ -1,4 +1,4 @@ -package com.engine.attendance.persongroup.cmd; +package com.engine.attendance.component.persongroup.cmd; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; @@ -6,7 +6,6 @@ import com.engine.common.util.DbTools; import com.engine.core.interceptor.CommandContext; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.icbc.api.internal.apache.http.M; import lombok.extern.slf4j.Slf4j; import weaver.conn.RecordSet; import weaver.general.Util; diff --git a/src/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.java b/src/com/engine/attendance/component/persongroup/cmd/GetDatatableCountCmd.java similarity index 96% rename from src/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.java rename to src/com/engine/attendance/component/persongroup/cmd/GetDatatableCountCmd.java index c7a1126..7fd7063 100644 --- a/src/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.java +++ b/src/com/engine/attendance/component/persongroup/cmd/GetDatatableCountCmd.java @@ -1,4 +1,4 @@ -package com.engine.attendance.persongroup.cmd; +package com.engine.attendance.component.persongroup.cmd; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; @@ -6,7 +6,6 @@ import com.engine.common.util.DbTools; import com.engine.core.interceptor.CommandContext; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; -import weaver.conn.RecordSet; import weaver.general.Util; import java.util.List; import java.util.Map; diff --git a/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java b/src/com/engine/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.java similarity index 96% rename from src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java rename to src/com/engine/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.java index ed5a6e6..644a552 100644 --- a/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java +++ b/src/com/engine/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.java @@ -1,6 +1,6 @@ -package com.engine.attendance.persongroup.cmd; +package com.engine.attendance.component.persongroup.cmd; -import com.engine.attendance.persongroup.commonutil.CommonUtil; +import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; @@ -10,7 +10,6 @@ import com.engine.core.interceptor.CommandContext; 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; @@ -69,7 +68,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand> personGroupData = DbTools.getSqlToList(queryryfz); - Set personnelGroupIds = CommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx,null,null); + Set personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx,null,null); querySqlbyPbdx = sql +conditions + " and pbdxryfz in (?)"; log.info("递归查询人员-人员分组节点,sql:{},personnelGroupIds:{}",querySqlbyPbdx,personnelGroupIds); if(personnelGroupIds.size() > 0){ diff --git a/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java b/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java similarity index 99% rename from src/com/engine/attendance/persongroup/commonutil/CommonUtil.java rename to src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java index 7690bec..5089693 100644 --- a/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java +++ b/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java @@ -1,4 +1,4 @@ -package com.engine.attendance.persongroup.commonutil; +package com.engine.attendance.component.persongroup.commonutil; import com.engine.common.util.DateUtil; import com.engine.common.util.DbTools; @@ -13,7 +13,7 @@ import java.util.*; import java.util.stream.Collectors; @Slf4j -public class CommonUtil { +public class PersongroupCommonUtil { /** * * @param calendarMap key:年份,value:明细数据 diff --git a/src/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.java b/src/com/engine/attendance/component/persongroup/job/scheduling/SchedulingJob.java similarity index 90% rename from src/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.java rename to src/com/engine/attendance/component/persongroup/job/scheduling/SchedulingJob.java index e24a514..7c991f7 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/SchedulingJob.java @@ -1,6 +1,6 @@ -package com.engine.attendance.persongroup.job.scheduling; +package com.engine.attendance.component.persongroup.job.scheduling; -import com.engine.attendance.persongroup.job.scheduling.tactics.RegularScheduling; +import com.engine.attendance.component.persongroup.job.scheduling.tactics.RegularScheduling; import com.engine.common.util.DbTools; import com.engine.common.util.Utils; diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java similarity index 95% rename from src/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.java rename to src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java index cdcd9af..e598846 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.java @@ -1,18 +1,15 @@ -package com.engine.attendance.persongroup.job.scheduling.tactics; +package com.engine.attendance.component.persongroup.job.scheduling.tactics; -import com.engine.attendance.persongroup.commonutil.CommonUtil; +import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil; import com.engine.common.util.DateUtil; import com.engine.common.util.DbTools; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; -import weaver.conn.RecordSet; import weaver.general.Util; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.UUID; import java.util.stream.Collectors; /** @@ -73,7 +70,7 @@ public class DayRegularScheduling implements RegularScheduling{ log.info("detailDataGroupingByYear : {}",detailDataGroupingByYear); //循环总天数 int circulateDays = Integer.valueOf(detailDataList.get(detailDataList.size()-1).get("jsts").toString()); - int betweenDays = CommonUtil.getBetweenDays(data); + int betweenDays = PersongroupCommonUtil.getBetweenDays(data); log.info("betweenDays : [{}]",betweenDays); /**按照天数规律循环遍历插入*/ //从第几天开始循环 @@ -176,7 +173,7 @@ public class DayRegularScheduling implements RegularScheduling{ } /**插入排班结果表*/ - CommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid); + PersongroupCommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid); } } diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java similarity index 96% rename from src/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.java rename to src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java index e123a51..d0b78e7 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.java @@ -1,6 +1,6 @@ -package com.engine.attendance.persongroup.job.scheduling.tactics; +package com.engine.attendance.component.persongroup.job.scheduling.tactics; -import com.engine.attendance.persongroup.commonutil.CommonUtil; +import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil; import com.engine.common.util.DateUtil; import com.engine.common.util.DbTools; import com.google.common.collect.Lists; @@ -164,6 +164,6 @@ public class MonthRegularScheduling implements RegularScheduling{ count++; } /**插入排班结果表*/ - CommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid); + PersongroupCommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid); } } diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/RegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/RegularScheduling.java similarity index 63% rename from src/com/engine/attendance/persongroup/job/scheduling/tactics/RegularScheduling.java rename to src/com/engine/attendance/component/persongroup/job/scheduling/tactics/RegularScheduling.java index bab8164..28e62b2 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/RegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/RegularScheduling.java @@ -1,6 +1,5 @@ -package com.engine.attendance.persongroup.job.scheduling.tactics; +package com.engine.attendance.component.persongroup.job.scheduling.tactics; -import java.util.List; import java.util.Map; public interface RegularScheduling { diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java similarity index 96% rename from src/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.java rename to src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java index 9412c20..d69ffa5 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.java @@ -1,20 +1,17 @@ -package com.engine.attendance.persongroup.job.scheduling.tactics; +package com.engine.attendance.component.persongroup.job.scheduling.tactics; -import com.engine.attendance.persongroup.commonutil.CommonUtil; +import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil; import com.engine.common.util.DateUtil; import com.engine.common.util.DbTools; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; -import weaver.conn.RecordSet; import weaver.general.Util; import java.time.DayOfWeek; import java.time.LocalDateTime; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.UUID; import java.util.stream.Collectors; /** @@ -172,7 +169,7 @@ public class WeekRegularScheduling implements RegularScheduling{ } /**插入排班结果表*/ - CommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid); + PersongroupCommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid); } public int getDayOfWeek(DayOfWeek dayOfWeek){ diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java similarity index 96% rename from src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java rename to src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java index bfe63ad..3035b37 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java +++ b/src/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.java @@ -1,6 +1,6 @@ -package com.engine.attendance.persongroup.job.scheduling.tactics; +package com.engine.attendance.component.persongroup.job.scheduling.tactics; -import com.engine.attendance.persongroup.commonutil.CommonUtil; +import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil; import com.engine.common.util.DateUtil; import com.engine.common.util.DbTools; import com.google.common.collect.Lists; @@ -174,6 +174,6 @@ public class YearRegularScheduling implements RegularScheduling{ } /**插入排班结果表*/ - CommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid); + PersongroupCommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid); } } diff --git a/src/com/engine/attendance/persongroup/service/PersonGroupService.java b/src/com/engine/attendance/component/persongroup/service/PersonGroupService.java similarity index 80% rename from src/com/engine/attendance/persongroup/service/PersonGroupService.java rename to src/com/engine/attendance/component/persongroup/service/PersonGroupService.java index 3bebf76..254a2bb 100644 --- a/src/com/engine/attendance/persongroup/service/PersonGroupService.java +++ b/src/com/engine/attendance/component/persongroup/service/PersonGroupService.java @@ -1,4 +1,4 @@ -package com.engine.attendance.persongroup.service; +package com.engine.attendance.component.persongroup.service; import weaver.hrm.User; diff --git a/src/com/engine/attendance/persongroup/service/SchedulingResultsService.java b/src/com/engine/attendance/component/persongroup/service/SchedulingResultsService.java similarity index 69% rename from src/com/engine/attendance/persongroup/service/SchedulingResultsService.java rename to src/com/engine/attendance/component/persongroup/service/SchedulingResultsService.java index ea105f0..c3165b3 100644 --- a/src/com/engine/attendance/persongroup/service/SchedulingResultsService.java +++ b/src/com/engine/attendance/component/persongroup/service/SchedulingResultsService.java @@ -1,4 +1,4 @@ -package com.engine.attendance.persongroup.service; +package com.engine.attendance.component.persongroup.service; import java.util.Map; diff --git a/src/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.java b/src/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.java similarity index 97% rename from src/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.java rename to src/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.java index dea4fc5..4aa26bd 100644 --- a/src/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.java +++ b/src/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.java @@ -1,7 +1,7 @@ -package com.engine.attendance.persongroup.service.impl; +package com.engine.attendance.component.persongroup.service.impl; -import com.engine.attendance.persongroup.service.PersonGroupService; +import com.engine.attendance.component.persongroup.service.PersonGroupService; import com.engine.common.util.DbTools; import com.engine.common.util.Utils; import com.engine.core.impl.Service; diff --git a/src/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.java b/src/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.java similarity index 82% rename from src/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.java rename to src/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.java index ea3eca9..c0a7fbe 100644 --- a/src/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.java +++ b/src/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.java @@ -1,10 +1,10 @@ -package com.engine.attendance.persongroup.service.impl; +package com.engine.attendance.component.persongroup.service.impl; -import com.engine.attendance.persongroup.cmd.GetDatatableCmd; -import com.engine.attendance.persongroup.cmd.GetDatatableCountCmd; -import com.engine.attendance.persongroup.cmd.GetDatatableRecurrenceCmd; -import com.engine.attendance.persongroup.commonutil.CommonUtil; -import com.engine.attendance.persongroup.service.SchedulingResultsService; +import com.engine.attendance.component.persongroup.cmd.GetDatatableCmd; +import com.engine.attendance.component.persongroup.cmd.GetDatatableCountCmd; +import com.engine.attendance.component.persongroup.cmd.GetDatatableRecurrenceCmd; +import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil; +import com.engine.attendance.component.persongroup.service.SchedulingResultsService; import com.engine.core.impl.Service; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; @@ -16,11 +16,11 @@ import java.util.Map; @Slf4j public class SchedulingResultsServiceImpl extends Service implements SchedulingResultsService { - private Map personGroupMap = CommonUtil.getPersonGroup(); - private Map departMentMap = CommonUtil.getDepartMent(); - private Map subCompanyMap = CommonUtil.getSubCompany(); - private Map classesInformationMap = CommonUtil.getClassesInformation(); - private Map candidateTeamMap = CommonUtil.getCandidateTeam(); + private Map personGroupMap = PersongroupCommonUtil.getPersonGroup(); + private Map departMentMap = PersongroupCommonUtil.getDepartMent(); + private Map subCompanyMap = PersongroupCommonUtil.getSubCompany(); + private Map classesInformationMap = PersongroupCommonUtil.getClassesInformation(); + private Map candidateTeamMap = PersongroupCommonUtil.getCandidateTeam(); @Override public Map queryDataTable(Map params) { diff --git a/src/com/engine/attendance/persongroup/web/PersonGroupAction.java b/src/com/engine/attendance/component/persongroup/web/PersonGroupAction.java similarity index 83% rename from src/com/engine/attendance/persongroup/web/PersonGroupAction.java rename to src/com/engine/attendance/component/persongroup/web/PersonGroupAction.java index d0834f1..1a8c001 100644 --- a/src/com/engine/attendance/persongroup/web/PersonGroupAction.java +++ b/src/com/engine/attendance/component/persongroup/web/PersonGroupAction.java @@ -1,14 +1,11 @@ -package com.engine.attendance.persongroup.web; +package com.engine.attendance.component.persongroup.web; -import com.alibaba.fastjson.JSONObject; -import com.cloudstore.dev.api.bean.SplitPageBean; -import com.engine.attendance.persongroup.service.PersonGroupService; -import com.engine.attendance.persongroup.service.impl.PersonGroupServiceImpl; +import com.engine.attendance.component.persongroup.service.PersonGroupService; +import com.engine.attendance.component.persongroup.service.impl.PersonGroupServiceImpl; import com.engine.common.util.ApiReturnTools; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import lombok.extern.slf4j.Slf4j; -import weaver.general.Util; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -19,9 +16,6 @@ import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; @Slf4j @@ -66,5 +60,4 @@ public class PersonGroupAction { } } - } diff --git a/src/com/engine/attendance/persongroup/web/SchedulingResultsAction.java b/src/com/engine/attendance/component/persongroup/web/SchedulingResultsAction.java similarity index 53% rename from src/com/engine/attendance/persongroup/web/SchedulingResultsAction.java rename to src/com/engine/attendance/component/persongroup/web/SchedulingResultsAction.java index 9e65110..dab0edc 100644 --- a/src/com/engine/attendance/persongroup/web/SchedulingResultsAction.java +++ b/src/com/engine/attendance/component/persongroup/web/SchedulingResultsAction.java @@ -1,10 +1,11 @@ -package com.engine.attendance.persongroup.web; +package com.engine.attendance.component.persongroup.web; -import com.engine.attendance.persongroup.service.SchedulingResultsService; -import com.engine.attendance.persongroup.service.impl.SchedulingResultsServiceImpl; +import com.engine.attendance.component.persongroup.service.SchedulingResultsService; +import com.engine.attendance.component.persongroup.service.impl.SchedulingResultsServiceImpl; import com.engine.common.util.ApiReturnTools; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import lombok.extern.slf4j.Slf4j; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -13,7 +14,7 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import java.util.Map; - +@Slf4j public class SchedulingResultsAction { private SchedulingResultsService basicsetService = ServiceUtil.getService(SchedulingResultsServiceImpl.class); @@ -25,8 +26,13 @@ public class SchedulingResultsAction { @Path("/getSchedulingData") @Produces({"text/plain"}) public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) { - Map paramMap = ParamUtil.request2Map(request); - Map dataMap = basicsetService.queryDataTable(paramMap); - return ApiReturnTools.success(dataMap); + try { + Map paramMap = ParamUtil.request2Map(request); + Map dataMap = basicsetService.queryDataTable(paramMap); + return ApiReturnTools.success(dataMap); + }catch (Exception e){ + log.error("execute fail,catch error: [{}]",e); + return ApiReturnTools.error("500","saveApplicableOrganization error"); + } } } diff --git a/src/com/engine/attendance/enums/AttendanceItemType.java b/src/com/engine/attendance/enums/AttendanceItemType.java new file mode 100644 index 0000000..1fa2336 --- /dev/null +++ b/src/com/engine/attendance/enums/AttendanceItemType.java @@ -0,0 +1,28 @@ +package com.engine.attendance.enums; + +import com.finance.toolkit.BaseEnum; + +public enum AttendanceItemType implements BaseEnum { + LATE("0","迟到"), + LEAVE_EARLY("1","早退"), + ABSENTEESIM("2","旷工"),; + + private String key; + private String value; + + AttendanceItemType(String key,String value){ + this.key=key; + this.value=value; + } + + + @Override + public String getKey() { + return this.key; + } + + @Override + public String getValue() { + return this.value; + } +} diff --git a/src/com/engine/attendance/workflow/README.md b/src/com/engine/attendance/workflow/README.md new file mode 100644 index 0000000..1097df6 --- /dev/null +++ b/src/com/engine/attendance/workflow/README.md @@ -0,0 +1,4 @@ +# attendance.attendanceAnalysis +## 考勤流程模块 +## + diff --git a/src/com/engine/attendance/workflow/service/ProcessSubmitCheckService.java b/src/com/engine/attendance/workflow/service/ProcessSubmitCheckService.java index f97f95b..555c4c1 100644 --- a/src/com/engine/attendance/workflow/service/ProcessSubmitCheckService.java +++ b/src/com/engine/attendance/workflow/service/ProcessSubmitCheckService.java @@ -1,4 +1,7 @@ package com.engine.attendance.workflow.service; +import java.util.Map; + public interface ProcessSubmitCheckService { + Map processSubmitCheck(Map params); } diff --git a/src/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.java b/src/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.java index 45c06d7..9f35191 100644 --- a/src/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.java +++ b/src/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.java @@ -1,4 +1,88 @@ package com.engine.attendance.workflow.service.impl; -public interface ProcessSubmitCheckServiceImpl { +import com.engine.attendance.workflow.service.ProcessSubmitCheckService; +import com.engine.common.util.CommonUtil; +import com.engine.common.util.DateUtil; +import com.engine.common.util.DbTools; +import com.engine.core.impl.Service; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import weaver.general.Util; +import weaver.hrm.company.DepartmentComInfo; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.Set; + +@Slf4j +public class ProcessSubmitCheckServiceImpl extends Service implements ProcessSubmitCheckService { + @Override + public Map processSubmitCheck(Map params) { + String userId = Util.null2String(params.get("userId")); + String submitDate = Util.null2String(params.get("submitDate")); + String modeId = Util.null2String(params.get("modeId")); + Map resultMap = Maps.newHashMap(); + resultMap.put("result","0"); + + Set attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null); + log.info("attendanceSetIdsSets : {}",attendanceSetIdsSets); + + LocalDateTime localDateTime = DateUtil.getTime(submitDate); + int year = localDateTime.getYear(); + int month = localDateTime.getMonth().getValue(); + String sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?"; + Map departMentMap = DbTools.getSqlToMap(sql,userId); + String deptid = Util.null2String(departMentMap.get("departmentid")); + String pdeptids = ""; + try { + pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids); + pdeptids = deptid + pdeptids; + log.info("pdeptids : [{}]",pdeptids); + sql = "select a.zt,a.gzrq,a.gzsj,b.zt dtzt,b.tsbm,b.gzrq dtgzrq,b.gzsj dtgzsj from uf_jcl_kq_kqzq a left join uf_jcl_kq_kqzq_dt1 b on a.id=b.mainid where a.nd=? and a.mc=? and a.yf=?"; + if (attendanceSetIdsSets.toArray().length > 0){ + List> list = DbTools.getSqlToList(sql,year,attendanceSetIdsSets.toArray()[0],month); + for (Map dataMap : list){ + //先看人员是否在此笔考勤周期的明细中,如果在,看明细记录上的开关账状态,如果状态为关账,直接返回false,否则看明细记录上的关账日期时间是否小于当前日期时间,如果小于,返回false; + String tsbm = Util.null2String(dataMap.get("tsbm")); + String dtzt = Util.null2String(dataMap.get("dtzt")); + if (!"".equals(tsbm) && CommonUtil.ifContainStr(pdeptids,tsbm,",")){ + //明细表有值 + if (dtzt.equals("1")){ + //关账 + resultMap.put("result","1"); + }else { + String gzrq = Util.null2String(dataMap.get("dtgzrq")) +" "+Util.null2String(dataMap.get("dtgzsj")) +":00"; + if (DateUtil.getBetWeenMinutes(gzrq,submitDate,DateUtil.yyyyMMddHHmm) >0){ + resultMap.put("result","1"); + } + } + } + } + if ("0".equals(resultMap.get("result"))){ + for (Map dataMap : list){ + //先看人员是否在此笔考勤周期的明细中,如果在,看明细记录上的开关账状态,如果状态为关账,直接返回false,否则看明细记录上的关账日期时间是否小于当前日期时间,如果小于,返回false; + String zt = Util.null2String(dataMap.get("zt")); + String gzrq = Util.null2String(dataMap.get("gzrq")) +" "+Util.null2String(dataMap.get("gzsj")) +":00"; + if (zt.equals("1")){ + //关账 + resultMap.put("result","1"); + }else { + if (DateUtil.getBetWeenMinutes(gzrq,submitDate,DateUtil.yyyyMMddHHmm) >0){ + resultMap.put("result","1"); + } + + } + } + + } + } + + }catch (Exception e){ + log.error("catch error :{}",e); + } + + + return resultMap; + } } diff --git a/src/com/engine/attendance/workflow/web/ProcessSubmitCheck.java b/src/com/engine/attendance/workflow/web/ProcessSubmitCheck.java deleted file mode 100644 index c67b502..0000000 --- a/src/com/engine/attendance/workflow/web/ProcessSubmitCheck.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.engine.attendance.workflow.web; - -public class ProcessSubmitCheck { -} diff --git a/src/com/engine/attendance/workflow/web/ProcessSubmitCheckApi.java b/src/com/engine/attendance/workflow/web/ProcessSubmitCheckApi.java new file mode 100644 index 0000000..9b59da3 --- /dev/null +++ b/src/com/engine/attendance/workflow/web/ProcessSubmitCheckApi.java @@ -0,0 +1,40 @@ +package com.engine.attendance.workflow.web; + +import com.engine.attendance.workflow.service.ProcessSubmitCheckService; +import com.engine.attendance.workflow.service.impl.ProcessSubmitCheckServiceImpl; +import com.engine.common.util.ApiReturnTools; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import lombok.extern.slf4j.Slf4j; + +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.Map; + +@Slf4j +public class ProcessSubmitCheckApi { + + private ProcessSubmitCheckService basicsetService = ServiceUtil.getService(ProcessSubmitCheckServiceImpl.class); + /** + * 提交流程检查 + * @return + */ + @POST + @Path("/processSubmitCheck") + @Produces({"text/plain"}) + public String processSubmitCheck(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + Map paramMap = ParamUtil.request2Map(request); + Map dataMap = basicsetService.processSubmitCheck(paramMap); + return ApiReturnTools.success(dataMap); + }catch (Exception e){ + log.error("execute fail,catch error: [{}]",e); + return ApiReturnTools.error("500","processSubmitCheck error"); + } + + } +} diff --git a/src/com/engine/common/exception/ExceptionUtil.java b/src/com/engine/common/exception/ExceptionUtil.java new file mode 100644 index 0000000..d48dfa4 --- /dev/null +++ b/src/com/engine/common/exception/ExceptionUtil.java @@ -0,0 +1,17 @@ +package com.engine.common.exception; + +public class ExceptionUtil { + public static String getRealMessage(Throwable e) { + while (e != null) { + Throwable cause = e.getCause(); + if (cause == null) { + return e.getMessage(); + } + e = cause; + } + return ""; + } +} + + + diff --git a/src/com/engine/common/exception/SalaryRunTimeException.java b/src/com/engine/common/exception/SalaryRunTimeException.java new file mode 100644 index 0000000..6b26d4d --- /dev/null +++ b/src/com/engine/common/exception/SalaryRunTimeException.java @@ -0,0 +1,15 @@ +package com.engine.common.exception; + +public class SalaryRunTimeException extends RuntimeException { + public SalaryRunTimeException(String message) { + super(message); + } + + public SalaryRunTimeException(Throwable cause) { + super(cause); + } + + public SalaryRunTimeException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/src/com/engine/common/util/CommonUtil.java b/src/com/engine/common/util/CommonUtil.java index e7ce3f3..6003c6f 100644 --- a/src/com/engine/common/util/CommonUtil.java +++ b/src/com/engine/common/util/CommonUtil.java @@ -1,8 +1,15 @@ package com.engine.common.util; +import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil; +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 CommonUtil { @@ -50,4 +57,88 @@ public class CommonUtil { return updateSql; } + + public static Set getDataIds(String resourceId,String modeId,String startDate,String endDate){ + + String sql = "select dxlx,dataid,dx from uf_syzz where modeid=?"; + List> organizationList = DbTools.getSqlToList(sql,modeId); + sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?"; + Map departMentMap = DbTools.getSqlToMap(sql,resourceId); + Set dataIds = Sets.newHashSet(); + Map>> organizationListGroupBydxlx = organizationList.stream().collect(Collectors.groupingBy(e ->e.get("dxlx").toString())); + //对象类型为人员 + List> personOrganizationList = organizationListGroupBydxlx.get("0"); + //对象类型为人员组织 + List> personGroupOrganizationList = organizationListGroupBydxlx.get("1"); + //对象类型为部门 + List> departmentOrganizationList = organizationListGroupBydxlx.get("2"); + //对象类型为分部 + List> subCompanyOrganizationList = organizationListGroupBydxlx.get("3"); + if (personOrganizationList != null){ + for (Map personOrganization :personOrganizationList){ + String dx = Util.null2String(personOrganization.get("dx")); + String ids = dx.split("-")[0]; + if (ids.equals(resourceId)){ + dataIds.add(Util.null2String(personOrganization.get("dataid"))); + } + } + } + try { + if (departmentOrganizationList != null){ + String deptid = Util.null2String(departMentMap.get("departmentid")); + String pdeptids = ""; + pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids); + pdeptids = deptid + pdeptids; + log.info("pdeptids : [{}]",pdeptids); + for (Map departmentOrganization :departmentOrganizationList){ + String dx = Util.null2String(departmentOrganization.get("dx")); + String ids = dx.split("-")[0]; + for (String pdeptid : pdeptids.split(",")){ + if (pdeptid.equals(ids)){ + dataIds.add(Util.null2String(departmentOrganization.get("dataid"))); + } + } + } + } + }catch (Exception e){ + log.error("catch error :{}",e); + } + if (subCompanyOrganizationList != null){ + String subCompanyId = Util.null2String(departMentMap.get("subcompanyid1")); + for (Map subCompanyOrganization :subCompanyOrganizationList){ + String dx = Util.null2String(subCompanyOrganization.get("dx")); + String ids = dx.split("-")[0]; + if (ids.equals(subCompanyId)){ + dataIds.add(Util.null2String(subCompanyOrganization.get("dataid"))); + } + } + } + if (personGroupOrganizationList != null){ + Set personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet()); + sql = "select mainid,empid,filters,bdate,edate from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")"; + log.info("query personGroupData : {}",sql); + List> personGroupData = DbTools.getSqlToList(sql); + Set personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate); + log.info("personnelGroupIds : {}",personnelGroupIds); + for (Map personGroupOrganization :personGroupOrganizationList){ + String personnelGroupId = Util.null2String(personGroupOrganization.get("dx")).split("-")[0]; + if (personnelGroupIds.contains(personnelGroupId)){ + dataIds.add(Util.null2String(personGroupOrganization.get("dataid"))); + } + } + } + + + log.info("dataIds : {}",dataIds); + + return dataIds; + } + public static boolean ifContainStr(String fatherStr,String sonStr,String mark){ + for (String pdeptid : fatherStr.split(mark)){ + if (pdeptid.equals(mark)){ + return true; + } + } + return false; + } } diff --git a/src/com/engine/common/util/DateUtil.java b/src/com/engine/common/util/DateUtil.java index 29d26f9..989e029 100644 --- a/src/com/engine/common/util/DateUtil.java +++ b/src/com/engine/common/util/DateUtil.java @@ -38,9 +38,14 @@ public class DateUtil { return LocalDateTime.now().format(formatter); } + //获得往后日期 public static String getCurrentDatePlusDay(int day){ return LocalDateTime.now().plusDays(day).format(yyyyMMdd); } + //获得往前日期 + public static String getCurrentDateMinusDay(int day){ + return LocalDateTime.now().minusDays(day).format(yyyyMMdd); + } public static LocalDateTime getTime(String time){ @@ -114,6 +119,18 @@ public class DateUtil { long daysBetween = ChronoUnit.DAYS.between(startDate, endDate); return Math.toIntExact(daysBetween); } + /** + * 获得当前时间相差的分钟数 + * @param startTime 开始时间 yyyy-MM-dd + * @return + */ + public static int getBetWeenMinutes(String startTime,String endTime,DateTimeFormatter formatter){ + LocalDateTime startDate = LocalDateTime.parse(startTime,formatter); + LocalDateTime endDate = LocalDateTime.parse(endTime,formatter); + + long daysBetween = ChronoUnit.MINUTES.between(startDate, endDate); + return Math.toIntExact(daysBetween); + } /** * 获得两个时间相差的小时 diff --git a/src/com/engine/common/util/ResponseResult.java b/src/com/engine/common/util/ResponseResult.java new file mode 100644 index 0000000..ef86aa5 --- /dev/null +++ b/src/com/engine/common/util/ResponseResult.java @@ -0,0 +1,177 @@ +package com.engine.common.util; + + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.engine.common.exception.ExceptionUtil; +import com.engine.common.exception.SalaryRunTimeException; +import com.engine.common.service.HrmCommonService; +import com.engine.common.service.impl.HrmCommonServiceImpl; +import com.engine.core.exception.ECException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import weaver.general.BaseBean; +import weaver.hrm.User; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 请求执行器 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class ResponseResult { + + private static final long serialVersionUID = 1L; + + private final User user; + + private final HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + + private final BaseBean baseBean = new BaseBean(); + + private final Boolean isLog = "true".equals(baseBean.getPropValue("hrmSalary", "log")); + + public ResponseResult(User user) { + this.user = user; + } + + + /** + * 统一返回方法 + */ + public String run(Function f, T t) { + try { + if (isLog) { + log.info("run salary api , param {}", t); + } + return Ok(f.apply(t)); + } catch (SalaryRunTimeException e) { + log.error("salary api run fail , param {}", t, e); + return Error(e.getMessage()); + } catch (ECException e) { + log.error("salary api run fail , param {}", t, e); + Throwable cause = e.getCause(); + String message = ""; + while (cause != null) { + Throwable causeTmp = cause.getCause(); + if (causeTmp == null) { + message = cause.getMessage(); + } + cause = causeTmp; + } + return Error(message); + } catch (Exception e) { + log.error("salary api run fail , param {}", t, e); + return Error("系统异常!"); + } + } + + /** + * 统一返回方法(有参无返回) + */ + public String run(Consumer f, T t) { + try { + if (isLog) { + log.info("run salary api , param {}", t); + } + f.accept(t); + return Ok(); + } catch (SalaryRunTimeException e) { + log.error("salary api run fail , param {}", t, e); + return Error(e.getMessage()); + } catch (ECException e) { + log.error("salary api run fail , param {}", t, e); + return Error(ExceptionUtil.getRealMessage(e)); + } catch (Exception e) { + log.error("salary api run fail , param {}", t, e); + return Error("系统异常!", e); + } + } + + + /** + * 统一返回方法(无参有返回) + */ + public String run(Supplier f) { + try { + if (isLog) { + log.info("run salary api"); + } + return Ok(f.get()); + } catch (SalaryRunTimeException e) { + log.error("salary api run fail", e); + return Error(e.getMessage()); + } catch (ECException e) { + log.error("salary api run fail", e); + Throwable cause = e.getCause(); + return Error(cause.getMessage()); + } catch (Exception e) { + log.error("salary api run fail", e); + return Error("系统异常!", e); + } + } + + + private static String getJsonString(Object apidatas) throws JsonProcessingException { + ObjectMapper mapper = new ObjectMapper(); + return mapper.writeValueAsString(apidatas); + } + + /** + * 成功返回 + */ + private String Ok() { + Map apidatas = new HashMap<>(); + apidatas.put("status", true); + return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect); + } + + + /** + * 成功返回 + */ + private String Ok(R r) throws JsonProcessingException { + Map apidatas = new HashMap<>(); + apidatas.put("status", true); + apidatas.put("data", r); + String success = getJsonString(apidatas); + if (isLog) { + log.info("run salary api success return {}", success); + } + return success; + } + + + /** + * 失败返回 + */ + private static String Error(String message) { + Map apidatas = new HashMap<>(); + apidatas.put("status", false); + apidatas.put("errormsg", message); + return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect); + } + + + /** + * 系统异常失败返回 + */ + private static String Error(String message, Exception e) { + Map apidatas = new HashMap<>(); + apidatas.put("status", false); + apidatas.put("errormsg", message); + apidatas.put("error", e.getMessage()); + return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect); + } + +} diff --git a/target/classes/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.class b/target/classes/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.class index c9ba7e9..7f3bd51 100644 Binary files a/target/classes/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.class and b/target/classes/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.class differ diff --git a/target/classes/com/api/attendance/persongroup/web/PersonGroupActionApi.class b/target/classes/com/api/attendance/persongroup/web/PersonGroupActionApi.class index 6e436e6..84e2e6a 100644 Binary files a/target/classes/com/api/attendance/persongroup/web/PersonGroupActionApi.class and b/target/classes/com/api/attendance/persongroup/web/PersonGroupActionApi.class differ diff --git a/target/classes/com/api/attendance/persongroup/web/SchedulingResultsActionApi.class b/target/classes/com/api/attendance/persongroup/web/SchedulingResultsActionApi.class index 3483ada..8be4b4d 100644 Binary files a/target/classes/com/api/attendance/persongroup/web/SchedulingResultsActionApi.class and b/target/classes/com/api/attendance/persongroup/web/SchedulingResultsActionApi.class differ diff --git a/target/classes/com/api/attendance/workflow/ProcessSubmitCheckActionApi.class b/target/classes/com/api/attendance/workflow/ProcessSubmitCheckActionApi.class new file mode 100644 index 0000000..93e06eb Binary files /dev/null and b/target/classes/com/api/attendance/workflow/ProcessSubmitCheckActionApi.class differ diff --git a/target/classes/com/engine/attendance/attendancePlan/README.md b/target/classes/com/engine/attendance/attendancePlan/README.md new file mode 100644 index 0000000..e71d698 --- /dev/null +++ b/target/classes/com/engine/attendance/attendancePlan/README.md @@ -0,0 +1,4 @@ +# attendance.attendanceAnalysis +## 考勤方案模块 +## + diff --git a/target/classes/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.class b/target/classes/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.class index 72ca8f5..14dc9b9 100644 Binary files a/target/classes/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.class and b/target/classes/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.class differ diff --git a/target/classes/com/engine/attendance/attendancePlan/service/AttendancePlanService.class b/target/classes/com/engine/attendance/attendancePlan/service/AttendancePlanService.class index 452e33b..194e40e 100644 Binary files a/target/classes/com/engine/attendance/attendancePlan/service/AttendancePlanService.class and b/target/classes/com/engine/attendance/attendancePlan/service/AttendancePlanService.class differ diff --git a/target/classes/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.class b/target/classes/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.class index 29d537c..1352354 100644 Binary files a/target/classes/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.class and b/target/classes/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/attendancePlan/web/AttendancePlanAction.class b/target/classes/com/engine/attendance/attendancePlan/web/AttendancePlanAction.class index 1ba19d6..4fc3e03 100644 Binary files a/target/classes/com/engine/attendance/attendancePlan/web/AttendancePlanAction.class and b/target/classes/com/engine/attendance/attendancePlan/web/AttendancePlanAction.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/README.md b/target/classes/com/engine/attendance/attendanceanalysis/README.md new file mode 100644 index 0000000..123ba41 --- /dev/null +++ b/target/classes/com/engine/attendance/attendanceanalysis/README.md @@ -0,0 +1,4 @@ +# attendance.attendanceAnalysis +## 考勤分析模块 +## 用于计算分析人员的考勤,算出正常上下班、加班、早退、迟到等一些列考勤项目,并入到出勤结果表 + diff --git a/target/classes/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.class b/target/classes/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.class new file mode 100644 index 0000000..ba163ce Binary files /dev/null and b/target/classes/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.class differ diff --git a/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class new file mode 100644 index 0000000..2d49333 Binary files /dev/null and b/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class differ diff --git a/target/classes/com/engine/attendance/component/README.md b/target/classes/com/engine/attendance/component/README.md new file mode 100644 index 0000000..6fc597b --- /dev/null +++ b/target/classes/com/engine/attendance/component/README.md @@ -0,0 +1,4 @@ +# attendance.attendanceAnalysis +## 考勤组件模块 +## person_group 人员分组功能组件 + diff --git a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCmd.class b/target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableCmd.class similarity index 64% rename from target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCmd.class rename to target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableCmd.class index 59c54b2..880d4e2 100644 Binary files a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCmd.class and b/target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableCmd.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableCountCmd.class b/target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableCountCmd.class new file mode 100644 index 0000000..57b73f5 Binary files /dev/null and b/target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableCountCmd.class differ diff --git a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.class b/target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.class similarity index 60% rename from target/classes/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.class rename to target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.class index c685100..e77cd8b 100644 Binary files a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.class and b/target/classes/com/engine/attendance/component/persongroup/cmd/GetDatatableRecurrenceCmd.class differ diff --git a/target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class b/target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class similarity index 74% rename from target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class rename to target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class index 07f8f93..71afd1a 100644 Binary files a/target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class and b/target/classes/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/SchedulingJob.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/SchedulingJob.class new file mode 100644 index 0000000..39b5e85 Binary files /dev/null and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/SchedulingJob.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class similarity index 69% rename from target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.class rename to target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class index 3a056a5..43189d6 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.class and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/DayRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class similarity index 73% rename from target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.class rename to target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class index 26523b2..2dee4be 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.class and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/MonthRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/RegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/RegularScheduling.class new file mode 100644 index 0000000..6b74e39 Binary files /dev/null and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/RegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class similarity index 64% rename from target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.class rename to target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class index d494078..4fb879a 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.class and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/WeekRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.class b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class similarity index 73% rename from target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.class rename to target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class index b5b77e0..4512199 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.class and b/target/classes/com/engine/attendance/component/persongroup/job/scheduling/tactics/YearRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/persongroup/service/PersonGroupService.class b/target/classes/com/engine/attendance/component/persongroup/service/PersonGroupService.class similarity index 68% rename from target/classes/com/engine/attendance/persongroup/service/PersonGroupService.class rename to target/classes/com/engine/attendance/component/persongroup/service/PersonGroupService.class index dfc460d..a30284f 100644 Binary files a/target/classes/com/engine/attendance/persongroup/service/PersonGroupService.class and b/target/classes/com/engine/attendance/component/persongroup/service/PersonGroupService.class differ diff --git a/target/classes/com/engine/attendance/persongroup/service/SchedulingResultsService.class b/target/classes/com/engine/attendance/component/persongroup/service/SchedulingResultsService.class similarity index 52% rename from target/classes/com/engine/attendance/persongroup/service/SchedulingResultsService.class rename to target/classes/com/engine/attendance/component/persongroup/service/SchedulingResultsService.class index 78089b1..acc98bf 100644 Binary files a/target/classes/com/engine/attendance/persongroup/service/SchedulingResultsService.class and b/target/classes/com/engine/attendance/component/persongroup/service/SchedulingResultsService.class differ diff --git a/target/classes/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.class b/target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class similarity index 90% rename from target/classes/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.class rename to target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class index dfb71d4..bb2cec1 100644 Binary files a/target/classes/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.class and b/target/classes/com/engine/attendance/component/persongroup/service/impl/PersonGroupServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.class b/target/classes/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.class similarity index 73% rename from target/classes/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.class rename to target/classes/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.class index c3acaf1..084efe3 100644 Binary files a/target/classes/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.class and b/target/classes/com/engine/attendance/component/persongroup/service/impl/SchedulingResultsServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/web/PersonGroupAction.class b/target/classes/com/engine/attendance/component/persongroup/web/PersonGroupAction.class new file mode 100644 index 0000000..7416278 Binary files /dev/null and b/target/classes/com/engine/attendance/component/persongroup/web/PersonGroupAction.class differ diff --git a/target/classes/com/engine/attendance/component/persongroup/web/SchedulingResultsAction.class b/target/classes/com/engine/attendance/component/persongroup/web/SchedulingResultsAction.class new file mode 100644 index 0000000..7b50f78 Binary files /dev/null and b/target/classes/com/engine/attendance/component/persongroup/web/SchedulingResultsAction.class differ diff --git a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.class b/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.class deleted file mode 100644 index 4d3fc92..0000000 Binary files a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.class and /dev/null differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.class b/target/classes/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.class deleted file mode 100644 index edeca6d..0000000 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.class and /dev/null differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/RegularScheduling.class b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/RegularScheduling.class deleted file mode 100644 index 0242a3b..0000000 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/RegularScheduling.class and /dev/null differ diff --git a/target/classes/com/engine/attendance/persongroup/web/PersonGroupAction.class b/target/classes/com/engine/attendance/persongroup/web/PersonGroupAction.class deleted file mode 100644 index a8f7bba..0000000 Binary files a/target/classes/com/engine/attendance/persongroup/web/PersonGroupAction.class and /dev/null differ diff --git a/target/classes/com/engine/attendance/persongroup/web/SchedulingResultsAction.class b/target/classes/com/engine/attendance/persongroup/web/SchedulingResultsAction.class deleted file mode 100644 index 08b0c36..0000000 Binary files a/target/classes/com/engine/attendance/persongroup/web/SchedulingResultsAction.class and /dev/null differ diff --git a/target/classes/com/engine/attendance/workflow/README.md b/target/classes/com/engine/attendance/workflow/README.md new file mode 100644 index 0000000..1097df6 --- /dev/null +++ b/target/classes/com/engine/attendance/workflow/README.md @@ -0,0 +1,4 @@ +# attendance.attendanceAnalysis +## 考勤流程模块 +## + diff --git a/target/classes/com/engine/attendance/workflow/service/ProcessSubmitCheckService.class b/target/classes/com/engine/attendance/workflow/service/ProcessSubmitCheckService.class new file mode 100644 index 0000000..58a2b55 Binary files /dev/null and b/target/classes/com/engine/attendance/workflow/service/ProcessSubmitCheckService.class differ diff --git a/target/classes/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.class b/target/classes/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.class new file mode 100644 index 0000000..d90d0db Binary files /dev/null and b/target/classes/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/workflow/web/ProcessSubmitCheckApi.class b/target/classes/com/engine/attendance/workflow/web/ProcessSubmitCheckApi.class new file mode 100644 index 0000000..46a6395 Binary files /dev/null and b/target/classes/com/engine/attendance/workflow/web/ProcessSubmitCheckApi.class differ diff --git a/target/classes/com/engine/common/exception/ExceptionUtil.class b/target/classes/com/engine/common/exception/ExceptionUtil.class new file mode 100644 index 0000000..db6c190 Binary files /dev/null and b/target/classes/com/engine/common/exception/ExceptionUtil.class differ diff --git a/target/classes/com/engine/common/exception/SalaryRunTimeException.class b/target/classes/com/engine/common/exception/SalaryRunTimeException.class new file mode 100644 index 0000000..3e4ef41 Binary files /dev/null and b/target/classes/com/engine/common/exception/SalaryRunTimeException.class differ diff --git a/target/classes/com/engine/common/util/CommonUtil.class b/target/classes/com/engine/common/util/CommonUtil.class index ed27918..af78150 100644 Binary files a/target/classes/com/engine/common/util/CommonUtil.class and b/target/classes/com/engine/common/util/CommonUtil.class differ diff --git a/target/classes/com/engine/common/util/DateUtil.class b/target/classes/com/engine/common/util/DateUtil.class index 0b8d0f4..24b0d14 100644 Binary files a/target/classes/com/engine/common/util/DateUtil.class and b/target/classes/com/engine/common/util/DateUtil.class differ diff --git a/target/classes/com/engine/common/util/ResponseResult.class b/target/classes/com/engine/common/util/ResponseResult.class new file mode 100644 index 0000000..c50b4ce Binary files /dev/null and b/target/classes/com/engine/common/util/ResponseResult.class differ diff --git a/target/test-classes/Test$1.class b/target/test-classes/Test$1.class deleted file mode 100644 index ee5d063..0000000 Binary files a/target/test-classes/Test$1.class and /dev/null differ diff --git a/target/test-classes/Test$2.class b/target/test-classes/Test$2.class deleted file mode 100644 index ba67dfd..0000000 Binary files a/target/test-classes/Test$2.class and /dev/null differ diff --git a/target/test-classes/Test.class b/target/test-classes/Test.class index f25b427..4df570d 100644 Binary files a/target/test-classes/Test.class and b/target/test-classes/Test.class differ diff --git a/test/Test.java b/test/Test.java index ce6e9a1..afef149 100644 --- a/test/Test.java +++ b/test/Test.java @@ -1,20 +1,25 @@ -import com.google.common.collect.Lists; -import weaver.general.Util; + + +import com.engine.common.util.CommonUtil; +import com.engine.common.util.DateUtil; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.*; -import java.util.stream.Collectors; + public class Test { public static void main(String[] args) { - List> personGroupOrganizationList = Lists.newArrayList(); - personGroupOrganizationList.add(new HashMap(){{put("dx","4-夜班人员");}}); - personGroupOrganizationList.add(new HashMap(){{put("dx","8-测试条件录入");}}); - Set personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet()); - System.out.println(String.join(",",personGroupIds)); + + System.out.println(DateUtil.getCurrentDateMinusDay(1)); +// List> personGroupOrganizationList = Lists.newArrayList(); +// personGroupOrganizationList.add(new HashMap(){{put("dx","4-夜班人员");}}); +// personGroupOrganizationList.add(new HashMap(){{put("dx","8-测试条件录入");}}); +// Set personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet()); +// System.out.println(String.join(",",personGroupIds)); } public static int getDaysBetween(String date1, String date2) {