候选班组逻辑、休息班次工作时段转加班

zm_dev
liuliang 11 months ago
parent eb123f6123
commit 73274faecd

@ -10,29 +10,17 @@
</component>
<component name="ChangeListManager">
<list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.s" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat.values.s" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat_i" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/ade958e9-d72b-48ba-8be1-0441de7da9a5/entities/entities.dat_i" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/WEB-INF/sqllog/ecologysql" beforeDir="false" afterPath="$PROJECT_DIR$/WEB-INF/sqllog/ecologysql" afterDir="false" />
<change beforePath="$PROJECT_DIR$/log/sdk.log" beforeDir="false" afterPath="$PROJECT_DIR$/log/sdk.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/artifacts/hrm_attendance/hrm-attendance.jar" beforeDir="false" afterPath="$PROJECT_DIR$/out/artifacts/hrm_attendance/hrm-attendance.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/AllowanceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/AllowanceServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/util/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/util/CommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/CommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/common/util/Utils.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/Utils.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/Tset_sy.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/Tset_sy.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/Tset_sy.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/Tset_sy.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -629,7 +617,7 @@
<workItem from="1715923672642" duration="9625000" />
<workItem from="1716168995101" duration="7410000" />
<workItem from="1716182862702" duration="18415000" />
<workItem from="1716255298319" duration="10236000" />
<workItem from="1716255298319" duration="16083000" />
</task>
<servers />
</component>
@ -668,21 +656,11 @@
<line>280</line>
<option name="timeStamp" value="99" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java</url>
<line>86</line>
<option name="timeStamp" value="101" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/workovertime/GetOvertimeDurationCmd.java</url>
<line>254</line>
<option name="timeStamp" value="102" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java</url>
<line>100</line>
<option name="timeStamp" value="103" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/workovertime/SaveWorkOverTimeCmd.java</url>
<line>38</line>

@ -280,16 +280,16 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
if (workTimeBeItems.size() > 0){
int tqdkfzs = Integer.valueOf(Util.null2String(scheduleMap.get("tqdkfzs")).equals("")?"0":Util.null2String(scheduleMap.get("tqdkfzs")));
int thdkfzs = Integer.valueOf(Util.null2String(scheduleMap.get("thdkfzs")).equals("")?"0":Util.null2String(scheduleMap.get("thdkfzs")));
int tqdkyxfzs = Integer.valueOf(workTimeBeItems.get(0).get("tqdkyxfzs").toString());
int thdkyxfzs = Integer.valueOf(workTimeBeItems.get(0).get("thdkyxfzs").toString());
int tqdkyxfzs = Util.null2String(workTimeBeItems.get(0).get("tqdkyxfzs")).equals("")?0:Integer.valueOf(Util.null2String(workTimeBeItems.get(0).get("tqdkyxfzs")));
int thdkyxfzs = Util.null2String(workTimeBeItems.get(0).get("thdkyxfzs")).equals("")?0:Integer.valueOf(Util.null2String(workTimeBeItems.get(0).get("thdkyxfzs")));
if (tqdkyxfzs > tqdkfzs){
//提前打卡分钟数
scheduleMap.put("tqdkfzs",workTimeBeItems.get(0).get("tqdkyxfzs"));
scheduleMap.put("tqdkfzs",tqdkyxfzs);
}
if (thdkyxfzs > thdkfzs){
//推后打卡分钟数
scheduleMap.put("thdkfzs",workTimeBeItems.get(0).get("thdkyxfzs"));
scheduleMap.put("thdkfzs",thdkyxfzs);
}
}
}

@ -90,7 +90,7 @@ public class SaveWorkOverTimeCmd extends AbstractCommonCommand<Map<String,Object
jbsc = Double.valueOf(Utils.getItemdurationDown(Integer.valueOf(ccqszhdhsfzs), AccountingUnitEnum.MINUTES.getKey(),Double.valueOf(jbsc).intValue()-Integer.valueOf(jbqsfzs),AccountingUnitEnum.MINUTES)).intValue()+Integer.valueOf(jbqsfzs);
}
}
if (jbsc <= 0){
if (jbsc <= 0 || "".equals(realityStartTime) || "".equals(realityEndime)){
//加班时长为0
workOverTimeItems.put("item",workTimeBeLateItems.get(0).get("key"));
workOverTimeItems.put("itemduration","0");

@ -86,10 +86,10 @@ public class AllowanceServiceImpl extends Service implements AllowanceService {
int delayMinute = Double.valueOf(Util.null2String(param.get("delayMinute"))).intValue();
List<Map<String,Object>> lateList = abnormalClockInList.stream().filter(e-> AttendanceItemTypeEnum.LATE.equals(e.get("itemType")) && (boolean)e.get("record")).collect(Collectors.toList());
lateList = lateList.stream().sorted(Comparator.comparing(e-> DateUtil.getTime(e.get("classStartTime").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
Map<String,Object> lateMap = lateList.get(0);
if (delayMinute > 0){
if (delayMinute > 0 && lateList.size() > 0){
lateList = lateList.stream().sorted(Comparator.comparing(e-> DateUtil.getTime(e.get("classStartTime").toString()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
Map<String,Object> lateMap = lateList.get(0);
//早上卡嗲
String classStartTime = Util.null2String(lateMap.get("classStartTime"));
//早上打卡时间

@ -71,9 +71,6 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
params.put("scheduleMap",scheduleMap);
//获得加班时长以及加班开始时间和结束时间
Map<String,Object> overTimeDuraionMap = commandExecutor.execute(new GetOvertimeDurationCmd(params));
double jbsc = Double.valueOf(overTimeDuraionMap.get("jbsc").toString());
String realityStartTime = overTimeDuraionMap.get("realityStartTime").toString();
String realityEndime = overTimeDuraionMap.get("realityEndime").toString();
params.putAll(overTimeDuraionMap);
//获得加班项目
Map<String,Object> itemMap = commandExecutor.execute(new SaveWorkOverTimeCmd(params));
@ -95,8 +92,9 @@ public class WorkOverTimeServiceImpl extends Service implements WorkOverTimeServ
//获得加班时长以及加班开始时间和结束时间
Map<String,Object> overTimeDuraionMap = commandExecutor.execute(new GetOvertimeDurationCmd(params));
jbsc += Double.valueOf(overTimeDuraionMap.get("jbsc").toString());
restOverTimeDuraion.add(overTimeDuraionMap);
if (overTimeDuraionMap.get("realityStartTime") != null && overTimeDuraionMap.get("realityEndime") != null){
restOverTimeDuraion.add(overTimeDuraionMap);
}
}
if (restOverTimeDuraion.size() > 0){
params.put("jbsc",jbsc);

@ -325,6 +325,12 @@ public class AttendanceAnalysisWrapper extends Service {
}else {
recordParam.put("cqzt",CheckBoxEnum.UNCHECKED.getKey());
}
//休息班次,休息班打卡自动加班不算自动加班,且为正常
if (scheduleResult.get(0).get("sfxx") != null && CheckBoxEnum.CHECKED.getKey().equals(scheduleResult.get(0).get("sfxx"))){
recordParam.put("sfxx",CheckBoxEnum.CHECKED.getKey());
recordParam.put("cqzt",CheckBoxEnum.UNCHECKED.getKey());
}
utilService.recordItem(recordParam);
return (Map<String,Object>)recordParam.get("recordDataTime");
}

@ -466,7 +466,11 @@ public class CommonUtil {
if (calendarSetIdsSets.size() > 0){
String sql = "select rqlx from uf_jcl_kq_rlxx where rlmc=? and rq=?";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,calendarSetIdsSets.toArray()[0],date);
rqlx = dataList.get(0).get("rqlx").toString();
if (dataList.size() > 0){
rqlx = dataList.get(0).get("rqlx").toString();
}else {
rqlx = Utils.getDateType(date);
}
}else {
rqlx = Utils.getDateType(date);
}

Loading…
Cancel
Save