Merge remote-tracking branch 'origin/main'

zm_dev
sy 10 months ago
commit 7ffed5f24e

@ -10,18 +10,31 @@
</component>
<component name="ChangeListManager">
<list default="true" id="baeb3dfb-5097-46c5-933e-6d1dab18b815" name="Changes" comment="">
<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/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/getclockInpoint/GetClockInPointCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/getclockInpoint/GetClockInPointCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetEvectionCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetEvectionCmd.java" 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/job/AttendanceAnalysisJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/ShiftServiceImpl.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$/target/classes/com/engine/attendance/attendanceanalysis/cmd/getclockInpoint/GetClockInPointCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/getclockInpoint/GetClockInPointCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/EvctionCheckAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/EvctionCheckAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/MakeUpClockInAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/MakeUpClockInAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/OvertimePlanCheckAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/OvertimePlanCheckAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/askforleave/AskForLeaveWorkFlowSubmitAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/workflow/action/askforleave/AskForLeaveWorkFlowSubmitAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetAskForLeaveCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetEvectionCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetEvectionCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/job/AttendanceAnalysisJob.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/test-classes/TestAttendanceAllowance/Test.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestAttendanceAllowance/Test.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestGetClockInPoint.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestGetClockInPoint.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/TestAttendanceAllowance/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/TestAttendanceAllowance/Test.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceplan/cmd/GetAttendanceItemsByPersonDataCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/EvctionCheckAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/EvctionCheckAction.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/MakeUpClockInAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/MakeUpClockInAction.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/OvertimePlanCheckAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/OvertimePlanCheckAction.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/askforleave/AskForLeaveWorkFlowSubmitAction.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/action/askforleave/AskForLeaveWorkFlowSubmitAction.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestObj.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestObj.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/test/TestObj.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/TestObj.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/workflow/request/hrmattendance/HrmAskForLeave_e9.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/workflow/request/hrmattendance/HrmAskForLeave_e9.jsp" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -64,7 +77,7 @@
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="com.intellij.ide.scratch.ScratchImplUtil$2/New Scratch File" value="PLAIN_TEXT" />
<property name="last_directory_selection" value="$PROJECT_DIR$/src/com/engine/kq" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/log/interceptSql" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../../资料/项目/misp" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="project.structure.last.edited" value="Artifacts" />
<property name="project.structure.proportion" value="0.15" />
@ -98,7 +111,7 @@
<command value="organzationList" />
</option>
</component>
<component name="RunManager" selected="JUnit.Test.testAnalysis">
<component name="RunManager" selected="Application.TestObj">
<configuration name="TestObj" type="Application" factoryName="Application" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestObj" />
<module name="hrm-attendance" />
@ -113,18 +126,18 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestHandleOverdueVocation.test1" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<configuration name="Test2.testAnalysis" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="vocation.*" />
<option name="PATTERN" value="TestAttendanceAllowance.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="vocation" />
<option name="MAIN_CLASS_NAME" value="vocation.TestHandleOverdueVocation" />
<option name="METHOD_NAME" value="test1" />
<option name="PACKAGE_NAME" value="TestAttendanceAllowance" />
<option name="MAIN_CLASS_NAME" value="TestAttendanceAllowance.Test2" />
<option name="METHOD_NAME" value="testAnalysis" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
@ -164,7 +177,7 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test.testjob" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<configuration name="Test.testRealse2" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<extension name="coverage">
@ -175,24 +188,24 @@
</extension>
<option name="PACKAGE_NAME" value="TestAttendanceAllowance" />
<option name="MAIN_CLASS_NAME" value="TestAttendanceAllowance.Test" />
<option name="METHOD_NAME" value="testjob" />
<option name="METHOD_NAME" value="testRealse2" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestgetDepartSchedule.test2" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<configuration name="Test.testRealse3" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="calendarscheduling.*" />
<option name="PATTERN" value="TestAttendanceAllowance.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="calendarscheduling" />
<option name="MAIN_CLASS_NAME" value="calendarscheduling.TestgetDepartSchedule" />
<option name="METHOD_NAME" value="test2" />
<option name="PACKAGE_NAME" value="TestAttendanceAllowance" />
<option name="MAIN_CLASS_NAME" value="TestAttendanceAllowance.Test" />
<option name="METHOD_NAME" value="testRealse3" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
@ -208,10 +221,10 @@
<recent_temporary>
<list>
<item itemvalue="JUnit.Test.testAnalysis" />
<item itemvalue="JUnit.Test2.testAnalysis" />
<item itemvalue="JUnit.Test.testRealse3" />
<item itemvalue="JUnit.Test.testRealse2" />
<item itemvalue="JUnit.Test.testRealse" />
<item itemvalue="JUnit.TestHandleOverdueVocation.test1" />
<item itemvalue="JUnit.Test.testjob" />
<item itemvalue="JUnit.TestgetDepartSchedule.test2" />
</list>
</recent_temporary>
</component>
@ -676,7 +689,15 @@
<workItem from="1718280362028" duration="2496000" />
<workItem from="1718328466535" duration="2031000" />
<workItem from="1718333102151" duration="5660000" />
<workItem from="1718343971324" duration="1223000" />
<workItem from="1718343971324" duration="15352000" />
<workItem from="1718542163415" duration="4633000" />
<workItem from="1718588032031" duration="6391000" />
<workItem from="1718602283054" duration="18057000" />
<workItem from="1718673708438" duration="7978000" />
<workItem from="1718689112025" duration="19275000" />
<workItem from="1718760434739" duration="122000" />
<workItem from="1718760572040" duration="8008000" />
<workItem from="1718775253782" duration="20559000" />
</task>
<servers />
</component>
@ -732,8 +753,18 @@
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java</url>
<line>115</line>
<option name="timeStamp" value="167" />
<line>382</line>
<option name="timeStamp" value="170" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java</url>
<line>418</line>
<option name="timeStamp" value="171" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/component/persongroup/commonutil/PersongroupCommonUtil.java</url>
<line>260</line>
<option name="timeStamp" value="172" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -6,10 +6,12 @@ import com.engine.common.entity.BizLogContext;
import com.engine.common.util.DateUtil;
import com.engine.common.util.Utils;
import com.engine.core.interceptor.CommandContext;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -62,9 +64,23 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
/**
*
*/
abnormalClockInList = abnormalClockInList.stream().filter(e->e.get("bdlx").equals(ClassSegmentTypeEnum.WORK_TIME.getKey())).collect(Collectors.toList());
//abnormalClockInList = abnormalClockInList.stream().filter(e->e.get("bdlx").equals(ClassSegmentTypeEnum.WORK_TIME.getKey())).collect(Collectors.toList());
Map<Object,List<Map<String,Object>>> abnormalClockInGroupMap = abnormalClockInList.stream().filter(e->e.get("bdlx").equals(ClassSegmentTypeEnum.WORK_TIME.getKey()))
.collect(Collectors.groupingBy(e->e.get("clcokInTimeData")));
List<Map<String,Object>> filterAbnormalList = Lists.newArrayList();
abnormalClockInGroupMap.entrySet().forEach(e->{
List<Map<String,Object>> list = e.getValue();
if (list.size() > 1){
list = list.stream().sorted(Comparator.comparing(f->(Integer)f.get("betweenMinutes"))).collect(Collectors.toList());
filterAbnormalList.add(list.get(list.size()-1));
list.get(list.size()-1).put("record",true);
}else if (list.size() == 1){
filterAbnormalList.add(list.get(0));
}
});
double abnormalTime = 0;
for (Map<String,Object> abnormalClockInMap : abnormalClockInList){
for (Map<String,Object> abnormalClockInMap : filterAbnormalList){
AttendanceItemTypeEnum itemType = (AttendanceItemTypeEnum)abnormalClockInMap.get("itemType");
String kczgsc = Util.null2String(abnormalClockInMap.get("kczgsc"));
@ -102,7 +118,7 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
*/
double evectionTimeTime = removeEvection(analysisDate,scheduleResult,evectionList,evectionItems,offsetEvectionAnomaly);
log.info("abnormalTime : {},askForLeaveTime : {},evectionTimeTime:{}",abnormalTime,askForLeaveTime,evectionTimeTime);
log.debug("abnormalTime : {},askForLeaveTime : {},evectionTimeTime:{}",abnormalTime,askForLeaveTime,evectionTimeTime);
double deductTime = Double.valueOf(String.format ("%.2f",(abnormalTime+askForLeaveTime+evectionTimeTime)/60));
edsc = edsc-deductTime;
if (edsc < 0){
@ -118,8 +134,7 @@ public class ComputeAttendanceDurationCmd extends AbstractCommonCommand<Map<Stri
double employTime = 0;
double edsc = Double.valueOf(scheduleResult.get(0).get("edsc").toString());
log.info("removeAskForLeave scheduleResult:{},askForLeaveList:{},askForLeaveItems:{},offsetAskForLeaveAnomaly:{}",scheduleResult,
askForLeaveList,askForLeaveItems,offsetAskForLeaveAnomaly);
for (int i=0;i<askForLeaveList.size();i++){
//请假时长
String qjsc = Util.null2String(askForLeaveList.get(i).get("qjsc"));

@ -41,7 +41,8 @@ public class GetAskForLeaveCmd extends AbstractCommonCommand<Map<String,Object>>
String userId = Util.null2String(params.get("userId"));
String analysisDate = Util.null2String(params.get("analysisDate"));
List<Map<String, Object>> scheduleResult = (List<Map<String, Object>>)params.get("scheduleResult");
String sql = "select a.qjry,a.jqlx,a.cxjqj,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id = b.mainid where a.qjry=? and b.ksrq>=? and b.ksrq<=? and (b.cxqj=0 or b.cxqj is null)";
String sql = "select b.qjry,b.jqlx,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id = b.mainid where b.qjry=? and b.ksrq>=? and b.ksrq<=? and (b.cxqj=0 or b.cxqj is null) and a.jlzt=1";
// String sql = "select b.qjry,b.jqlx,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl_dt1 b where b.qjry=? and b.ksrq>=? and b.ksrq<=? and (b.cxqj=0 or b.cxqj is null)";
List<Map<String,Object>> askForLeaveList = DbTools.getSqlToList(sql,userId, DateUtil.beforeDay(analysisDate,1),DateUtil.AfterDay(analysisDate,1));
Map<String,Map<String,Object>> askForLeaveItems = Maps.newHashMap();
@ -54,17 +55,17 @@ public class GetAskForLeaveCmd extends AbstractCommonCommand<Map<String,Object>>
List<Map<String,Object>> haveAskForLeaveList = askForLeaveList.stream().filter(e->{
String kssj = e.get("ksrq")+" "+e.get("kssj");
String jssj = e.get("jsrq")+" "+e.get("jssj");
if (e.get("ksrq").equals(analysisDate) && !"1".equals(e.get("cxjqj"))){
if (e.get("ksrq").equals(analysisDate) && "".equals(Util.null2String(e.get("kssj")))){
jplxSet.add(e.get("jqlx").toString());
return true;
}else if ("1".equals(e.get("cxjqj")) && DateUtil.getTime(kssj).compareTo(DateUtil.getTime(lastjssj)) <0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(firstKssj)) >0 ){
}else if (!"".equals(Util.null2String(e.get("kssj"))) && DateUtil.getTime(kssj).compareTo(DateUtil.getTime(lastjssj)) <0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(firstKssj)) >0 ){
jplxSet.add(e.get("jqlx").toString());
return true;
}else {
return false;
}
}).collect(Collectors.toList());
log.info("haveAskForLeaveList : [{}]",haveAskForLeaveList);
log.debug("haveAskForLeaveList : [{}]",haveAskForLeaveList);

@ -90,7 +90,7 @@ public class GetClockInTimeItemCmd extends AbstractCommonCommand<Map<String,Obje
}
resultList = resultList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
log.info("needGetDate : [{}],resultList : [{}]",needGetDate,resultList);
log.debug("needGetDate : [{}],resultList : [{}]",needGetDate,resultList);
resultMap.put("resultList",resultList);
return resultMap;
}

@ -166,7 +166,7 @@ public class GetClockInTimeListCmd extends AbstractCommonCommand<Map<String,Obje
earliestTime = DateUtil.AfterSeconds(earliestTime,1);
}
log.info("earliestTime :[{}],lastestTime: [{}]",earliestTime,lastestTime);
log.debug("earliestTime :[{}],lastestTime: [{}]",earliestTime,lastestTime);
String finalEarliestTime = earliestTime;
String finalLastestTime = lastestTime;
List<Map<String,Object>> effectiveclockInTimeList = clockInTimeList.stream().filter(e->{

@ -41,7 +41,8 @@ public class GetEvectionCmd extends AbstractCommonCommand<Map<String,Object>> {
String userId = Util.null2String(params.get("userId"));
String analysisDate = Util.null2String(params.get("analysisDate"));
List<Map<String, Object>> scheduleResult = (List<Map<String, Object>>)params.get("scheduleResult");
String sql = "select b.ccr,a.cclx,a.ccsd,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr=? and b.ksrq>=? and b.ksrq<=? and (b.cxcc=0 or b.cxcc is null)";
//String sql = "select b.ccr,a.cclx,a.ccsd,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr=? and b.ksrq>=? and b.ksrq<=? and (b.cxcc=0 or b.cxcc is null)";
String sql = "select b.ccr,b.cclx,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr=? and b.ksrq>=? and b.ksrq<=? and (b.cxcc=0 or b.cxcc is null) and a.jlzt=1";
List<Map<String,Object>> evectionList = DbTools.getSqlToList(sql,userId, DateUtil.beforeDay(analysisDate,1),DateUtil.AfterDay(analysisDate,1));
Map<String,Map<String,Object>> evectionItems = Maps.newHashMap();
@ -54,17 +55,17 @@ public class GetEvectionCmd extends AbstractCommonCommand<Map<String,Object>> {
List<Map<String,Object>> haveEvectionList = evectionList.stream().filter(e->{
String kssj = e.get("ksrq")+" "+e.get("kssj");
String jssj = e.get("jsrq")+" "+e.get("jssj");
if (e.get("ksrq").equals(analysisDate) && !"1".equals(e.get("ccsd"))){
if (e.get("ksrq").equals(analysisDate) && "".equals(Util.null2String(e.get("kssj")))){
cclxSet.add(e.get("cclx").toString());
return true;
}else if ("1".equals(e.get("ccsd")) && DateUtil.getTime(kssj).compareTo(DateUtil.getTime(lastjssj)) <0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(firstKssj)) >0){
}else if (!"".equals(Util.null2String(e.get("kssj"))) && DateUtil.getTime(kssj).compareTo(DateUtil.getTime(lastjssj)) <0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(firstKssj)) >0){
cclxSet.add(e.get("cclx").toString());
return true;
}else {
return false;
}
}).collect(Collectors.toList());
log.info("haveEvectionList : [{}]",haveEvectionList);
log.debug("haveEvectionList : [{}]",haveEvectionList);
List<Map<String,Object>> resultList = Lists.newArrayList();
List<Map<String,Object>> evectionSchedule = Lists.newArrayList();

@ -24,7 +24,9 @@ import java.util.stream.Collectors;
/**
*
* ShiftServiceImplgetSchedulingInFormation
* !!!!!!!!!!!!!!!
* ****ShiftServiceImplgetSchedulingInFormation****
*
*/
@Slf4j
public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,Object>> {
@ -111,8 +113,8 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
}
/** 加班计划*/
sql = "select b.jbry,b.ksrq,b.kssj,a.jblx,b.jsrq,b.jssj,b.jbsc from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.jbry =? and b.ksrq>=? and b.ksrq<=? and (b.jbcx=0 or b.jbcx is null)";
Map<String,List<Map<String,Object>>> overtimePlanMap = DbTools.getSqlToList(sql,params.get("pbdx"),params.get("startDate"),params.get("endDate")).stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("ksrq"))));
sql = "select b.jbry,b.ksrq,b.kssj,a.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,params.get("pbdx"),params.get("startDate"),params.get("endDate")).stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq"))));
//考勤项目
@ -222,7 +224,7 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
schedulMap.put("schedulingResultsMap",resultMap);
schedulMap.put("clockInTimeDataMap",clockInTimeDataMap);
log.info("SchedulingResults : [{}]",resultMap);
log.info("SchedulingResults : [{}]",schedulMap);
return schedulMap;
}

@ -96,7 +96,7 @@ public class RecordDataCmd extends AbstractCommonCommand<Map<String,Object>> {
}
sql = sql.substring(0,sql.length()-1) +" where ygid=? and rq=?";
log.info("update sql : {}",sql);
log.debug("update sql : {}",sql);
DbTools.update(sql,userId,analysisDate);
}else {
sql = "select subcompanyid1,departmentid,jobtitle from hrmresource where id=?";
@ -155,8 +155,8 @@ public class RecordDataCmd extends AbstractCommonCommand<Map<String,Object>> {
}
value = value.substring(0,value.length()-1);
sql = sql +cloumns +") values ("+value+")";
log.info("insert sql : {}",sql);
log.info("insert data : {}",insertDatas);
log.debug("insert sql : {}",sql);
log.debug("insert data : {}",insertDatas);
DbTools.update(sql,insertDatas.toArray());
}

@ -40,7 +40,6 @@ public class AdjustByWorkOverTimeCmd extends AbstractCommonCommand<Map<String, O
List<Map<String, Object>> scheduleResult = (List<Map<String, Object>>)params.get("scheduleResult");
scheduleResult = scheduleResult.stream().filter(e -> !ClassSegmentTypeEnum.ASK_FOR_LEAVE.getKey().equals(e.get("bdlx")) && !ClassSegmentTypeEnum.EVECTION.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
String analysisDate = params.get("analysisDate").toString();
List<Map<String, Object>> askForLeaveAndEvctionScheduleList = (List<Map<String, Object>>)params.get("askForLeaveAndEvctionScheduleList");
List<ClockPointDTO> adjustClcokInPointList = Lists.newArrayList();
for (int i=0;i<clcokInPointList.size();i++){
ClockPointDTO clockPointDTO = clcokInPointList.get(i);

@ -1,74 +0,0 @@
package com.engine.attendance.attendanceanalysis.cmd.getclockInpoint;
import com.engine.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;
import com.engine.attendance.attendanceanalysis.dto.clockpoint.ClockPointInfo;
import com.engine.attendance.enums.ClockPointEnum;
import com.engine.common.util.DateUtil;
import com.engine.common.util.Utils;
import java.time.ZoneOffset;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
*/
public class AdjustWhenHaveTwoClockPoint implements AdjustClockPointAction{
@Override
public List<ClockPointDTO> execute(ClockPointInfo clockPointInfo) {
List<ClockPointDTO> clcokInPointList = clockPointInfo.getClcokInPointList();
List<Map<String, Object>> scheduleResult = clockPointInfo.getScheduleResult();
String analysisDate = clockPointInfo.getAnalysisDate();
clcokInPointList = clcokInPointList.stream().sorted(Comparator.comparing(e-> DateUtil.getTime(e.getClassTime()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
if (clcokInPointList.size() ==2 && clcokInPointList.get(0).getPointType() == ClockPointEnum.START
&& clcokInPointList.get(1).getPointType() == ClockPointEnum.END){
if (clcokInPointList.get(0).getTimeType() == ClockPointEnum.EMPTY){
//当上班存在漏卡时则全天漏卡
for (Map<String, Object> map :scheduleResult){
if (!Utils.getkssjTime(map,analysisDate).equals(clcokInPointList.get(0).getClassTime())){
clcokInPointList.add(ClockPointDTO.builder().classTime(Utils.getkssjTime(map,analysisDate)).pointType(ClockPointEnum.START).timeType(ClockPointEnum.EMPTY).classSegmentType(map.get("bdlx").toString())
.record(false).build());
}
}
}
if (clcokInPointList.get(1).getTimeType() == ClockPointEnum.EMPTY){
//当上班存在漏卡时则全天漏卡
for (Map<String, Object> map :scheduleResult){
if (!Utils.getjssjTime(map,analysisDate).equals(clcokInPointList.get(1).getClassTime())){
clcokInPointList.add(ClockPointDTO.builder().classTime(Utils.getjssjTime(map,analysisDate)).pointType(ClockPointEnum.END).timeType(ClockPointEnum.EMPTY).classSegmentType(map.get("bdlx").toString())
.record(false).build());
}
}
}
if (clcokInPointList.get(1).getTimeType() != ClockPointEnum.EMPTY && clcokInPointList.get(0).getTimeType() != ClockPointEnum.EMPTY){
//上班时间
String toWorkTime = clcokInPointList.get(0).getClockTime().get("signdate")+" "+clcokInPointList.get(0).getClockTime().get("signtime");
//下班时间
String afterWorkTime = clcokInPointList.get(1).getClockTime().get("signdate")+" "+clcokInPointList.get(1).getClockTime().get("signtime");
if (clcokInPointList.get(0).getTimeType() == ClockPointEnum.AFTER){
//上班迟到
for (Map<String, Object> map :scheduleResult){
String kssj = Utils.getkssjTime(map,analysisDate);
String jssj = Utils.getjssjTime(map,analysisDate);
if (kssj.equals(clcokInPointList.get(0).getClassTime())){
}
}
}
if (clcokInPointList.get(1).getTimeType() == ClockPointEnum.BEFORE){
//下班早退
}
}
}
return null;
}
}

@ -56,11 +56,11 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
List<Map<String, Object>> needClockInList = scheduleResult.stream().filter(e -> !ClassSegmentTypeEnum.REST_AND_DINE.getKey().equals(e.get("bdlx")) && !ClassSegmentTypeEnum.REST_PERIOD.getKey().equals(e.get("bdlx")) &&
!ClassSegmentTypeEnum.DINING_PERIOD.getKey().equals(e.get("bdlx")) ).collect(Collectors.toList());
log.info("未重新计算卡点时 老的scheduleResult : [{}],askForLeaveAndEvctionScheduleList:[{}]",scheduleResult,askForLeaveAndEvctionScheduleList);
log.debug("未重新计算卡点时 老的scheduleResult : [{}],askForLeaveAndEvctionScheduleList:[{}]",scheduleResult,askForLeaveAndEvctionScheduleList);
//调整加班计时间段的打卡
scheduleResult = adjustWorkOverTimeClock(scheduleResult,analysisDate);
log.info("经过adjustWorkOverTimeClock 加班调整过后的 的scheduleResult: [{}]",scheduleResult);
log.debug("经过adjustWorkOverTimeClock 加班调整过后的 的scheduleResult: [{}]",scheduleResult);
/**
*
@ -244,6 +244,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
List<ClockPointDTO> clcokInPointList = getClockInPoint(analysisDate, scheduleResult, clockInTimeList,needClockDateList);
log.info("clcokInPointList :[{}]",clcokInPointList);
resultMap.put("clcokInPointList", clcokInPointList);
resultMap.put("scheduleResult",scheduleResult);
@ -414,7 +415,6 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
resetClcokDTO.setClockTime(newClockTimeMap);
}
}else {
resetClcokDTO.setTimeType(newtimeType);
resetClcokDTO.setClockTime(newClockTimeMap);
}
@ -431,6 +431,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
resetClcokDTO = beforeClcokDTO;
}
resetClcokDTO.setClockTime(null);
resetClcokDTO.setTimeType(ClockPointEnum.EMPTY);
}
}
}

@ -0,0 +1,176 @@
package com.engine.attendance.attendanceanalysis.cmd.getclockInpoint;
import com.engine.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;
import com.engine.attendance.attendanceanalysis.dto.clockpoint.ClockPointInfo;
import com.engine.attendance.enums.ClockPointEnum;
import com.engine.common.util.DateUtil;
import com.engine.common.util.Utils;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import java.time.ZoneOffset;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
*/
@Slf4j
public class MergeApairClockPoint implements AdjustClockPointAction{
private String analysisDate;
@Override
public List<ClockPointDTO> execute(ClockPointInfo clockPointInfo) {
List<ClockPointDTO> clcokInPointList = clockPointInfo.getClcokInPointList();
List<Map<String, Object>> scheduleResult = clockPointInfo.getScheduleResult();
analysisDate = clockPointInfo.getAnalysisDate();
clcokInPointList = clcokInPointList.stream().sorted(Comparator.comparing(e-> DateUtil.getTime(e.getClassTime()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
if (clcokInPointList.size() <= 1){
return clcokInPointList;
}
List<ClockPointDTO> adjustClcokInPointList = Lists.newArrayList();
for (int i=0;i<clcokInPointList.size()-1;i++){
ClockPointDTO startPointDTO = clcokInPointList.get(i);
ClockPointDTO endPointDTO = clcokInPointList.get(i+1);
if (startPointDTO.getPointType() == ClockPointEnum.START && endPointDTO.getPointType() == ClockPointEnum.END){
int startScheduleIndex = getStartScheduleIndex(startPointDTO.getClassTime(),scheduleResult);
int endScheduleIndex = getEndScheduleIndex(endPointDTO.getClassTime(),scheduleResult);
if (startScheduleIndex == endScheduleIndex){
//同属一个班段不用合并
i = i+1;
continue;
}
if (startPointDTO.getTimeType() == ClockPointEnum.EMPTY){
//开始漏卡
for (int j=startScheduleIndex+1;j<=endScheduleIndex;j++){
Map<String, Object> scheduleMap = scheduleResult.get(j);
if (!Utils.ifRestClassSegment(scheduleMap.get("bdlx").toString())){
ClockPointDTO clockPointDTO = ClockPointDTO.builder().classTime(Utils.getkssjTime(scheduleMap,analysisDate)).pointType(ClockPointEnum.START).timeType(ClockPointEnum.EMPTY)
.classSegmentType(scheduleMap.get("bdlx").toString()).record(false).build();
adjustClcokInPointList.add(clockPointDTO);
}
}
}
if (startPointDTO.getTimeType() == ClockPointEnum.AFTER){
//迟到
//打卡时间
String startClockTime = startPointDTO.getClockTime().get("signdate")+" "+startPointDTO.getClockTime().get("signtime");
if (DateUtil.getTime(startClockTime).compareTo(DateUtil.getTime(Utils.getjssjTime(scheduleResult.get(startScheduleIndex),analysisDate))) > 0){
int index = getAfterAccordWithScheduleIndex(startClockTime,scheduleResult,startScheduleIndex);
for (int j=startScheduleIndex+1;j<=index;j++){
Map<String, Object> scheduleMap = scheduleResult.get(j);
if (!Utils.ifRestClassSegment(scheduleMap.get("bdlx").toString())){
ClockPointDTO clockPointDTO = ClockPointDTO.builder().classTime(Utils.getkssjTime(scheduleMap,analysisDate)).pointType(ClockPointEnum.START).timeType(ClockPointEnum.AFTER)
.classSegmentType(scheduleMap.get("bdlx").toString()).record(false).clockTime(startPointDTO.getClockTime()).build();
// if (j<index){
// clockPointDTO.getClockTime().put("signdate",Utils.getjssjTime(scheduleMap,analysisDate).split(" ")[0]);
// clockPointDTO.getClockTime().put("signtime",Utils.getjssjTime(scheduleMap,analysisDate).split(" ")[1]);
// }
adjustClcokInPointList.add(clockPointDTO);
}
}
// startPointDTO.getClockTime().put("signdate",Utils.getjssjTime(scheduleResult.get(startScheduleIndex),analysisDate).split(" ")[0]);
// startPointDTO.getClockTime().put("signtime",Utils.getjssjTime(scheduleResult.get(startScheduleIndex),analysisDate).split(" ")[1]);
}
}
if (endPointDTO.getTimeType() == ClockPointEnum.EMPTY){
//结束漏卡
for (int j=startScheduleIndex;j<endScheduleIndex;j++){
Map<String, Object> scheduleMap = scheduleResult.get(j);
if (!Utils.ifRestClassSegment(scheduleMap.get("bdlx").toString())){
ClockPointDTO clockPointDTO = ClockPointDTO.builder().classTime(Utils.getjssjTime(scheduleMap,analysisDate)).pointType(ClockPointEnum.END).timeType(ClockPointEnum.EMPTY)
.classSegmentType(scheduleMap.get("bdlx").toString()).record(false).build();
adjustClcokInPointList.add(clockPointDTO);
}
}
}
if (endPointDTO.getTimeType() == ClockPointEnum.BEFORE){
//早退
//打卡时间
String endClockTime = endPointDTO.getClockTime().get("signdate")+" "+endPointDTO.getClockTime().get("signtime");
if (DateUtil.getTime(endClockTime).compareTo(DateUtil.getTime(Utils.getkssjTime(scheduleResult.get(endScheduleIndex),analysisDate))) < 0){
int index = getBeforeAccordWithScheduleIndex(endClockTime,scheduleResult,endScheduleIndex);
for (int j=index;j<endScheduleIndex;j++){
Map<String, Object> scheduleMap = scheduleResult.get(j);
if (!Utils.ifRestClassSegment(scheduleMap.get("bdlx").toString())){
ClockPointDTO clockPointDTO = ClockPointDTO.builder().classTime(Utils.getjssjTime(scheduleMap,analysisDate)).pointType(ClockPointEnum.END).timeType(ClockPointEnum.BEFORE)
.classSegmentType(scheduleMap.get("bdlx").toString()).record(false).clockTime(endPointDTO.getClockTime()).build();
// if (j>index){
// clockPointDTO.getClockTime().put("signdate",Utils.getkssjTime(scheduleMap,analysisDate).split(" ")[0]);
// clockPointDTO.getClockTime().put("signtime",Utils.getkssjTime(scheduleMap,analysisDate).split(" ")[1]);
// }
adjustClcokInPointList.add(clockPointDTO);
}
}
// endPointDTO.getClockTime().put("signdate",Utils.getkssjTime(scheduleResult.get(endScheduleIndex),analysisDate).split(" ")[0]);
// endPointDTO.getClockTime().put("signtime",Utils.getkssjTime(scheduleResult.get(endScheduleIndex),analysisDate).split(" ")[1]);
}
}
i = i+1;
}
}
adjustClcokInPointList.addAll(clcokInPointList);
log.debug("AdjustByWorkOverTimeCmd : [{}]",adjustClcokInPointList);
return adjustClcokInPointList;
}
/**
*
* @return
*/
public int getAfterAccordWithScheduleIndex(String startClockTime,List<Map<String, Object>> scheduleResult,int startScheduleIndex){
for (int i=startScheduleIndex+1;i<scheduleResult.size();i++){
String kssj = Utils.getkssjTime(scheduleResult.get(i),analysisDate);
String jssj = Utils.getjssjTime(scheduleResult.get(i),analysisDate);
if (DateUtil.getTime(startClockTime).compareTo(DateUtil.getTime(kssj))>=0 &&
DateUtil.getTime(startClockTime).compareTo(DateUtil.getTime(jssj)) <=0){
return i;
}
}
return scheduleResult.size()-1;
}
/**
*
* @return
*/
public int getBeforeAccordWithScheduleIndex(String endClockTime,List<Map<String, Object>> scheduleResult,int endScheduleIndex){
for (int i=endScheduleIndex-1;i>=0;i--){
String kssj = Utils.getkssjTime(scheduleResult.get(i),analysisDate);
String jssj = Utils.getjssjTime(scheduleResult.get(i),analysisDate);
if (DateUtil.getTime(endClockTime).compareTo(DateUtil.getTime(kssj))>=0 &&
DateUtil.getTime(endClockTime).compareTo(DateUtil.getTime(jssj)) <=0){
return i;
}
}
return 0;
}
public int getStartScheduleIndex(String time,List<Map<String, Object>> scheduleResult){
for (int i =0;i<scheduleResult.size();i++){
String dtkssj = Utils.getkssjTime(scheduleResult.get(i),analysisDate);
if (dtkssj.equals(time)){
return i;
}
}
return -1;
}
public int getEndScheduleIndex(String time,List<Map<String, Object>> scheduleResult){
for (int i =0;i<scheduleResult.size();i++){
String dtjssj = Utils.getjssjTime(scheduleResult.get(i),analysisDate);
if (dtjssj.equals(time)){
return i;
}
}
return -1;
}
}

@ -53,7 +53,7 @@ public class AbsenteeismItemCmd extends AbstractCommonCommand<Map<String,Object>
return false;
}
}).collect(Collectors.toList());
log.info("absenteeismCmd attendanceItems : [{}]",attendanceItems);
log.debug("absenteeismCmd attendanceItems : [{}]",attendanceItems);
resultMap.put("attendanceItems",attendanceItems);
return resultMap;

@ -48,7 +48,7 @@ public class BeAwayItemCmd extends AbstractCommonCommand<Map<String,Object>> {
return false;
}
}).collect(Collectors.toList());
log.info("absenteeismCmd attendanceItems : [{}]",attendanceItems);
log.debug("absenteeismCmd attendanceItems : [{}]",attendanceItems);
resultMap.put("attendanceItems",attendanceItems);
return resultMap;

@ -51,7 +51,7 @@ public class BeLateItemCmd extends AbstractCommonCommand<Map<String,Object>> {
return false;
}
}).collect(Collectors.toList());
log.info("absenteeismCmd attendanceItems : [{}]",attendanceItems);
log.debug("absenteeismCmd attendanceItems : [{}]",attendanceItems);
resultMap.put("attendanceItems",attendanceItems);
return resultMap;

@ -46,7 +46,7 @@ public class ForGetClockItemCmd extends AbstractCommonCommand<Map<String,Object>
return false;
}
}).collect(Collectors.toList());
log.info("ForGetClockItemCmd attendanceItems : [{}]",attendanceItems);
log.debug("ForGetClockItemCmd attendanceItems : [{}]",attendanceItems);
resultMap.put("attendanceItems",attendanceItems);
return resultMap;

@ -52,7 +52,6 @@ public class LeaveEarlyItemCmd extends AbstractCommonCommand<Map<String,Object>>
return false;
}
}).collect(Collectors.toList());
log.info("absenteeismCmd attendanceItems : [{}]",attendanceItems);
resultMap.put("attendanceItems",attendanceItems);
return resultMap;

@ -46,7 +46,7 @@ public class VacationItemCmd extends AbstractCommonCommand<Map<String,Object>> {
return false;
}
}).collect(Collectors.toList());
log.info("absenteeismCmd attendanceItems : [{}]",attendanceItems);
log.debug("absenteeismCmd attendanceItems : [{}]",attendanceItems);
resultMap.put("attendanceItems",attendanceItems);
return resultMap;

@ -50,7 +50,6 @@ public class WorkOvertimeItemCmd extends AbstractCommonCommand<Map<String,Object
return false;
}
}).collect(Collectors.toList());
log.info("WorkOvertimeItemCmd attendanceItems : [{}]",attendanceItems);
resultMap.put("attendanceItems",attendanceItems);
return resultMap;

@ -115,7 +115,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
if (CheckBoxEnum.CHECKED.getKey().equals(ksjbbxydk)) {
Map<String, Object> clcokInTimeData = clcokInTimeMap.get(kssj);
if (clcokInTimeData == null) {
log.info("加班开始时间漏卡: {},clcokInTimeData:{}", kssj, clcokInTimeMap);
log.debug("加班开始时间漏卡: {},clcokInTimeData:{}", kssj, clcokInTimeMap);
resultMap.put("jbsc","0");
return resultMap;
}
@ -131,7 +131,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
if (CheckBoxEnum.CHECKED.getKey().equals(jsjbbxydk)) {
Map<String, Object> clcokInTimeData = clcokInTimeMap.get(jssj);
if (clcokInTimeData == null) {
log.info("加班结束时间漏卡: {},clcokInTimeData:{}", jssj, clcokInTimeData);
log.debug("加班结束时间漏卡: {},clcokInTimeData:{}", jssj, clcokInTimeData);
resultMap.put("jbsc","0");
return resultMap;
}
@ -252,8 +252,8 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
*/
int dinnerTime = Utils.dinnerTime(realityStartTime, realityEndime, scheduleResult, analysisDate);
log.info("未扣减过的加班时长: {}", jbsc);
log.info("beLateTime :[{}],leaveElaryTime :[{}],askForLeaveTime:[{}],evectionTime:[{}],dinnerTime:[{}]", beLateTime, leaveElaryTime, askForLeaveTime, evectionTime, dinnerTime);
log.debug("未扣减过的加班时长: {}", jbsc);
log.debug("beLateTime :[{}],leaveElaryTime :[{}],askForLeaveTime:[{}],evectionTime:[{}],dinnerTime:[{}]", beLateTime, leaveElaryTime, askForLeaveTime, evectionTime, dinnerTime);
BigDecimal jbscbig = new BigDecimal(jbsc);
if (CheckBoxEnum.CHECKED.getKey().equals(zdkcjcxxsc)){
//扣除就餐时长
@ -266,7 +266,7 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
jbsc = Double.valueOf(Util.null2String(scheduleMap.get("edxss"))) * 60;
}
}
log.info("扣减过的加班时长 :[{}]", jbsc);
log.debug("扣减过的加班时长 :[{}]", jbsc);
resultMap.put("jbsc",jbsc);
resultMap.put("realityStartTime",realityStartTime);
resultMap.put("realityEndime",realityEndime);

@ -134,7 +134,7 @@ public class SaveWorkOverTimeCmd extends AbstractCommonCommand<Map<String,Object
jbsc = maxMonthTime-monthTime;
}
}
log.info("最终加班时长: {}",jbsc);
log.debug("最终加班时长: {}",jbsc);
workOverTimeItems.put("item",workTimeBeLateItems.get(0).get("key"));
double itemduration = Utils.getItemdurationDown(workOverTimeHsl,workOverTimeHsdw,Long.valueOf(Math.round(jbsc)).intValue(),AccountingUnitEnum.MINUTES);
workOverTimeItems.put("itemduration",itemduration);

@ -6,10 +6,8 @@ import com.engine.attendance.attendanceplan.service.AttendancePlanService;
import com.engine.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl;
import com.engine.attendance.workflow.service.AllowanceService;
import com.engine.attendance.workflow.service.impl.AllowanceServiceImpl;
import com.engine.common.util.DateUtil;
import com.engine.common.util.DbTools;
import com.engine.common.util.ServiceUtil;
import com.engine.common.util.Utils;
import com.engine.common.exception.AttendanceRunTimeException;
import com.engine.common.util.*;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
@ -32,13 +30,13 @@ public class AttendanceAnalysisJob extends BaseCronJob {
private String executeDate;
@Override
public void execute() {
log.info("********AttendanceAnalysisJob start********");
log.debug("********AttendanceAnalysisJob start********");
String queryUserSql = "select id from hrmresource";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String beforeFourDayDate = DateUtil.getCurrentDateMinusDay(4);
String nowDate = DateUtil.getCurrentDateMinusDay(1);
String nowDate = DateUtil.getCurrentDate();
if (executeDate != null && !"".equals(executeDate)){
nowDate = executeDate;
beforeFourDayDate = DateUtil.beforeDay(executeDate,4);
@ -46,7 +44,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
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,beforeFourDayDate,nowDate);
//补打卡记录
sql = "select id,bdkry userid,dkrq signdate,dksj signtime from uf_jcl_kq_bdkjl where dkrq >= ? and dkrq <= ? order by dkrq,dksj";
sql = "select id,bdkry userid,dkrq signdate,dksj signtime from uf_jcl_kq_bdkjl where dkrq >= ? and dkrq <= ? and jlzt=1 order by dkrq,dksj";
List<Map<String,Object>> makeUpList = DbTools.getSqlToList(sql,beforeFourDayDate,nowDate);
if (makeUpList.size() > 0){
dataList.addAll(makeUpList);
@ -57,6 +55,10 @@ public class AttendanceAnalysisJob extends BaseCronJob {
List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,DateUtil.beforeDay(nowDate,2),DateUtil.beforeDay(nowDate,1));
Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString()));
//初始化扩展类
CommonUtil.initExtensionClassHolder();
for (Map<String,Object> userMap:userList){
String userId = Util.null2String(userMap.get("id"));
//日期对应的打卡数据
@ -80,6 +82,6 @@ public class AttendanceAnalysisJob extends BaseCronJob {
param.put("startDate",DateUtil.beforeDay(nowDate,1));
param.put("endDate",nowDate);
allowanceService.addAllowanceRecords(param);
log.info("********AttendanceAnalysisJob end********");
log.debug("********AttendanceAnalysisJob end********");
}
}

@ -282,7 +282,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
String hsdw = Util.null2String(beEarlyItems.get(0).get("hsdw"));
double hsl = Double.valueOf(Util.null2String(beEarlyItems.get(0).get("hsl")));
if (!"".equals(jbzzhlfzs) && between > Integer.valueOf(jbzzhlfzs)){
log.info("between :{},jbzzhlfzs:{}",between,jbzzhlfzs);
log.debug("between :{},jbzzhlfzs:{}",between,jbzzhlfzs);
String kczgsc = Util.null2String(beEarlyItems.get(0).get("kczgsc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES);
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
@ -350,14 +350,15 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
if (workTimeBeLateItems.size() == 0){
workTimeBeLateItems = (List<Map<String,Object>>)commandExecutor.execute(new AbsenteeismItemCmd(lateParams)).get("attendanceItems");
}
if (workTimeBeLateItems.size() == 0){
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)lateParams.get("attendanceItems");
workTimeBeLateItems = attendanceItems.stream().filter(e->SystemItemEnum.MISSING_ABSENTEEISM.getKey().equals(e.get("key"))).collect(Collectors.toList());
workTimeBeLateItems.get(0).put("kczgsc",CheckBoxEnum.CHECKED.getKey());
workTimeBeLateItems.get(0).put("qbkcsc","1");
workTimeBeLateItems.get(0).put("cckcbc","1");
}
//未找到时匹配未缺勤
// if (workTimeBeLateItems.size() == 0){
// List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)lateParams.get("attendanceItems");
// workTimeBeLateItems = attendanceItems.stream().filter(e->SystemItemEnum.MISSING_ABSENTEEISM.getKey().equals(e.get("key"))).collect(Collectors.toList());
// workTimeBeLateItems.get(0).put("kczgsc",CheckBoxEnum.CHECKED.getKey());
// workTimeBeLateItems.get(0).put("qbkcsc","1");
// workTimeBeLateItems.get(0).put("cckcbc","1");
//
// }
return workTimeBeLateItems;
}
/**
@ -370,14 +371,15 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
if (workTimeBeLateItems.size() == 0){
workTimeBeLateItems = (List<Map<String,Object>>)commandExecutor.execute(new AbsenteeismItemCmd(earlyParams)).get("attendanceItems");
}
if (workTimeBeLateItems.size() == 0){
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)earlyParams.get("attendanceItems");
workTimeBeLateItems = attendanceItems.stream().filter(e->SystemItemEnum.MISSING_ABSENTEEISM.getKey().equals(e.get("key"))).collect(Collectors.toList());
workTimeBeLateItems.get(0).put("kczgsc",CheckBoxEnum.CHECKED.getKey());
workTimeBeLateItems.get(0).put("qbkcsc","1");
workTimeBeLateItems.get(0).put("cckcbc","1");
}
//未找到时匹配未缺勤
// if (workTimeBeLateItems.size() == 0){
// List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)earlyParams.get("attendanceItems");
// workTimeBeLateItems = attendanceItems.stream().filter(e->SystemItemEnum.MISSING_ABSENTEEISM.getKey().equals(e.get("key"))).collect(Collectors.toList());
// workTimeBeLateItems.get(0).put("kczgsc",CheckBoxEnum.CHECKED.getKey());
// workTimeBeLateItems.get(0).put("qbkcsc","1");
// workTimeBeLateItems.get(0).put("cckcbc","1");
//
// }
return workTimeBeLateItems;
}

@ -66,7 +66,7 @@ public class ComprehensiveWorkingHourServiceImpl extends Service implements Comp
String rqlx = Utils.getDateType(analysisDate,Util.null2String(workHourItem.get("qyrl")));
if (!CommonUtil.ifContainStr(hsgsdrqlx,rqlx,",")){
log.info("userId :[{}],analysisDate :[{}] 综合工时执行的日期不在设置的日期类型内",userId,analysisDate);
log.debug("userId :[{}],analysisDate :[{}] 综合工时执行的日期不在设置的日期类型内",userId,analysisDate);
resultMap.put("message","综合工时执行的日期不在设置的日期类型内");
resultMap.put("excute",false);
return resultMap;
@ -100,7 +100,7 @@ public class ComprehensiveWorkingHourServiceImpl extends Service implements Comp
}
double adjustBetWeenMinute = Utils.getItemdurationDown(ljcqscdhsfzs, AccountingUnitEnum.MINUTES.getKey(),betweenMinute,AccountingUnitEnum.MINUTES);
double adjustBetweenHour = new BigDecimal(adjustBetWeenMinute).divide(new BigDecimal(60),2, RoundingMode.HALF_UP).doubleValue();
log.info("betweenMinute : [{}],adjustBetWeenMinute: [{}],betweenHour:[{}]",betweenMinute,adjustBetWeenMinute,adjustBetweenHour);
log.debug("betweenMinute : [{}],adjustBetWeenMinute: [{}],betweenHour:[{}]",betweenMinute,adjustBetWeenMinute,adjustBetweenHour);
if (clockInTimeList.size() > 1){
String reportTime = clockInTimeList.get(0).get("signdate")+" "+clockInTimeList.get(0).get("signtime");
@ -121,7 +121,7 @@ public class ComprehensiveWorkingHourServiceImpl extends Service implements Comp
//早退
earlyLeaveMinute = Double.valueOf(rgzscyq*60-(betweenMinute+lateDurationTime)).intValue();
}
log.info("lateDurationTime : [{}],earlyLeaveMinute:[{}]",lateDurationTime,earlyLeaveMinute);
log.debug("lateDurationTime : [{}],earlyLeaveMinute:[{}]",lateDurationTime,earlyLeaveMinute);
if (rgzscbzhsyc.equals(CheckBoxEnum.CHECKED.getKey())){
if (lateDurationTime > 0){
//计入迟到项目
@ -334,7 +334,7 @@ public class ComprehensiveWorkingHourServiceImpl extends Service implements Comp
}
}
log.info("newClockInTimeList : [{}]",newClockInTimeList);
log.debug("newClockInTimeList : [{}]",newClockInTimeList);
return newClockInTimeList;
}
@ -356,7 +356,7 @@ public class ComprehensiveWorkingHourServiceImpl extends Service implements Comp
String time2 = clockInTimeList.get(index2).get("signdate") +" "+clockInTimeList.get(index2).get("signtime");
betweenMinute += DateUtil.getBetWeenMinutes(time1,time2);
}
log.info("betweenMinute : [{}]",betweenMinute);
log.debug("betweenMinute : [{}]",betweenMinute);
return betweenMinute;
}
@ -381,7 +381,7 @@ public class ComprehensiveWorkingHourServiceImpl extends Service implements Comp
resultMap.put("j"+(i+1),clockInTimeList.get(index1).get("signdate")+" "+clockInTimeList.get(index1).get("signtime"));
resultMap.put("c"+(i+1),clockInTimeList.get(index1).get("signdate")+" "+clockInTimeList.get(index2).get("signtime"));
}
log.info("betweenMinute : [{}]",resultMap);
log.debug("betweenMinute : [{}]",resultMap);
return resultMap;
}
}

@ -255,7 +255,7 @@ public class ShiftServiceImpl extends Service implements ShiftService {
getClockTimeParam.put("clockInTimeCollect",collect);
getClockTimeParam.put("userId",empId);
//打卡数据
log.info("getClockTimeParam : [{}]",getClockTimeParam);
log.debug("getClockTimeParam : [{}]",getClockTimeParam);
List<Map<String, Object>> clockInTimeList = utilService.getClockInTime(getClockTimeParam);
//3-组装出差和请假的数据
Map<String,Object> workingHourparam = Maps.newHashMap();
@ -352,8 +352,8 @@ public class ShiftServiceImpl extends Service implements ShiftService {
resultMap.put(punchDate,classs);
/** 加班计划*/
sql = "select b.jbry,b.ksrq,b.kssj,a.jblx,b.jsrq,b.jssj,b.jbsc from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.jbry =? and b.ksrq>=? and b.ksrq<=? and (b.jbcx=0 or b.jbcx is null)";
Map<String,List<Map<String,Object>>> overtimePlanMap = DbTools.getSqlToList(sql,params.get("pbdx"),punchDate,punchDate).stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("ksrq"))));
sql = "select b.jbry,b.ksrq,b.kssj,a.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,params.get("pbdx"),punchDate,punchDate).stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("gsrq"))));
//考勤项目
List<Map<String,Object>> attendanceItems = new ArrayList<>();
@ -459,7 +459,7 @@ public class ShiftServiceImpl extends Service implements ShiftService {
}
}
log.info("SchedulingResults : [{}]",resultMap);
log.debug("SchedulingResults : [{}]",resultMap);
return resultMap;
}

@ -2,13 +2,17 @@ package com.engine.attendance.attendanceanalysis.service.impl;
import com.engine.attendance.attendanceanalysis.cmd.*;
import com.engine.attendance.attendanceanalysis.cmd.getclockInpoint.AdjustByWorkOverTimeCmd;
import com.engine.attendance.attendanceanalysis.cmd.getclockInpoint.AdjustClockPointAction;
import com.engine.attendance.attendanceanalysis.cmd.getclockInpoint.GetClockInPointCmd;
import com.engine.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;
import com.engine.attendance.attendanceanalysis.dto.clockpoint.ClockPointInfo;
import com.engine.attendance.attendanceanalysis.service.UtilService;
import com.engine.attendance.component.persongroup.service.SchedulingResultsService;
import com.engine.attendance.component.persongroup.service.impl.SchedulingResultsServiceImpl;
import com.engine.attendance.enums.*;
import com.engine.common.util.DateUtil;
import com.engine.common.util.DbTools;
import com.engine.common.util.ExtensionClassHolder;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.google.common.collect.Maps;
@ -148,12 +152,30 @@ public class UtilServiceImpl extends Service implements UtilService {
*/
@Override
public List<ClockPointDTO> getClockInPointCmd(Map<String,Object> params) {
List<Map<String, Object>> scheduleResult = (List<Map<String, Object>>) params.get("scheduleResult");
Map<String,Object> resultMap = commandExecutor.execute(new GetClockInPointCmd(params));
List<Map<String, Object>> newscheduleResult = (List<Map<String, Object>>)resultMap.get("scheduleResult");
List<Map<String, Object>> askForLeaveAndEvctionScheduleList = (List<Map<String, Object>>)resultMap.get("askForLeaveAndEvctionScheduleList");
params.putAll(resultMap);
resultMap = commandExecutor.execute(new AdjustByWorkOverTimeCmd(params));
List<ClockPointDTO> clcokInPointList = (List<ClockPointDTO>)resultMap.get("clcokInPointList");
if (!scheduleResult.equals(newscheduleResult)){
scheduleResult.removeAll(scheduleResult);
scheduleResult.addAll(newscheduleResult);
}
clcokInPointList = clcokInPointList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.getClassTime()).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
return clcokInPointList;
ClockPointInfo clockPointInfo = ClockPointInfo.builder().analysisDate(Util.null2String(params.get("analysisDate"))).clcokInPointList(clcokInPointList)
.scheduleResult(newscheduleResult).askForLeaveAndEvctionScheduleList(askForLeaveAndEvctionScheduleList).clockInTimeList((List<Map<String, Object>>) params.get("clockInTimeList")).build();
List<AdjustClockPointAction> adjustClockPointActionList = ExtensionClassHolder.getAdjustClockPointAction();
for (AdjustClockPointAction action:adjustClockPointActionList){
List<ClockPointDTO> clockPointDTOS = action.execute(clockPointInfo);
clockPointInfo.setClcokInPointList(clockPointDTOS);
}
log.info("after adjustClockPointAction : [{}]",clockPointInfo.getClcokInPointList());
return clockPointInfo.getClcokInPointList();
}
/**

@ -251,7 +251,7 @@ public class AttendanceJucailinButtonAction {
" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
boolean isOk = rs.executeUpdate(punchSql,userId,userType,signType,signDate,signTime,clientAddress,isInCom,
timeZone,belongdate,signfrom,longitude,latitude,addr,deviceInfo,showaddress);
log.info(user.getLastname()+":PunchButtonCmd:punchSql:"+punchSql+":isOk:"+isOk);
log.debug(user.getLastname()+":PunchButtonCmd:punchSql:"+punchSql+":isOk:"+isOk);
retmap.put("status", "1");
retmap.put("signdate", signDate);

@ -44,10 +44,9 @@ public class AttendanceanalysisAction {
try {
Map<String,Object> paramMap = ParamUtil.request2Map(request);
// Map<String,Object> paramMap = Maps.newHashMap();
// paramMap.put("startDate","2024-06-11");
// paramMap.put("endDate","2024-06-11");
// paramMap.put("userIds","31");
// paramMap.put("startDate","2024-05-10");
// paramMap.put("endDate","2024-05-10");
// paramMap.put("userIds","81");
String startDate = Util.null2String(paramMap.get("startDate"));
String startBeforeDate = DateUtil.beforeDay(startDate,2);
@ -55,13 +54,15 @@ public class AttendanceanalysisAction {
String endAfterDate = DateUtil.AfterDay(endDate,2);
String userIds = Util.null2String(paramMap.get("userIds"));
int betweenDays = DateUtil.getBetWeenDays(startDate,endDate);
//初始化扩展类
CommonUtil.initExtensionClassHolder();
if ("".equals(userIds)){
String queryUserSql = "select id from hrmresource";
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";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
//补打卡记录
sql = "select id,bdkry userid,dkrq signdate,dksj signtime from uf_jcl_kq_bdkjl where dkrq >= ? and dkrq <= ? order by dkrq,dksj";
sql = "select id,bdkry userid,dkrq signdate,dksj signtime from uf_jcl_kq_bdkjl where dkrq >= ? and dkrq <= ? and jlzt=1 order by dkrq,dksj";
List<Map<String,Object>> makeUpList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
if (makeUpList.size() > 0){
dataList.addAll(makeUpList);
@ -75,7 +76,9 @@ public class AttendanceanalysisAction {
for (Map<String,Object> userMap :userList){
String userId = userMap.get("id").toString();
log.debug("***********analysis userId:{} start***********", userId);
//出勤结果,进出时间
Map<String,Map<String,Object>> clockInTimeMap = Maps.newHashMap();
/**获得人员考勤项目*/
@ -109,7 +112,7 @@ public class AttendanceanalysisAction {
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();
if (attendaceResult != null && attendaceResult.size() > 0) {
if (attendaceGroupById.get(userId) != null && attendaceGroupById.get(userId).size() > 0) {
attendaceResultMap = attendaceGroupById.get(userId).stream().collect(Collectors.groupingBy(e -> e.get("rq").toString()));
}
@ -123,7 +126,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";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
//补打卡记录
sql = "select id,bdkry userid,dkrq signdate,dksj signtime from uf_jcl_kq_bdkjl where bdkry in ("+userIds+") and dkrq >= ? and dkrq <= ? order by dkrq,dksj";
sql = "select id,bdkry userid,dkrq signdate,dksj signtime from uf_jcl_kq_bdkjl where bdkry in ("+userIds+") and dkrq >= ? and dkrq <= ? and jlzt=1 order by dkrq,dksj";
List<Map<String,Object>> makeUpList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
if (makeUpList.size() > 0){
dataList.addAll(makeUpList);
@ -173,7 +176,7 @@ public class AttendanceanalysisAction {
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();
if (attendaceResult != null && attendaceResult.size() > 0) {
if (attendaceGroupById.get(userId) != null && attendaceGroupById.get(userId).size() > 0) {
attendaceResultMap = attendaceGroupById.get(userId).stream().collect(Collectors.groupingBy(e -> e.get("rq").toString()));
}
for (int i=0; i<=betweenDays;i++){
@ -209,7 +212,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";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,DateUtil.beforeDay(startDate,1),DateUtil.AfterDay(endDate,1));
//补打卡记录
sql = "select id,bdkry userid,dkrq signdate,dksj signtime, lcid, bdklx from uf_jcl_kq_bdkjl where bdkry in ("+userIds+") and dkrq >= ? and dkrq <= ? order by dkrq,dksj";
sql = "select id,bdkry userid,dkrq signdate,dksj signtime, lcid, bdklx from uf_jcl_kq_bdkjl where bdkry in ("+userIds+") and dkrq >= ? and dkrq <= ? and jlzt=1 order by dkrq,dksj";
List<Map<String,Object>> makeUpList = DbTools.getSqlToList(sql,DateUtil.beforeDay(startDate,1),DateUtil.AfterDay(endDate,1));
//考勤项目
@ -243,7 +246,7 @@ public class AttendanceanalysisAction {
Map<String, List<Map<String,Object>>> evectioncollect = evectionList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("ccr"))));
//加班计划
sql = "select b.jbry,b.ksrq,b.kssj,a.jblx,b.jsrq,b.jssj,b.jbsc from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.jbry in ("+userIds+") and b.ksrq>=? and b.ksrq<=? and (b.jbcx=0 or b.jbcx is null) order by b.ksrq,b.kssj";
sql = "select b.jbry,b.ksrq,b.kssj,a.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 in ("+userIds+") and b.gsrq>=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) a.jlzt=1 order by b.ksrq,b.kssj";
List<Map<String,Object>> overPlanDataList = DbTools.getSqlToList(sql,startDate,endDate);
for (Map<String,Object> map :overPlanDataList){
map.put("jblx_name",itemMap.get(map.get("jblx")));

@ -39,14 +39,13 @@ public class AttendanceAnalysisWrapper extends Service {
* @param dataList
* @param attendanceItems
*/
public void attendanceAnalysis(String userId, String analysisDate, List<Map<String, Object>> dataList, List<Map<String, Object>> attendanceItems, List<Map<String, Object>> workHourItems, Map<String, Map<String, Object>> clockInTimeMap, List<Map<String, Object>> attendaceResult) {
public void attendanceAnalysis(String userId, String nowDate, List<Map<String, Object>> dataList, List<Map<String, Object>> attendanceItems, List<Map<String, Object>> workHourItems, Map<String, Map<String, Object>> clockInTimeMap, List<Map<String, Object>> attendaceResult) {
log.info("***********analysis userId:{} start***********", userId);
log.info("clockInTimeDate : [{}]", dataList);
String beforeFourDayDate = DateUtil.beforeDay(analysisDate, 4);
String beforeTwoDayDate = DateUtil.beforeDay(analysisDate, 2);
String beforeOneDayDate = DateUtil.beforeDay(analysisDate, 1);
String nowDate = analysisDate;
String beforeFourDayDate = DateUtil.beforeDay(nowDate, 4);
String beforeTwoDayDate = DateUtil.beforeDay(nowDate, 2);
String beforeOneDayDate = DateUtil.beforeDay(nowDate, 1);
/** 打卡数据 */
Map<String, List<Map<String, Object>>> collect = Maps.newHashMap();
if (dataList != null && dataList.size() > 0) {
@ -83,10 +82,8 @@ public class AttendanceAnalysisWrapper extends Service {
if (beforeOneDayDateattendaceResult == null || beforeOneDayDateattendaceResult.size() == 0 || (!CheckBoxEnum.CHECKED.getKey().equals(beforeOneDayDateattendaceResult.get(0).get("sgsj")) &&
!"3".equals(beforeOneDayDateattendaceResult.get(0).get("sjzt")))) {
log.info("getClockTimeParam : [{}]", getClockTimeParam);
//前一天打卡数据
List<Map<String, Object>> beforeOneDayClockInTimeList = utilService.getClockInTime(getClockTimeParam);
log.info("beforeOneDayClockInTimeList : [{}]", beforeOneDayClockInTimeList);
//分析前一天考勤
Map<String, Object> recordDataTime1 = analysis(userId, beforeOneDayDate, beforeOneDayClockInTimeList, schedulingResultsMap.get(beforeOneDayDate), attendanceItems, workHourItems,(Map<String,Object>)schedulMap.get("clockInTimeDataMap"));
clockInTimeMap.put(beforeOneDayDate, recordDataTime1);
@ -98,7 +95,7 @@ public class AttendanceAnalysisWrapper extends Service {
!"3".equals(beforeTwoDayDateattendaceResult.get(0).get("sjzt")))) {
//前第二天打卡数据
List<Map<String, Object>> beforeTwoDayClockInTimeList = utilService.getClockInTime(getClockTimeParam);
log.info("beforeTwoDayClockInTimeList : [{}]", beforeTwoDayClockInTimeList);
log.debug("beforeTwoDayClockInTimeList : [{}]", beforeTwoDayClockInTimeList);
//分析前第二天考勤
Map<String, Object> recordDataTime2 = analysis(userId, beforeTwoDayDate, beforeTwoDayClockInTimeList, schedulingResultsMap.get(beforeTwoDayDate), attendanceItems, workHourItems,(Map<String,Object>)schedulMap.get("clockInTimeDataMap"));
clockInTimeMap.put(beforeTwoDayDate, recordDataTime2);
@ -136,7 +133,6 @@ public class AttendanceAnalysisWrapper extends Service {
getClockTimeParam.put("clockInTimeCollect", collect);
getClockTimeParam.put("userId", userId);
//打卡数据
log.info("getClockTimeParam : [{}]", getClockTimeParam);
List<Map<String, Object>> clockInTimeList = utilService.getClockInTime(getClockTimeParam);
Map<String, Object> recordDataTime = analysis(userId, analysisDate, clockInTimeList, schedulingResultsMap.get(analysisDate), attendanceItems, workHourItems,(Map<String,Object>)schedulMap.get("clockInTimeDataMap"));
clockInTimeMap.put(analysisDate, recordDataTime);
@ -260,8 +256,7 @@ public class AttendanceAnalysisWrapper extends Service {
recordAbnormalParam.put("formmodeIdMap", formModeIdMap);
log.info("recordAbnormalParam clcokInTimeList:{},attendanceItems size :{},scheduleResult :{},analysisDate:[{}],userId:[{}],rqlx:[{}],modeId:[{}]", clcokInTimeData,
attendanceItems.size(), scheduleResult, analysisDate, userId, scheduleResult.get(0).get("rqlx"));
/**
@ -307,7 +302,7 @@ public class AttendanceAnalysisWrapper extends Service {
List<Map<String, Object>> abnormalClockInListByAskForLeave = (List<Map<String, Object>>) vactionMap.get("abnormalClockInList");
List<Map<String, Object>> vactionList = (List<Map<String, Object>>) vactionMap.get("resultList");
recordAbnormalParam.put("offsetAskForLeaveAnomaly", vactionMap.get("offsetAskForLeaveAnomaly"));
log.info("请假后消除的异常 : [{}]", vactionMap.get("offsetAskForLeaveAnomaly"));
log.debug("请假后消除的异常 : [{}]", vactionMap.get("offsetAskForLeaveAnomaly"));
/**
*
*/
@ -319,7 +314,7 @@ public class AttendanceAnalysisWrapper extends Service {
recordAbnormalParam.put("abnormalClockInList", abnormalClockInListByEvction);
recordAbnormalParam.put("offsetEvectionAnomaly", recordEvection.get("offsetEvectionAnomaly"));
log.info("出差外出后消除的异常 : [{}]", recordEvection.get("offsetEvectionAnomaly"));
log.debug("出差外出后消除的异常 : [{}]", recordEvection.get("offsetEvectionAnomaly"));
/**
*
*/

@ -97,12 +97,13 @@ public class UpdateAttendanceResultWrapper extends Service {
missCardParams.put("userId",userId);
missCardParams.put("point",clcokInTimedto);
missCardParams.put("scheduleResult",scheduleResult);
log.info("missCardParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
log.debug("missCardParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
List<Map<String,Object>> iforgetClockIn = forgetClockInService.forgetClockIn(missCardParams);
if (iforgetClockIn.size() >0){
iforgetClockIn.get(0).put("pointTime",pointTime);
iforgetClockIn.get(0).put("bdlx",classInfo.get("bdlx"));
iforgetClockIn.get(0).put("record",clcokInTimedto.isRecord());
iforgetClockIn.get(0).put("clcokInTimeData",clcokInTimeData);
resultList.add(iforgetClockIn.get(0));
}
@ -120,12 +121,13 @@ public class UpdateAttendanceResultWrapper extends Service {
beLateParams.put("evectionList",evectionList);
beLateParams.put("evectionItems",evectionItems);
beLateParams.put("scheduleResult",scheduleResult);
log.info("beLateParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
log.debug("beLateParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
List<Map<String,Object>> ifBeLate = beLateService.beLate(beLateParams);
if (ifBeLate.size() > 0){
ifBeLate.get(0).put("pointTime",pointTime);
ifBeLate.get(0).put("bdlx",classInfo.get("bdlx"));
ifBeLate.get(0).put("record",clcokInTimedto.isRecord());
ifBeLate.get(0).put("clcokInTimeData",clcokInTimeData);
resultList.add(ifBeLate.get(0));
}
}else if (ClockPointEnum.END.equals(pointType) && ClockPointEnum.BEFORE.equals(timeType)){
@ -142,12 +144,13 @@ public class UpdateAttendanceResultWrapper extends Service {
leaveEarlyParams.put("evectionList",evectionList);
leaveEarlyParams.put("evectionItems",evectionItems);
leaveEarlyParams.put("scheduleResult",scheduleResult);
log.info("leaveEarlyParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
log.debug("leaveEarlyParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
List<Map<String,Object>> ifLeaveEarly = beLateService.leaveEarly(leaveEarlyParams);
if (ifLeaveEarly.size() > 0){
ifLeaveEarly.get(0).put("pointTime",pointTime);
ifLeaveEarly.get(0).put("bdlx",classInfo.get("bdlx"));
ifLeaveEarly.get(0).put("record",clcokInTimedto.isRecord());
ifLeaveEarly.get(0).put("clcokInTimeData",clcokInTimeData);
resultList.add(ifLeaveEarly.get(0));
}
}
@ -157,7 +160,7 @@ public class UpdateAttendanceResultWrapper extends Service {
// if (iforgetClockIn || ifBeLate ||ifLeaveEarly){
// return true;
// }
log.info("abnormalClockInList : [{}]",resultList);
log.debug("abnormalClockInList : [{}]",resultList);
return resultList;
}
@ -247,7 +250,7 @@ public class UpdateAttendanceResultWrapper extends Service {
if (CheckBoxEnum.CHECKED.getKey().equals(zdycbcndfgzsd)){
timeMinutes = Utils.removeRestTime(kssj,jssj,scheduleResult,analysisDate);
}
log.info("recordAskForLeave timeMinutes [{}] ,hsl:{},hsdw",timeMinutes,hsl,hsdw);
log.debug("recordAskForLeave timeMinutes [{}] ,hsl:{},hsdw",timeMinutes,hsl,hsdw);
itemduration = Utils.getItemduration(hsl,hsdw,timeMinutes,AccountingUnitEnum.MINUTES);
resultMap.put("itemduration",itemduration);
param.put("kssj",kssj);
@ -341,7 +344,7 @@ public class UpdateAttendanceResultWrapper extends Service {
if (CheckBoxEnum.CHECKED.getKey().equals(zdycbcndfgzsd)){
timeMinutes = Utils.removeRestTime(kssj,jssj,scheduleResult,analysisDate);
}
log.info("recordEvection timeMinutes [{}] ,hsl:{},hsdw",timeMinutes,hsl,hsdw);
log.debug("recordEvection timeMinutes [{}] ,hsl:{},hsdw",timeMinutes,hsl,hsdw);
itemduration = Utils.getItemduration(hsl,hsdw,timeMinutes,AccountingUnitEnum.MINUTES);
resultMap.put("itemduration",itemduration);
param.put("kssj",kssj);
@ -413,7 +416,7 @@ public class UpdateAttendanceResultWrapper extends Service {
//津贴
Map<String,Object> allowanceMap = (Map<String,Object>)params.get("allowanceMap");
log.info("userId : {} ,analysisDate: {} have no class",userId,analysisDate);
log.debug("userId : {} ,analysisDate: {} have no class",userId,analysisDate);
Map<String,Object> recordParam = Maps.newHashMap();
recordParam.put("userId",userId);

@ -66,7 +66,7 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand<Map
String pdeptids = "";
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
pdeptids = deptid + pdeptids;
log.info("pdeptids : [{}]",pdeptids);
for (Map<String,Object> departmentOrganization :departmentOrganizationList){
String dx = Util.null2String(departmentOrganization.get("dx"));
String ids = dx.split("-")[0];
@ -93,10 +93,10 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand<Map
if (personGroupOrganizationList != null){
Set<String> 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<Map<String,Object>> personGroupData = DbTools.getSqlToList(sql);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate);
log.info("personnelGroupIds : {}",personnelGroupIds);
for (Map<String,Object> personGroupOrganization :personGroupOrganizationList){
String personnelGroupId = Util.null2String(personGroupOrganization.get("dx")).split("-")[0];
if (personnelGroupIds.contains(personnelGroupId)){
@ -105,13 +105,13 @@ public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand<Map
}
}
sql = "select id keyid,mc kqxm,a.* from uf_jcl_kq_kqxm a where tyxm=1";
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>> attendanceItems = DbTools.getSqlToList(sql);
log.info("dataIds : {}",dataIds);
sql = "select b.id keyid,b.mc kqxm,c.mc famc,b.* from uf_jcl_kq_kqfa_dt1 a left join uf_jcl_kq_kqxm b on a.kqxm=b.id left join uf_jcl_kq_kqfa c on a.mainid=c.id where mainid in ("+String.join(",",dataIds)+")";
sql = "select b.id keyid,b.mc kqxm,c.mc famc,b.* from uf_jcl_kq_kqfa_dt1 a left join uf_jcl_kq_kqxm b on a.kqxm=b.id left join uf_jcl_kq_kqfa c on a.mainid=c.id where mainid in ("+String.join(",",dataIds)+") and (b.xmzt is null or b.xmzt <> '0')";
if (dataIds.size() > 0){
log.info("query attendanceItems sql : {}",sql);
attendanceItems.addAll(DbTools.getSqlToList(sql));
}
resultMap.put("data",attendanceItems);

@ -65,7 +65,7 @@ public class GetWorkHoursItemByPersonCmd extends AbstractCommonCommand<Map<Strin
String pdeptids = "";
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
pdeptids = deptid + pdeptids;
log.info("pdeptids : [{}]",pdeptids);
log.debug("pdeptids : [{}]",pdeptids);
for (Map<String,Object> departmentOrganization :departmentOrganizationList){
String dx = Util.null2String(departmentOrganization.get("dx"));
String ids = dx.split("-")[0];
@ -92,10 +92,10 @@ public class GetWorkHoursItemByPersonCmd extends AbstractCommonCommand<Map<Strin
if (personGroupOrganizationList != null){
Set<String> 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);
log.debug("query personGroupData : {}",sql);
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(sql);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate);
log.info("personnelGroupIds : {}",personnelGroupIds);
log.debug("personnelGroupIds : {}",personnelGroupIds);
for (Map<String,Object> personGroupOrganization :personGroupOrganizationList){
String personnelGroupId = Util.null2String(personGroupOrganization.get("dx")).split("-")[0];
if (personnelGroupIds.contains(personnelGroupId)){
@ -106,10 +106,10 @@ public class GetWorkHoursItemByPersonCmd extends AbstractCommonCommand<Map<Strin
List<Map<String,Object>> attendanceItems = Lists.newArrayList();
log.info("dataIds : {}",dataIds);
log.debug("dataIds : {}",dataIds);
sql = "select * from uf_jcl_kq_zhgs where id in ("+String.join(",",dataIds)+")";
if (dataIds.size() > 0){
log.info("query GetWorkHoursItemByPersonCmd sql : {}",sql);
log.debug("query GetWorkHoursItemByPersonCmd sql : {}",sql);
attendanceItems.addAll(DbTools.getSqlToList(sql));
}
resultMap.put("data",attendanceItems);

@ -51,7 +51,7 @@ public class ExcelExportImportServiceImpl extends Service implements ExcelExport
paramMap.put("pageSize", total);
}
paramMap.put("pageindex", "1");
log.info("查询条件:{}",paramMap);
log.debug("查询条件:{}",paramMap);
Map<String, Object> scheduleResult = getWorkRulesService(user).getDepartSchedule(paramMap);
List<WeaTableColumn> columns = buildScheduleColumns((List<Map<String, Object>>) scheduleResult.get("columns"));
List<Map<String, Object>> records = buildScheduleRecords((List<Map<String, Object>>) scheduleResult.get("datas"));
@ -139,11 +139,11 @@ public class ExcelExportImportServiceImpl extends Service implements ExcelExport
//标题
List<String> titles = ExcelSupport.getSheetHeader(sheet, 0);
String title = titles.get(0);
log.info("处理前年月信息:{}",title);
log.debug("处理前年月信息:{}",title);
//年月格式的转换处理
if (StrUtil.isNotBlank(title) && title.length() > 7) {
title = title.substring(0, 7);
log.info("处理后年月信息:{}",title);
log.debug("处理后年月信息:{}",title);
}
if (StrUtil.isNotBlank(title) && !DateUtil.checkYearMonth(title.replace("/", "-"))) {
throw new AttendanceRunTimeException("excel首行'年月'时间格式错误,正确格式为yyyy-mm或者yyyy-mm-dd或者yyyy/mm或者yyyy/mm/dd");
@ -151,14 +151,14 @@ public class ExcelExportImportServiceImpl extends Service implements ExcelExport
int monthDays = DateUtil.getDays(title, Calendar.DAY_OF_MONTH);
// 表头
List<String> headers = ExcelSupport.getSheetHeader(sheet, 1);
log.info("headers数据{}", headers);
log.debug("headers数据{}", headers);
// 错误sheet数据
List<Map<String, Object>> errorData = new LinkedList<>();
// 错误提示
List<Map<String, String>> excelComments = new LinkedList<>();
// 处理数值
List<Map<String, Object>> data = ExcelParseHelper.parse2Map(sheet, 2, 1);
log.info("excel导入数据[{}]", data);
log.debug("excel导入数据[{}]", data);
//单行记录
Map<String, Object> map;
for (int i = 0; i < data.size(); i++) {
@ -173,7 +173,7 @@ public class ExcelExportImportServiceImpl extends Service implements ExcelExport
}
singleCheck.put(key, Optional.ofNullable(map.get(key)).orElse("").toString());
}
log.info(i + 3 + "-singleCheck{}", singleCheck);
log.debug(i + 3 + "-singleCheck{}", singleCheck);
isError = singleScheduleLineCheck(singleCheck, title, monthDays, toImportScheduleInfos, employeeInfoList, shiftMapWithMc, excelComments, i + 3, formModeId, empIds);
if (isError) {
errorCount += 1;

@ -45,7 +45,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
@Override
public Map<String, Object> getWorkRulesList(String resourceIds) {
Map<String, Object> resultMap = new HashMap<>(4);
log.info("getWorkRulesList : [{}]",resourceIds);
log.debug("getWorkRulesList : [{}]",resourceIds);
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_bcxx");
Set<String> bcids = Sets.newHashSet();
for (String resourceId :resourceIds.split(",")){
@ -195,13 +195,13 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
}else if (PersonGroupListTypeEnum.CONDITION.getKey().equals(list_type) && !"".equals(filters)){
filters = filters.replace("","and");
filters = filters.replace("","or");
sql = "select id,seclevel from hrmresource where "+conditions;
sql = "select id,seclevel from hrmresource where 1=1 ";
if (filters.contains("field")){
sql = "select a.id from hrmresource a left join cus_fielddata b on a.id=b.id where scope='HrmCustomFieldByInfoType' and "+filters+" and "+conditions;
sql = "select a.id from hrmresource a left join cus_fielddata b on a.id=b.id where scope='HrmCustomFieldByInfoType' and "+filters;
}else {
sql = sql+ " and "+filters;
}
log.info("getPersonnelGroupingByPerson filter sql : {}",sql);
log.debug("getPersonnelGroupingByPerson filter sql : {}",sql);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
@ -264,7 +264,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
List<Map<String, Object>> dataTableList = (List<Map<String, Object>>)result.get("dataTableList");
dataTableList = Utils.getSchedulingList(dataTableList);
log.info("dataTableList : [{}]",dataTableList);
log.debug("dataTableList : [{}]",dataTableList);
for (Map<String, Object> scheduleMap :dataTableList){
String bcrq = Util.null2String(scheduleMap.get("bcrq"));
String bcxx = Util.null2String(scheduleMap.get("bcxx"));
@ -386,7 +386,6 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
Map<String,Object> resultMap = Maps.newHashMap();
List<String> resourceList = Arrays.asList(resourceIds.split(","));
List<String> dateList = Arrays.asList(dateArrs.split(","));
List<Map<String,Object>> insertDataList = Lists.newArrayList();
String formmodeid = Utils.getFormmodeIdMap().get("uf_pbjg");
List<Map<String,Object>> organizationList = Lists.newArrayList();
for (String date : dateList){
@ -403,22 +402,21 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
map.put("dx",str);
map.put("dxlx", "0");
map.put("rqlx",CommonUtil.getRqlx(str,date));
map.put("pbtj",RegularScheduleTypeEnum.CALENDAR.getKey());
map.put("bcrq",date);
map.put("sfxx", CommonUtil.ifrestByClass(bcxxId));
map.put("sfdkpp",CheckBoxEnum.UNCHECKED.getKey());
map.put("bcxx",bcxxId);
map.put("pbrq",DateUtil.getCurrentDate());
map.put("pbsj",DateUtil.getCurrentTime("yyyy-MM-dd HH:mm").split(" ")[1]);
organizationList.add(map);
}
Map<String,Object> insertDataMap = Maps.newHashMap();
insertDataList.add(insertDataMap);
insertDataMap.put("pbtj",RegularScheduleTypeEnum.CALENDAR.getKey());
insertDataMap.put("bcrq",date);
insertDataMap.put("sfxx", CommonUtil.ifrestByClass(bcxxId));
insertDataMap.put("sfdkpp",CheckBoxEnum.UNCHECKED.getKey());
insertDataMap.put("bcxx",bcxxId);
insertDataMap.put("pbrq",DateUtil.getCurrentDate());
insertDataMap.put("pbsj",DateUtil.getCurrentTime("yyyy-MM-dd HH:mm").split(" ")[1]);
}
/**插入排班结果表*/
resultMap.put("result",PersongroupCommonUtil.insertShiftSchedulingResults(organizationList,insertDataList,formmodeid));
resultMap.put("result",PersongroupCommonUtil.insertSchedulingResults(organizationList,formmodeid));
return resultMap;
}
@ -442,7 +440,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
beContainIds.add(resourceId);
}
}
log.info("be contain userIds : [{}]",beContainIds);
log.debug("be contain userIds : [{}]",beContainIds);
return beContainIds;
}
}

@ -81,8 +81,8 @@ public class GetDatatableCmd extends AbstractCommonCommand<Map<String,Object>> {
String queryDatatablesql = "select * from ("+sql+") where rn >"+startindex;
log.info("queryDatatablesql : {}",queryDatatablesql);
log.info("param : {}",param);
log.debug("queryDatatablesql : {}",queryDatatablesql);
log.debug("param : {}",param);
List<Map<String,Object>> dataTable = DbTools.getSqlToList(queryDatatablesql,param.toArray());
resultMap.put("data",dataTable);
@ -93,17 +93,17 @@ public class GetDatatableCmd extends AbstractCommonCommand<Map<String,Object>> {
String queryDatatablesql = "select top "+pageSize+" a.id as keyid,b.lastname,a.* from "+tableName +" a left join hrmresource b on a.pbdxry=b.id where a.id>=("+sql+") "+conditions;
log.info("queryDatatablesql : {}",queryDatatablesql);
log.debug("queryDatatablesql : {}",queryDatatablesql);
param.addAll(param);
log.info("param : {}",param);
log.debug("param : {}",param);
List<Map<String,Object>> dataTable = DbTools.getSqlToList(queryDatatablesql,param.toArray());
resultMap.put("data",dataTable);
}else {
sql = sql + conditions +" limit "+startindex+",1";
String queryDatatablesql = "select a.id as keyid,b.lastname,a.* from "+tableName +" a left join hrmresource b on a.pbdxry=b.id where a.id>=("+sql+") "+conditions+" limit "+pageSize;
log.info("queryDatatablesql : {}",queryDatatablesql);
log.debug("queryDatatablesql : {}",queryDatatablesql);
param.addAll(param);
log.info("param : {}",param);
log.debug("param : {}",param);
List<Map<String,Object>> dataTable = DbTools.getSqlToList(queryDatatablesql,param.toArray());
resultMap.put("data",dataTable);
}

@ -63,8 +63,8 @@ public class GetDatatableCountCmd extends AbstractCommonCommand<Map<String,Objec
}
sql = sql + conditions;
log.info("GetDatatableCountCmd sql :{}",sql);
log.info("params : [{}]",params);
log.debug("GetDatatableCountCmd sql :{}",sql);
log.debug("params : [{}]",params);
Map<String,Object> dataMap = DbTools.getSqlToMap(sql,params.toArray());
return dataMap;

@ -63,7 +63,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
List<Object> param = Lists.newArrayList();
param.addAll(Dateparam);
param.add(pbdx);
log.info("递归查询人员-人员节点sql:{},param:{}",querySqlbyPbdx,param);
log.debug("递归查询人员-人员节点sql:{},param:{}",querySqlbyPbdx,param);
List<Map<String,Object>> dataList = DbTools.getSqlToList(querySqlbyPbdx,param.toArray());
//人员数据
Map<String,List<Map<String,Object>>> personCollect = dataList.stream().collect(Collectors.groupingBy(e->e.get("pbtj").toString()));
@ -77,10 +77,10 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(queryryfz);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx,null,null);
querySqlbyPbdx = sql +conditions + " and pbdxryfz in (";
log.info("递归查询人员-人员分组节点sql:{},personnelGroupIds:{}",querySqlbyPbdx,personnelGroupIds);
log.debug("递归查询人员-人员分组节点sql:{},personnelGroupIds:{}",querySqlbyPbdx,personnelGroupIds);
if(personnelGroupIds.size() > 0){
querySqlbyPbdx = querySqlbyPbdx + String.join(",",personnelGroupIds)+") order by bcrq";
log.info("递归查询人员-人员分组节点sql:{}",querySqlbyPbdx);
log.debug("递归查询人员-人员分组节点sql:{}",querySqlbyPbdx);
personGroupList = DbTools.getSqlToList(querySqlbyPbdx,Dateparam.toArray());
}
Map<String,List<Map<String,Object>>> personGroupCollect = personGroupList.stream().collect(Collectors.groupingBy(e->e.get("pbtj").toString()));
@ -94,9 +94,9 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
String pdeptids = "";
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(dataMap.get("departmentid")), pdeptids);
pdeptids = Util.null2String(dataMap.get("departmentid")) + pdeptids;
log.info("pdeptids : [{}]",pdeptids);
log.debug("pdeptids : [{}]",pdeptids);
querySqlbyPbdx = sql + conditions + " and pbdxbm in (";
log.info("递归查询人员-部门节点sql:{},pdeptids:{}",querySqlbyPbdx,pdeptids);
log.debug("递归查询人员-部门节点sql:{},pdeptids:{}",querySqlbyPbdx,pdeptids);
querySqlbyPbdx = querySqlbyPbdx + pdeptids+") order by bcrq";
departmentList = DbTools.getSqlToList(querySqlbyPbdx,Dateparam.toArray());
Map<String,List<Map<String,Object>>> departmentCollect = departmentList.stream().collect(Collectors.groupingBy(e->e.get("pbtj").toString()));
@ -106,7 +106,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
List<Map<String,Object>> subCompanyList = Lists.newArrayList();
//查询人员分部
querySqlbyPbdx = sql + conditions + " and pbdxfb = ? order by bcrq";
log.info("递归查询人员-分部节点sql:{},pdeptids:{}",querySqlbyPbdx,dataMap.get("subcompanyid1"));
log.debug("递归查询人员-分部节点sql:{},pdeptids:{}",querySqlbyPbdx,dataMap.get("subcompanyid1"));
param.clear();
param.addAll(Dateparam);
param.add(dataMap.get("subcompanyid1"));
@ -154,7 +154,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
//分部分部数据
querySqlbyPbdx = sql +conditions + " and pbdxfb = ? order by bcrq";
log.info("递归查询部门-分部节点sql:{},pdeptids:{}",querySqlbyPbdx,departMentMap.get("subcompanyid1"));
log.debug("递归查询部门-分部节点sql:{},pdeptids:{}",querySqlbyPbdx,departMentMap.get("subcompanyid1"));
param.clear();
param.addAll(Dateparam);
param.add(departMentMap.get("subcompanyid1"));
@ -188,7 +188,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
log.error("catch error : {}",e);
}
resultMap.put("dataTableList",dataTableList);
log.info("dataTableList total size : {}",dataTableList.size());
log.debug("dataTableList total size : {}",dataTableList.size());
return resultMap;
}
@ -207,10 +207,10 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(queryryfz);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx,null,null);
String querySqlbyPbdx = sql +conditions + " and pbdxryfz in (";
log.info("递归查询人员-人员分组节点sql:{},personnelGroupIds:{}",querySqlbyPbdx,personnelGroupIds);
log.debug("递归查询人员-人员分组节点sql:{},personnelGroupIds:{}",querySqlbyPbdx,personnelGroupIds);
if(personnelGroupIds.size() > 0){
querySqlbyPbdx = querySqlbyPbdx + String.join(",",personnelGroupIds)+") order by bcrq";
log.info("递归查询人员-人员分组节点sql:{}",querySqlbyPbdx);
log.debug("递归查询人员-人员分组节点sql:{}",querySqlbyPbdx);
dataList = DbTools.getSqlToList(querySqlbyPbdx,Dateparam.toArray());
}
if (dataList.size() == 0){
@ -220,15 +220,15 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand<Map<String,
String pdeptids = "";
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(dataMap.get("departmentid")), pdeptids);
pdeptids = Util.null2String(dataMap.get("departmentid")) + pdeptids;
log.info("pdeptids : [{}]",pdeptids);
log.debug("pdeptids : [{}]",pdeptids);
querySqlbyPbdx = sql + conditions + " and pbdxbm in (";
log.info("递归查询人员-部门节点sql:{},pdeptids:{}",querySqlbyPbdx,pdeptids);
log.debug("递归查询人员-部门节点sql:{},pdeptids:{}",querySqlbyPbdx,pdeptids);
querySqlbyPbdx = querySqlbyPbdx + pdeptids+") order by bcrq";
dataList = DbTools.getSqlToList(querySqlbyPbdx,Dateparam.toArray());
if (dataList.size() == 0){
//查询人员分部
querySqlbyPbdx = sql + conditions + " and pbdxfb = ? order by bcrq";
log.info("递归查询人员-分部节点sql:{},pdeptids:{}",querySqlbyPbdx,dataMap.get("subcompanyid1"));
log.debug("递归查询人员-分部节点sql:{},pdeptids:{}",querySqlbyPbdx,dataMap.get("subcompanyid1"));
List<Object> param = Lists.newArrayList();
param.clear();
param.addAll(Dateparam);

@ -29,7 +29,7 @@ public class PersongroupCommonUtil {
}
mainids = mainids.substring(0,mainids.length()-1);
sql = sql +" ("+mainids+") ";
log.info("sql : {}",sql);
log.debug("sql : {}",sql);
List<Map<String,Object>> list = DbTools.getSqlToList(sql);
Map<String,List<Map<String,Object>>> collect = list.stream().collect(Collectors.groupingBy(e -> e.get("mainid").toString()));
@ -75,7 +75,7 @@ public class PersongroupCommonUtil {
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";
// List<Map<String,Object>> calendarList = DbTools.getSqlToList(sql,qyrl);
// Map<String,String> calendarMap = calendarList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("nd")),e->Util.null2String(e.get("id"))));
// log.info("calendarMap : {}",calendarMap);
// log.debug("calendarMap : {}",calendarMap);
// Map<String, List<Map<String,Object>>> detailDataGroupingByYear = calendarList.stream().collect(Collectors.groupingBy(e ->e.get("nd").toString()));
//
//生效日期与当前日期相差年份
@ -87,7 +87,7 @@ public class PersongroupCommonUtil {
if (betweenYears == 0){
String dateCondition = "rq >='"+bdate+"' and rq <'"+nowDate+"'";
int needSkipDay = getNeedSkipDay(jjrcl,gxrcl,qyrl,dateCondition);
log.info("needSkipDay : [{}]",needSkipDay);
log.debug("needSkipDay : [{}]",needSkipDay);
betweenDays = betweenDays-needSkipDay;
}else if(betweenYears > 0){
@ -109,7 +109,7 @@ public class PersongroupCommonUtil {
needSkipDay += getNeedSkipDay(jjrcl,gxrcl,qyrl,dateCondition);
}
}
log.info("needSkipDay : [{}]",needSkipDay);
log.debug("needSkipDay : [{}]",needSkipDay);
betweenDays = betweenDays-needSkipDay;
}
return betweenDays;
@ -134,14 +134,14 @@ public class PersongroupCommonUtil {
if (!"".equals(conditionSql)){
sql = sql + " and ( "+conditionSql+")";
}
log.info("getNeedSkipDay sql : {},rlmc : {}",sql,rlmc);
log.debug("getNeedSkipDay sql : {},rlmc : {}",sql,rlmc);
Map<String,Object> objectMap = DbTools.getSqlToMap(sql,rlmc);
int needSkipDay = Integer.valueOf(objectMap.get("num").toString());
return needSkipDay;
}
/**
*
*
* @param organizationList
* @param insertDataList
* @param formmodeid
@ -220,30 +220,112 @@ public class PersongroupCommonUtil {
boolean result = false;
if (psersons.size() >0){
String deleteSql = sql + " and pbdxry in ("+String.join(",",psersons)+")";
log.info("deleteSql : {}",deleteSql);
log.debug("deleteSql : {}",deleteSql);
DbTools.update(rs,deleteSql,startDate,endDate);
}
if (psersonsGroups.size() >0){
String deleteSql = sql + " and pbdxryfz in ("+String.join(",",psersonsGroups)+")";
log.info("deleteSql : {}",deleteSql,startDate,endDate);
log.debug("deleteSql : {}",deleteSql,startDate,endDate);
DbTools.update(rs,deleteSql,startDate,endDate);
}
if (departments.size() >0){
String deleteSql = sql + " and pbdxbm in ("+String.join(",",departments)+")";
log.info("deleteSql : {}",deleteSql,startDate,endDate);
log.debug("deleteSql : {}",deleteSql,startDate,endDate);
DbTools.update(rs,deleteSql,startDate,endDate);
}
if (subCompanys.size() >0){
String deleteSql = sql + " and pbdxfb in ("+String.join(",",subCompanys)+")";
log.info("deleteSql : {}",deleteSql,startDate,endDate);
log.debug("deleteSql : {}",deleteSql,startDate,endDate);
DbTools.update(rs,deleteSql,startDate,endDate);
}
if (addlist.size() >0){
log.info("addlist :[{}]",addlist);
log.debug("addlist :[{}]",addlist);
String insertSql = "insert into uf_pbjg (pbtj,pbgl,dxlx,pbdxry,pbdxryfz,pbdxbm,pbdxfb,bcrq,rqlx,sfxx,sfdkpp,bcxx,hxbz,pbrq,pbsj,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,MODEUUID) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
result =rs.executeBatchSql(insertSql,addlist);
log.info("result :[{}]",result);
log.debug("result :[{}]",result);
}
return result;
}
/**
*
* @param organizationList
* @param formmodeid
* @return
*/
public static boolean insertSchedulingResults(List<Map<String,Object>> organizationList,String formmodeid){
RecordSet rs = new RecordSet();
List<List> addlist = Lists.newArrayList();
Set<String> psersons = Sets.newHashSet();
Set<String> psersonsGroups = Sets.newHashSet();
Set<String> departments = Sets.newHashSet();
Set<String> subCompanys = Sets.newHashSet();
for (Map<String,Object> organization: organizationList){
String rqlx = Util.null2String(organization.get("rqlx"));
ArrayList<Object> list = new ArrayList<>();
list.add(organization.get("pbtj"));
list.add(organization.get("pbgl"));
list.add(organization.get("dxlx"));
if ("0".equals(organization.get("dxlx"))){
//人员
list.add(Util.null2String(organization.get("dx")).split("-")[0]);
list.add(null);
list.add(null);
list.add(null);
psersons.add(Util.null2String(organization.get("dx")).split("-")[0]);
}else if ("1".equals(organization.get("dxlx"))){
//人员分组
list.add(null);
list.add(Util.null2String(organization.get("dx")).split("-")[0]);
list.add(null);
list.add(null);
psersonsGroups.add(Util.null2String(organization.get("dx")).split("-")[0]);
}else if ("2".equals(organization.get("dxlx"))){
//部门
list.add(null);
list.add(null);
list.add(Util.null2String(organization.get("dx")).split("-")[0]);
list.add(null);
departments.add(Util.null2String(organization.get("dx")).split("-")[0]);
}else if ("3".equals(organization.get("dxlx"))){
//分部
list.add(null);
list.add(null);
list.add(null);
list.add(Util.null2String(organization.get("dx")).split("-")[0]);
subCompanys.add(Util.null2String(organization.get("dx")).split("-")[0]);
}
list.add(organization.get("bcrq"));
if (!rqlx.equals("")){
list.add(rqlx);
}else {
list.add(organization.get("rqlx"));
}
list.add(organization.get("sfxx"));
list.add(organization.get("sfdkpp"));
list.add(organization.get("bcxx"));
list.add(organization.get("hxbz"));
list.add(organization.get("pbrq"));
list.add(organization.get("pbsj"));
list.add(formmodeid);
list.add(1);
list.add(0);
list.add(DateUtil.getCurrentDate());
list.add(DateUtil.getCurrentTime().split(" ")[1]);
list.add(UUID.randomUUID().toString());
addlist.add(list);
}
boolean result = false;
if (addlist.size() >0){
log.debug("addlist :[{}]",addlist);
String insertSql = "insert into uf_pbjg (pbtj,pbgl,dxlx,pbdxry,pbdxryfz,pbdxbm,pbdxfb,bcrq,rqlx,sfxx,sfdkpp,bcxx,hxbz,pbrq,pbsj,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,MODEUUID) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
result =rs.executeBatchSql(insertSql,addlist);
log.debug("result :[{}]",result);
}
return result;
}
@ -258,7 +340,7 @@ public class PersongroupCommonUtil {
public static Set<String> getPersonnelGroupingByPerson(List<Map<String,Object>> personnelGrouping,String userId,String startDate,String endDate){
Map<String,List<Map<String,Object>>> collect = personnelGrouping.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("mainid"))));
Set<String> personnelGroupIds = Sets.newHashSet();
log.info("getPersonnelGroupingByPerson collect : {}",collect);
log.debug("getPersonnelGroupingByPerson collect : {}",collect);
if (userId == null || "".equals(userId)){
return personnelGroupIds;
}
@ -277,14 +359,20 @@ public class PersongroupCommonUtil {
}
String empid = Util.null2String(data.get("empid"));
String filters = Util.null2String(data.get("filters"));
log.info(" empid : {},userId : {}",empid,userId);
log.debug(" empid : {},userId : {}",empid,userId);
if (empid.equals(userId)){
personnelGroupIds.add(e.getKey());
}else if (!"".equals(filters)){
filters = filters.replace("","and");
filters = filters.replace("","or");
String sql = "select id from hrmresource where 1=1 and " +filters;
log.info("getPersonnelGroupingByPerson filter sql : {}",sql);
//条件清单
String sql = "select id,seclevel from hrmresource where 1=1 ";
if (filters.contains("field")){
sql = "select a.id,a.seclevel from hrmresource a left join cus_fielddata b on a.id=b.id where scope='HrmCustomFieldByInfoType' and "+filters;
}else {
sql = sql+ " and "+filters;
}
log.debug("getPersonnelGroupingByPerson filter sql : {}",sql);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
@ -307,7 +395,7 @@ public class PersongroupCommonUtil {
*/
public static Set<String> getUserIdsByPersonnelGrouping(List<Map<String,Object>> personnelGroupingList){
Set<String> userIds = Sets.newHashSet();
log.info("getUserIdsByPersonnelGrouping personnelGroupingList :[{}]",personnelGroupingList);
log.debug("getUserIdsByPersonnelGrouping personnelGroupingList :[{}]",personnelGroupingList);
for (Map<String,Object> data:personnelGroupingList){
String empid = Util.null2String(data.get("empid"));
String filters = Util.null2String(data.get("filters"));
@ -325,7 +413,7 @@ public class PersongroupCommonUtil {
}else {
sql = sql+ " and "+filters;
}
log.info("getPersonnelGroupingByPerson filter sql : {}",sql);
log.debug("getPersonnelGroupingByPerson filter sql : {}",sql);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
@ -333,7 +421,7 @@ public class PersongroupCommonUtil {
}
}
}
log.info("userIds size :[{}]",userIds.size());
log.debug("userIds size :[{}]",userIds.size());
return userIds;
}

@ -40,7 +40,7 @@ public class SchedulingJob extends BaseCronJob {
String modeId = formmodeIdMap.get("uf_jcl_kq_glpb");
//排班结果模块
String formmodeid = formmodeIdMap.get("uf_pbjg");
log.info("dataList : [{}]",dataList);
log.debug("dataList : [{}]",dataList);
try {
dataList.forEach(e -> {
e.put("modeId",modeId);

@ -30,7 +30,6 @@ public class DayRegularScheduling implements RegularScheduling{
@Override
public void compute(Map<String, Object> data) {
log.info("import DayRegularScheduling :[{}]",data);
//主表数据id
String id = Util.null2String(data.get("id"));
//规律排班模块Id
@ -72,13 +71,11 @@ public class DayRegularScheduling implements RegularScheduling{
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";
List<Map<String,Object>> calendarList = DbTools.getSqlToList(sql,qyrl);
// Map<String,String> calendarMap = calendarList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("nd")),e->Util.null2String(e.get("id"))));
// log.info("calendarMap : {}",calendarMap);
// log.debug("calendarMap : {}",calendarMap);
Map<String, List<Map<String,Object>>> detailDataGroupingByYear = calendarList.stream().collect(Collectors.groupingBy(e ->e.get("nd").toString()));
log.info("detailDataGroupingByYear : {}",detailDataGroupingByYear);
//循环总天数
int circulateDays = Integer.valueOf(detailDataList.get(detailDataList.size()-1).get("jsts").toString());
int betweenDays = PersongroupCommonUtil.getBetweenDays(data);
log.info("betweenDays : [{}]",betweenDays);
/**按照天数规律循环遍历插入*/
//从第几天开始循环
int leaveDay = betweenDays%circulateDays + 1;
@ -104,7 +101,7 @@ public class DayRegularScheduling implements RegularScheduling{
dataMap.put("bcrq",bcrq);
if (jsts >= leaveDay && ksts <=leaveDay){
String dateTime =bcrq;
log.info("dateTime :{},count: {},map : {}",dateTime,count,map);
log.debug("dateTime :{},count: {},map : {}",dateTime,count,map);
List<Map<String,Object>> detailList = detailDataGroupingByYear.get(dateTime.split("-")[0]);
if (detailList == null){
continue;

@ -31,7 +31,7 @@ public class MonthRegularScheduling implements RegularScheduling{
@Override
public void compute(Map<String, Object> data) {
log.info("import MonthRegularScheduling :[{}]",data);
log.debug("import MonthRegularScheduling :[{}]",data);
//主表数据id
String id = Util.null2String(data.get("id"));
//规律排班模块Id
@ -72,7 +72,7 @@ public class MonthRegularScheduling implements RegularScheduling{
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";
List<Map<String,Object>> calendarList = DbTools.getSqlToList(sql,qyrl);
Map<String, List<Map<String,Object>>> detailDataGroupingByYear = calendarList.stream().collect(Collectors.groupingBy(e ->e.get("nd").toString()));
log.info("detailDataGroupingByYear : {}",detailDataGroupingByYear);
log.debug("detailDataGroupingByYear : {}",detailDataGroupingByYear);
//结束日
List<Map<String,Object>> insertDataList = Lists.newArrayList();
@ -95,7 +95,7 @@ public class MonthRegularScheduling implements RegularScheduling{
dataMap.put("bcrq",bcrq);
if (jsr >= leaveDay && ksr <=leaveDay){
String dateTime =bcrq;
log.info("dateTime :{},count: {},map : {}",dateTime,count,map);
log.debug("dateTime :{},count: {},map : {}",dateTime,count,map);
List<Map<String,Object>> detailList = detailDataGroupingByYear.get(dateTime.split("-")[0]);
if (detailList == null){
continue;

@ -31,7 +31,7 @@ public class WeekRegularScheduling implements RegularScheduling{
@Override
public void compute(Map<String, Object> data) {
log.info("import WeekRegularScheduling :[{}]",data);
log.debug("import WeekRegularScheduling :[{}]",data);
//主表数据id
String id = Util.null2String(data.get("id"));
//规律排班模块Id
@ -72,7 +72,7 @@ public class WeekRegularScheduling implements RegularScheduling{
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";
List<Map<String,Object>> calendarList = DbTools.getSqlToList(sql,qyrl);
// Map<String,String> calendarMap = calendarList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("nd")),e->Util.null2String(e.get("id"))));
// log.info("calendarMap : {}",calendarMap);
// log.debug("calendarMap : {}",calendarMap);
Map<String, List<Map<String,Object>>> detailDataGroupingByYear = calendarList.stream().collect(Collectors.groupingBy(e ->e.get("nd").toString()));
// int betweenDays = CommonUtil.getBetweenDays(data);
//星期
@ -99,7 +99,7 @@ public class WeekRegularScheduling implements RegularScheduling{
dataMap.put("bcrq",bcrq);
if (jsxq >= leaveDay && ksxq <=leaveDay){
String dateTime =bcrq;
log.info("dateTime :{},count: {},map : {}",dateTime,count,map);
log.debug("dateTime :{},count: {},map : {}",dateTime,count,map);
List<Map<String,Object>> detailList = detailDataGroupingByYear.get(dateTime.split("-")[0]);
if (detailList == null){
continue;

@ -31,7 +31,7 @@ public class YearRegularScheduling implements RegularScheduling{
@Override
public void compute(Map<String, Object> data) {
log.info("import YearRegularScheduling :[{}]",data);
log.debug("import YearRegularScheduling :[{}]",data);
//主表数据id
String id = Util.null2String(data.get("id"));
//规律排班模块Id
@ -72,7 +72,7 @@ public class YearRegularScheduling implements RegularScheduling{
sql = "select rlmc,nd,rq,rqlx from uf_jcl_kq_rlxx where rlmc=?";
List<Map<String,Object>> calendarList = DbTools.getSqlToList(sql,qyrl);
// Map<String,String> calendarMap = calendarList.stream().collect(Collectors.toMap(e->Util.null2String(e.get("nd")),e->Util.null2String(e.get("id"))));
// log.info("calendarMap : {}",calendarMap);
// log.debug("calendarMap : {}",calendarMap);
Map<String, List<Map<String,Object>>> detailDataGroupingByYear = calendarList.stream().collect(Collectors.groupingBy(e ->e.get("nd").toString()));
// int betweenDays = CommonUtil.getBetweenDays(data);
//星期
@ -103,7 +103,7 @@ public class YearRegularScheduling implements RegularScheduling{
}
if (endDate.compareTo(leaveDay) >=0 && beginDate.compareTo(leaveDay) <=0){
String dateTime =bcrq;
log.info("dateTime :{},count: {},map : {}",dateTime,count,map);
log.debug("dateTime :{},count: {},map : {}",dateTime,count,map);
List<Map<String,Object>> detailList = detailDataGroupingByYear.get(dateTime.split("-")[0]);
if (detailList == null){
continue;

@ -39,7 +39,7 @@ public class PersonGroupServiceImpl extends Service implements PersonGroupServic
" select fieldid, fieldname, fieldlabel ,ismand ,fielddbtype ,fieldhtmltype ,type , dmlurl,fieldorder ,isuse ,isModify ,allowModify, groupid, allowhide from hrm_formfield) hrmallfield where groupid in (select id from hrm_fieldgroup where (grouptype = '1' or grouptype = '-1' or grouptype = '3')) ";
sql = sql +condition+" order by hrmallfield.groupid, hrmallfield.fieldorder ";
log.info("sql :[{}]",sql);
log.debug("sql :[{}]",sql);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
sql = "select fieldid,selectvalue,selectname from hrm_selectitem";
List<Map<String,Object>> selectItemLists = DbTools.getSqlToList(sql);
@ -50,7 +50,7 @@ public class PersonGroupServiceImpl extends Service implements PersonGroupServic
Map<String, List<Map<String,Object>>> custSelectItemMap = custSelectItemLists.stream().collect(Collectors.groupingBy(e -> e.get("fieldid").toString()));
log.info("selectItemMap : [{}]",selectItemMap);
log.debug("selectItemMap : [{}]",selectItemMap);
//sql = "select type,linkurl from wf_browser_config group by type";
sql = "select type,linkurl from wf_browser_config ";
@ -59,7 +59,7 @@ public class PersonGroupServiceImpl extends Service implements PersonGroupServic
for (Map<String,Object> browserType:browserTypeLists){
browserTypeMaps.put(Util.null2String(browserType.get("type")),Util.null2String(browserType.get("linkurl")));
}
log.info("browserTypeMaps : [{}]",browserTypeMaps);
log.debug("browserTypeMaps : [{}]",browserTypeMaps);
for (Map<String,Object> map :dataList){
Integer fieldlable = Integer.valueOf(map.get("fieldlable").toString());
@ -93,7 +93,7 @@ public class PersonGroupServiceImpl extends Service implements PersonGroupServic
RecordSet rs = new RecordSet();
boolean updateResult = DbTools.update(rs,sql,modeId,billId);
List<List> addLists = new ArrayList<>();
log.info("updateResult : {}",updateResult);
log.debug("updateResult : {}",updateResult);
String insertSql = "insert into uf_jcl_syzz (dxlx,dx,aqjb,modeid,dataid) values (?,?,?,?,?)";
if (updateResult){
dataList.forEach(e->{
@ -106,7 +106,7 @@ public class PersonGroupServiceImpl extends Service implements PersonGroupServic
addLists.add(list);
});
}
log.info("insert data : [{}]",addLists);
log.debug("insert data : [{}]",addLists);
resultMap.put("result",rs.executeBatchSql(insertSql,addLists));
return resultMap;
}

@ -65,7 +65,6 @@ public class SchedulingResultsServiceImpl extends Service implements SchedulingR
for (Map<String, Object> map:dataTableList){
SetBrowSerName(map);
}
log.info("dataTableList : {}",dataTableList);
resultMap.put("data",dataTableList);
}else {
@ -90,7 +89,7 @@ public class SchedulingResultsServiceImpl extends Service implements SchedulingR
* @param map
*/
public void SetBrowSerName(Map<String,Object> map){
log.info("personGroupMap :{},departMentMap:{},subCompanyMap:{},classesInformationMap:{},candidateTeamMap:{}"
log.debug("personGroupMap :{},departMentMap:{},subCompanyMap:{},classesInformationMap:{},candidateTeamMap:{}"
,personGroupMap.hashCode(),departMentMap.hashCode(),subCompanyMap.hashCode(),classesInformationMap.hashCode(),candidateTeamMap.hashCode());
String dxlx = Util.null2String(map.get("dxlx"));
if (dxlx.equals("0")){
@ -137,7 +136,6 @@ public class SchedulingResultsServiceImpl extends Service implements SchedulingR
List<Map<String, Object>> dataTableList = (List<Map<String, Object>>)paramMap.get("data");
List<Map<String, Object>> resultList = Lists.newArrayList();
resultMap.put("data",Utils.getSchedulingList(dataTableList));
log.info("queryDataTableActualUse schedule : [{}]",resultList);
return resultMap;
}

@ -55,7 +55,7 @@ public class HandleOverdueVocationCmd extends AbstractCommonCommand<Map<String,O
List<List<String>> needCancelPartions = Lists.partition(needCancelHolidayIds,200);
for (List<String> list : needCancelPartions){
String updateSql = sql+String.join(",",list)+")";
log.info("needCancelPartions updateSql : [{}]",updateSql );
log.debug("needCancelPartions updateSql : [{}]",updateSql );
DbTools.update(updateSql);
}
Map<String,List<String>> updateData = Maps.newHashMap();
@ -118,7 +118,7 @@ public class HandleOverdueVocationCmd extends AbstractCommonCommand<Map<String,O
List<List<String>> needExtendPartions = Lists.partition(ids,200);
for (List<String> list : needExtendPartions){
String updateSql = sql+String.join(",",list)+")";
log.info("needExtendPartions updateSql : [{}]",updateSql);
log.debug("needExtendPartions updateSql : [{}]",updateSql);
DbTools.update(updateSql,key.split("&")[0],key.split("&")[1],key.split("&")[2]);
}
}

@ -39,7 +39,7 @@ public class VocationCmd extends AbstractCommonCommand<Map<String,Object>> {
Map<String,Object> userMap = userfilter.size()>0?userfilter.get(0):Maps.newHashMap();
for (Map<String,Object> vocation : vocationList){
log.info("qsrq : [{}],yjzd : [{}]",vocation.get("qsrq"),vocation.get("yjzd"));
log.debug("qsrq : [{}],yjzd : [{}]",vocation.get("qsrq"),vocation.get("yjzd"));
String qsrq = Util.null2String(vocation.get("qsrq")).toLowerCase();
String yjzd = Util.null2String(vocation.get("yjzd")).toLowerCase();
String ljcrglyfslwz = Util.null2String(vocation.get("ljcrglyfslwz"));
@ -77,7 +77,7 @@ public class VocationCmd extends AbstractCommonCommand<Map<String,Object>> {
vocation.put("ljcrglyfslwzValue",ljcrglyfslwzValue);
vocation.put("zyzValue",getUserIds(vocation));
}
log.info("VocationCmd params: [{}]",params);
log.debug("VocationCmd params: [{}]",params);
String edfffs = Util.null2String(vocationList.get(0).get("edfffs"));
for (HolidayGenerationWay holidayGenerationWay :rulers){
if (holidayGenerationWay.support(Integer.valueOf(edfffs))){

@ -41,7 +41,7 @@ public class VocationServiceImpl extends Service implements VocationService {
List<Map<String,Object>> dataList = Lists.newArrayList();
for (List<String> list : userPartions){
String querySql = sql + String.join(",",list) +")";
log.info("querySql : [{}]",querySql);
log.debug("querySql : [{}]",querySql);
List<Map<String,Object>> resultList = DbTools.getSqlToListKeySmallLetter(querySql);
resultList = resultList.stream().filter(e->"HrmCustomFieldByInfoType".equals(e.get("scope")) || "".equals(Util.null2String(e.get("scope")))).collect(Collectors.toList());
dataList.addAll(resultList);
@ -64,7 +64,7 @@ public class VocationServiceImpl extends Service implements VocationService {
needGenerateVocationMap.put(Util.null2String(map.get("key")),vocationMap.get(map.get("key")));
}
}
log.info("VocationServiceImpl userId:{}, userList:{}",userId,userIdMap.get(userId));
log.debug("VocationServiceImpl userId:{}, userList:{}",userId,userIdMap.get(userId));
for (Map.Entry<String, Object> e:needGenerateVocationMap.entrySet()){
if (e.getValue() != null && ((List<Map<String,Object>>)e.getValue()).size() > 0){
Map<String,Object> vocationParam = Maps.newHashMap();

@ -54,7 +54,7 @@ public class VocationCommonUtil {
qsrq = qsrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-01";
}
log.info("getAfterAdjustTime qsrq : [{}]",qsrq);
log.debug("getAfterAdjustTime qsrq : [{}]",qsrq);
return qsrq;
}
@ -143,7 +143,7 @@ public class VocationCommonUtil {
}else if (edyxq.equals(StartingUnitEnum.NATURAL_DAY.getKey())){
time = releaseDate.split(" ")[0]+" "+ffdtffsj;
}
log.info("excuteTime : [{}]",time);
log.debug("excuteTime : [{}]",time);
return time;
}
*/
@ -443,7 +443,7 @@ public class VocationCommonUtil {
* @param dataMap
*/
public static void updateHolidayBalance(String tableName,Map<String,Object> dataMap,List<Map<String,Object>> dataList){
log.info("updateHolidayBalance dataMap:[{}]",dataMap);
log.debug("updateHolidayBalance dataMap:[{}]",dataMap);
String lyid = Util.null2String(dataMap.get("lyid"));
String ygid = Util.null2String(dataMap.get("ygid"));
String jqid = Util.null2String(dataMap.get("jqid"));
@ -488,7 +488,7 @@ public class VocationCommonUtil {
* @return
*/
public static List<Map<String,Object>> ifexist(String tableName,Map<String,Object> dataMap){
log.info("ifexist dataMap:[{}]",dataMap);
log.debug("ifexist dataMap:[{}]",dataMap);
String lyid = Util.null2String(dataMap.get("lyid"));
String ygid = Util.null2String(dataMap.get("ygid"));
String jqid = Util.null2String(dataMap.get("jqid"));

@ -32,45 +32,58 @@ public class EvctionCheckAction implements Action {
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
//出差人员
String ccr = mainTableData.get("ccr");
try {
Map<String,List<Map<String, String>>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("bdkr"))));
Map<String, Object> params = Maps.newHashMap();
params.put("userId",ccr);
params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","ksrq");
params.put("submitDataList",detailTableData);
for (Map.Entry<String,List<Map<String, String>>> tableEntry :detailGroupMap.entrySet()){
List<Map<String, String>> detailGroupByUserList = tableEntry.getValue();
Map<String, Object> params = Maps.newHashMap();
if ("".equals(tableEntry.getKey())){
params.put("userId",ccr);
}else {
params.put("userId",tableEntry.getKey());
}
params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","ksrq");
params.put("submitDataList",detailGroupByUserList);
/**
*
*/
if (detailTableData == null || detailTableData.size() == 0){
log.error("明细表没有数据!");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
return Action.FAILURE_AND_CONTINUE;
}
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
/**
*
*/
if (detailGroupByUserList == null || detailGroupByUserList.size() == 0){
log.error("明细表没有数据!");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
return Action.FAILURE_AND_CONTINUE;
}
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
boolean status = (boolean)dataMap.get("status");
if (!status){
log.error("该人员没有考勤周期");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE;
}
if (closeList.size() > 0 || nocycleList.size() > 0){
String message = "";
if (nocycleList.size() > 0){
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
}
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
boolean status = (boolean)dataMap.get("status");
if (!status){
log.error("该人员没有考勤周期");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE;
}
if (closeList.size() > 0 || nocycleList.size() > 0){
String message = "";
if (nocycleList.size() > 0){
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
}
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
}
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE;
}
}
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent(message);
}catch (Exception e){
log.error("EvctionCheckAction error : [{}]",e);
return Action.FAILURE_AND_CONTINUE;
}
return Action.SUCCESS;

@ -23,7 +23,7 @@ public class MakeUpClockImportAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
log.info("**********MakeUpClockImportAction import data start**********");
log.debug("**********MakeUpClockImportAction import data start**********");
// 流程表单主表数据
HashMap<String,String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
// 流程表单明细表数据
@ -61,7 +61,7 @@ public class MakeUpClockImportAction implements Action {
requestInfo.getRequestManager().setMessagecontent("添加失败!");
return Action.FAILURE_AND_CONTINUE;
}
log.info("**********MakeUpClockImportAction import data end**********");
log.debug("**********MakeUpClockImportAction import data end**********");
return Action.SUCCESS;
}

@ -37,131 +37,138 @@ public class MakeUpClockInAction implements Action {
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
//补打卡人员
String userId = mainTableData.get("bdkry");
Map<String, Object> params = Maps.newHashMap();
params.put("userId",userId);
params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","bdkrq");
params.put("submitDataList",detailTableData);
/**
*
*/
if (detailTableData == null || detailTableData.size() == 0){
log.error("明细表没有数据!");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
return Action.FAILURE_AND_CONTINUE;
}
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
boolean status = (boolean)dataMap.get("status");
if (!status){
log.error("该人员没有考勤周期");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE;
}
if (closeList.size() > 0 || nocycleList.size() > 0){
String message = "";
if (nocycleList.size() > 0){
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
Map<String,List<Map<String, String>>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("bdkr"))));
for (Map.Entry<String,List<Map<String, String>>> tableEntry :detailGroupMap.entrySet()){
List<Map<String, String>> detailGroupByUserList = tableEntry.getValue();
Map<String, Object> params = Maps.newHashMap();
if ("".equals(tableEntry.getKey())){
params.put("userId",userId);
}else {
params.put("userId",tableEntry.getKey());
}
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","bdkrq");
params.put("submitDataList",detailGroupByUserList);
/**
*
*/
if (detailGroupByUserList == null || detailGroupByUserList.size() == 0){
log.error("明细表没有数据!");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
return Action.FAILURE_AND_CONTINUE;
}
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE;
}
/**
*
*/
try {
Map<String,List<Map<String, String>>> dataGroupByBdlxs = Maps.newHashMap();
//按照考勤周期对补打卡数据进行分类
for (int i=0;i<dateList.size();i++){
String startDate = Util.null2String(dateList.get(i).get("startDate"));
String endDate = Util.null2String(dateList.get(i).get("endDate"));
List<Map<String, String>> datas = Lists.newArrayList();
for (Map<String, String> detailTable:detailTableData){
String bdkrq = detailTable.get("bdkrq");
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >=0){
datas.add(detailTable);
}
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
boolean status = (boolean)dataMap.get("status");
if (!status){
log.error("该人员没有考勤周期");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE;
}
if (closeList.size() > 0 || nocycleList.size() > 0){
String message = "";
if (nocycleList.size() > 0){
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
}
if (datas.size() > 0){
dataGroupByBdlxs.put(startDate+","+endDate,datas);
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
}
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE;
}
log.info("dataGroupByBdlxs : [{}]",dataGroupByBdlxs);
/**
*
*
*/
for (Map.Entry<String,List<Map<String, String>>> detailentry :dataGroupByBdlxs.entrySet()){
List<Map<String, String>> details = detailentry.getValue();
String startDate = detailentry.getKey().split(",")[0];
String endDate = detailentry.getKey().split(",")[1];
Map<String,List<Map<String, String>>> dataGroupByBdlx = details.stream().collect(Collectors.groupingBy(e->e.get("bdklx")));
String bdklxs="";
for (Map.Entry<String,List<Map<String, String>>> entry :dataGroupByBdlx.entrySet()){
String bdklx = entry.getKey();
bdklxs = bdklxs + bdklx +",";
try {
Map<String,List<Map<String, String>>> dataGroupByBdlxs = Maps.newHashMap();
//按照考勤周期对补打卡数据进行分类
for (int i=0;i<dateList.size();i++){
String startDate = Util.null2String(dateList.get(i).get("startDate"));
String endDate = Util.null2String(dateList.get(i).get("endDate"));
List<Map<String, String>> datas = Lists.newArrayList();
for (Map<String, String> detailTable:detailGroupByUserList){
String bdkrq = detailTable.get("bdkrq");
if (DateUtil.getTime(startDate).compareTo(DateUtil.getTime(bdkrq)) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(bdkrq)) >=0){
datas.add(detailTable);
}
}
if (datas.size() > 0){
dataGroupByBdlxs.put(startDate+","+endDate,datas);
}
}
bdklxs = bdklxs.substring(0,bdklxs.length()-1);
String sql = "select id,kqzqnxzsycs,ygbcycb,xzsydcs,hbjrdkqxm from uf_jcl_kq_kqxm where id in ("+bdklxs+")";
List<Map<String,Object>> items = DbTools.getSqlToList(sql);
Map<String,List<Map<String, Object>>> itemsGroupById = items.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("id"))));
for (Map.Entry<String,List<Map<String, String>>> entry :dataGroupByBdlx.entrySet()){
String bdklx = entry.getKey();
//明细数据
List<Map<String, String>> detailDatas = entry.getValue();
//考勤项目
List<Map<String, Object>> item = itemsGroupById.get(bdklx);
int maxclockTimes = Integer.valueOf(item.get(0).get("xzsydcs").toString());
int clockTimes = detailDatas.size();
//计入限制次数的其他项目
String hbjrdkqxm = Util.null2String(item.get(0).get("hbjrdkqxm"));
//计入限制次数的其他项目的明细数据
List<Map<String, String>> list = dataGroupByBdlx.get(hbjrdkqxm);
if (list != null && list.size() > 0){
clockTimes += list.size();
/**
*
*/
for (Map.Entry<String,List<Map<String, String>>> detailentry :dataGroupByBdlxs.entrySet()){
List<Map<String, String>> details = detailentry.getValue();
String startDate = detailentry.getKey().split(",")[0];
String endDate = detailentry.getKey().split(",")[1];
Map<String,List<Map<String, String>>> dataGroupByBdlx = details.stream().collect(Collectors.groupingBy(e->e.get("bdklx")));
String bdklxs="";
for (Map.Entry<String,List<Map<String, String>>> entry :dataGroupByBdlx.entrySet()){
String bdklx = entry.getKey();
bdklxs = bdklxs + bdklx +",";
}
sql = "select bdkry,dkrq from uf_jcl_kq_bdkjl where bdkry=? and bdklx=?";
List<Map<String,Object>> existsList = DbTools.getSqlToList(sql,userId,bdklx);
log.info("existsList : [{}]",existsList);
existsList = existsList.stream().filter(e->DateUtil.getTime(startDate).compareTo(DateUtil.getTime(e.get("dkrq").toString())) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(e.get("dkrq").toString())) >=0).collect(Collectors.toList());
clockTimes +=existsList.size();
log.info("clockTimes : [{}],maxclockTimes : [{}]",clockTimes,maxclockTimes);
if (clockTimes > maxclockTimes){
//已达到请假上限
log.error("考勤项目已达到补打卡上限");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("考勤项目已达到补打卡上限!");
return Action.FAILURE_AND_CONTINUE;
bdklxs = bdklxs.substring(0,bdklxs.length()-1);
String sql = "select id,kqzqnxzsycs,ygbcycb,xzsydcs,hbjrdkqxm from uf_jcl_kq_kqxm where id in ("+bdklxs+")";
List<Map<String,Object>> items = DbTools.getSqlToList(sql);
Map<String,List<Map<String, Object>>> itemsGroupById = items.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("id"))));
for (Map.Entry<String,List<Map<String, String>>> entry :dataGroupByBdlx.entrySet()){
String bdklx = entry.getKey();
//明细数据
List<Map<String, String>> detailDatas = entry.getValue();
//考勤项目
List<Map<String, Object>> item = itemsGroupById.get(bdklx);
int maxclockTimes = Integer.valueOf(item.get(0).get("xzsydcs").toString());
int clockTimes = detailDatas.size();
//计入限制次数的其他项目
String hbjrdkqxm = Util.null2String(item.get(0).get("hbjrdkqxm"));
//计入限制次数的其他项目的明细数据
List<Map<String, String>> list = dataGroupByBdlx.get(hbjrdkqxm);
if (list != null && list.size() > 0){
clockTimes += list.size();
}
sql = "select bdkry,dkrq from uf_jcl_kq_bdkjl where bdkry=? and bdklx=?";
List<Map<String,Object>> existsList = DbTools.getSqlToList(sql,userId,bdklx);
log.debug("existsList : [{}]",existsList);
existsList = existsList.stream().filter(e->DateUtil.getTime(startDate).compareTo(DateUtil.getTime(e.get("dkrq").toString())) <=0 &&
DateUtil.getTime(endDate).compareTo(DateUtil.getTime(e.get("dkrq").toString())) >=0).collect(Collectors.toList());
clockTimes +=existsList.size();
log.debug("clockTimes : [{}],maxclockTimes : [{}]",clockTimes,maxclockTimes);
if (clockTimes > maxclockTimes){
//已达到请假上限
log.error("考勤项目已达到补打卡上限");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("考勤项目已达到补打卡上限!");
return Action.FAILURE_AND_CONTINUE;
}
}
}
}catch (Exception e){
log.error("exception : [{}]",e);
}
}catch (Exception e){
log.error("exception : [{}]",e);
}
return Action.SUCCESS;
}

@ -33,48 +33,61 @@ public class OvertimePlanCheckAction implements Action {
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
//加班人员
String jbry = mainTableData.get("jbry");
try {
Map<String,List<Map<String, String>>> detailGroupMap = detailTableData.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("bdkr"))));
Map<String, Object> params = Maps.newHashMap();
params.put("userId",jbry);
params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","ksrq");
params.put("submitDataList",detailTableData);
for (Map.Entry<String,List<Map<String, String>>> tableEntry :detailGroupMap.entrySet()){
List<Map<String, String>> detailGroupByUserList = tableEntry.getValue();
Map<String, Object> params = Maps.newHashMap();
if ("".equals(tableEntry.getKey())){
params.put("userId",jbry);
}else {
params.put("userId",tableEntry.getKey());
}
params.put("submitDate",DateUtil.getCurrentDate());
params.put("submitStr","ksrq");
params.put("submitDataList",detailGroupByUserList);
/**
*
*/
if (detailTableData == null || detailTableData.size() == 0){
log.error("明细表没有数据!");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
return Action.FAILURE_AND_CONTINUE;
}
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
/**
*
*/
if (detailGroupByUserList == null || detailGroupByUserList.size() == 0){
log.error("明细表没有数据!");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("明细表没有数据!");
return Action.FAILURE_AND_CONTINUE;
}
Map<String,Object> dataMap = makeUpClockInService.getKqCycleTimeIntervalCmd(params);
List<Map<String,Object>> closeList = (List<Map<String,Object>>)dataMap.get("closeList");
List<String> nocycleList = (List<String>)dataMap.get("nocycleList");
List<Map<String,Object>> dateList = (List<Map<String,Object>>)dataMap.get("dataList");
boolean status = (boolean)dataMap.get("status");
if (!status){
log.error("该人员没有考勤周期");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE;
}
if (closeList.size() > 0 || nocycleList.size() > 0){
String message = "";
if (nocycleList.size() > 0){
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
boolean status = (boolean)dataMap.get("status");
if (!status){
log.error("该人员没有考勤周期");
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent("该人员没有考勤周期!");
return Action.FAILURE_AND_CONTINUE;
}
if (closeList.size() > 0 || nocycleList.size() > 0){
String message = "";
if (nocycleList.size() > 0){
message = message +String.join(",",nocycleList)+"未找对对应的考勤周期;";
}
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
}
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent(message);
return Action.FAILURE_AND_CONTINUE;
}
}
if (closeList.size() > 0){
List<String> list = closeList.stream().map(e->e.get("rq").toString()).collect(Collectors.toList());
message = message +String.join(",",list)+"对应的考勤周期的考勤周期已关账";
}
requestInfo.getRequestManager().setMessageid("11111" + requestid + "22222");
requestInfo.getRequestManager().setMessagecontent(message);
}catch (Exception e){
log.error("OvertimePlanCheckAction error : [{}]",e);
return Action.FAILURE_AND_CONTINUE;
}
return Action.SUCCESS;
}
}

@ -32,7 +32,7 @@ public class RevokeEliminationsAskForLeaveAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
log.info("RevokeEliminationsAskForLeaveAction,do action on request:" + requestInfo.getRequestid());
log.debug("RevokeEliminationsAskForLeaveAction,do action on request:" + requestInfo.getRequestid());
String requestid = requestInfo.getRequestid();
try {
@ -44,7 +44,7 @@ public class RevokeEliminationsAskForLeaveAction implements Action {
Map<String, Object> holidayItem = DbTools.getSqlToMap(queryItemsql, qjlx);
DetailTable[] detailTable = requestInfo.getDetailTableInfo().getDetailTable();
log.info("RevokeLeaveAction detailTable : [{}], length : {}", Arrays.toString(detailTable), detailTable.length);
log.debug("RevokeLeaveAction detailTable : [{}], length : {}", Arrays.toString(detailTable), detailTable.length);
List<Map<String, String>> updateList = new ArrayList<>();
if (detailTable.length > 0) {
for (DetailTable dt : detailTable) {
@ -57,7 +57,7 @@ public class RevokeEliminationsAskForLeaveAction implements Action {
for (Cell c : h) {
//列
String name = Util.null2String(c.getName());
log.info("RevokeLeaveAction key : {}, value : {}",c.getName(), c.getValue());
log.debug("RevokeLeaveAction key : {}, value : {}",c.getName(), c.getValue());
if ("cxsm".equals(name)) {
itemMap.put("cxsm", Util.null2String(c.getValue()));
}
@ -68,31 +68,31 @@ public class RevokeEliminationsAskForLeaveAction implements Action {
itemMap.put("cx", Util.null2String(c.getValue()));
}
}
log.info("RevokeEliminationsAskForLeaveAction itemMap : [{}]",itemMap);
log.debug("RevokeEliminationsAskForLeaveAction itemMap : [{}]",itemMap);
if (Util.null2String(itemMap.get("cx")).equals("1")) {
updateList.add(itemMap);
}
}
}
}
log.info("RevokeLeaveAction updateList : [{}]",updateList);
log.debug("RevokeLeaveAction updateList : [{}]",updateList);
if (updateList.size() > 0) {
updateList.forEach(f -> {
if (StringUtils.isNotBlank(f.get("cxlyid"))) {
String sql = "update uf_jcl_kq_qjjl_dt1" +" set "+"cxly=0,cxqj=1,cxsm=?,cxid=? where id = ?";
log.info("RevokeEliminationsAskForLeaveAction sql : [{}]",sql);
log.debug("RevokeEliminationsAskForLeaveAction sql : [{}]",sql);
DbTools.update(sql, Util.null2String(f.get("cxsm")), requestid, f.get("cxlyid"));
log.info("RevokeEliminationsAskForLeaveAction cxsm : {}, requestid : {}, cxlyid : {}",Util.null2String(f.get("cxsm")), requestid, f.get("cxlyid"));
log.debug("RevokeEliminationsAskForLeaveAction cxsm : {}, requestid : {}, cxlyid : {}",Util.null2String(f.get("cxsm")), requestid, f.get("cxlyid"));
updateHoliday(f.get("cxlyid"),holidayItem.get("hsdw").toString());
}
});
}
} catch (Exception e) {
log.info("流程数据报错:RevokeLeaveAction:");
log.debug("流程数据报错:RevokeLeaveAction:");
StringWriter errorsWriter = new StringWriter();
e.printStackTrace(new PrintWriter(errorsWriter));
log.info(errorsWriter.toString());
log.debug(errorsWriter.toString());
requestInfo.getRequestManager().setMessageid("11111" + requestInfo.getRequestid() + "22222");
requestInfo.getRequestManager().setMessagecontent("【更改请假撤销状态action】报错请联系管理员");
return Action.FAILURE_AND_CONTINUE;
@ -109,9 +109,9 @@ public class RevokeEliminationsAskForLeaveAction implements Action {
* @param hsdw
*/
public void updateHoliday(String dt1Id,String hsdw){
String sql = "select a.glmxid,a.jqye,sysc,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl_dt2 a left join uf_jcl_kq_qjjl_dt1 b on a.mainid=b.mainid and a.glrq=b.ksrq where b.id=?";
String sql = "select a.glmxid,a.jqye,sysc,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl_dt2 a left join uf_jcl_kq_qjjl_dt1 b on a.mainid=b.mainid and a.glmxid=b.glmxid where b.id=?";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,dt1Id);
log.info("updateHoliday dataList :[{}]",dataList);
log.debug("updateHoliday dataList :[{}]",dataList);
Map<String,List<Map<String,Object>>> datagroupbyId = dataList.stream().collect(Collectors.groupingBy(e->e.get("jqye").toString()));
for(Map.Entry<String,List<Map<String,Object>>> entry: datagroupbyId.entrySet()){
String jqyeId = entry.getKey();
@ -127,7 +127,7 @@ public class RevokeEliminationsAskForLeaveAction implements Action {
qjsc = qjscTotal + (qtjTotal+btjTotal)*8;
}
sql = "update uf_jcl_kq_jqye set yxsc=yxsc-"+qjsc+",wxsc=wxsc+"+qjsc+" where id=?";
log.info("updateHoliday sql : [{}]",sql);
log.debug("updateHoliday sql : [{}]",sql);
DbTools.update(sql,jqyeId);
}

@ -21,7 +21,7 @@ public class RevokeLeaveAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
log.info("RevokeLeaveAction,do action on request:" + requestInfo.getRequestid());
log.debug("RevokeLeaveAction,do action on request:" + requestInfo.getRequestid());
String requestid = requestInfo.getRequestid();
try {
@ -35,7 +35,7 @@ public class RevokeLeaveAction implements Action {
// }
DetailTable[] detailTable = requestInfo.getDetailTableInfo().getDetailTable();
log.info("RevokeLeaveAction detailTable : [{}], length : {}", Arrays.toString(detailTable), detailTable.length);
log.debug("RevokeLeaveAction detailTable : [{}], length : {}", Arrays.toString(detailTable), detailTable.length);
List<Map<String, String>> updateList = new ArrayList<>();
if (detailTable.length > 0) {
for (DetailTable dt : detailTable) {
@ -48,7 +48,7 @@ public class RevokeLeaveAction implements Action {
for (Cell c : h) {
//列
String name = Util.null2String(c.getName());
log.info("RevokeLeaveAction key : {}, value : {}",c.getName(), c.getValue());
log.debug("RevokeLeaveAction key : {}, value : {}",c.getName(), c.getValue());
if ("cxsm".equals(name)) {
itemMap.put("cxsm", Util.null2String(c.getValue()));
}
@ -59,30 +59,30 @@ public class RevokeLeaveAction implements Action {
itemMap.put("cx", Util.null2String(c.getValue()));
}
}
log.info("RevokeLeaveAction itemMap : [{}]",itemMap);
log.debug("RevokeLeaveAction itemMap : [{}]",itemMap);
if (Util.null2String(itemMap.get("cx")).equals("1")) {
updateList.add(itemMap);
}
}
}
}
log.info("RevokeLeaveAction updateList : [{}]",updateList);
log.debug("RevokeLeaveAction updateList : [{}]",updateList);
if (updateList.size() > 0) {
updateList.forEach(f -> {
if (StringUtils.isNotBlank(f.get("cxlyid"))) {
String sql = "update uf_jcl_kq_ccjl_dt1" +" set "+"cxly=0,cxcc=1,cxsm=?,cxid=? where id = ?";
log.info("RevokeLeaveAction sql : [{}]",sql);
log.debug("RevokeLeaveAction sql : [{}]",sql);
DbTools.update(sql, Util.null2String(f.get("cxsm")), requestid, f.get("cxlyid"));
log.info("RevokeLeaveAction cxsm : {}, requestid : {}, cxlyid : {}",Util.null2String(f.get("cxsm")), requestid, f.get("cxlyid"));
log.debug("RevokeLeaveAction cxsm : {}, requestid : {}, cxlyid : {}",Util.null2String(f.get("cxsm")), requestid, f.get("cxlyid"));
}
});
}
} catch (Exception e) {
log.info("流程数据报错:RevokeLeaveAction:");
log.debug("流程数据报错:RevokeLeaveAction:");
StringWriter errorsWriter = new StringWriter();
e.printStackTrace(new PrintWriter(errorsWriter));
log.info(errorsWriter.toString());
log.debug(errorsWriter.toString());
requestInfo.getRequestManager().setMessageid("11111" + requestInfo.getRequestid() + "22222");
requestInfo.getRequestManager().setMessagecontent("【更改出差撤销状态action】报错请联系管理员");
return Action.FAILURE_AND_CONTINUE;

@ -21,14 +21,14 @@ public class AskForLeaveWorkFlowArchivingAction implements Action {
// 流程表单主表数据
HashMap<String,String> mainTableData = CommonUtil.getMainTableInfo(requestInfo);
log.info("mainTableData : [{}]",mainTableData);
log.debug("mainTableData : [{}]",mainTableData);
// 流程表单明细表1数据
List<Map<String, String>> detailTableData = CommonUtil.getDetailTableInfo(requestInfo,0);
log.info("detailTableData : [{}]",detailTableData);
log.debug("detailTableData : [{}]",detailTableData);
//流程表单明细表2数据
List<Map<String, String>> detailTable2 = CommonUtil.getDetailTableInfo(requestInfo,1);
log.info("detailTableData : [{}]",detailTable2);
log.debug("detailTableData : [{}]",detailTable2);
//请假人员

@ -188,12 +188,15 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
String cxjqj = mainTableData.get("cxjqj");
for (Map<String, String> detailData : detailTableData) {
String ksrq = detailData.get("ksrq");
String ksrq = Util.null2String(detailData.get("ksrq"));
String kssj = Util.null2String(detailData.get("kssj"));
String qtj = Util.null2String(detailData.get("qtj"));
String btj = Util.null2String(detailData.get("btj"));
//请假时间
double leaveDuration = 0;
if (cxjqj.equals(AskAndEvctionWayEnum.ALLDAY.getKey())) {
if (qtj.equals(CheckBoxEnum.CHECKED.getKey())) {
leaveDuration = 1;
} else if (cxjqj.equals(AskAndEvctionWayEnum.HALFDAY.getKey())) {
} else if (btj.equals(CheckBoxEnum.CHECKED.getKey())) {
leaveDuration = 0.5;
} else if (cxjqj.equals(AskAndEvctionWayEnum.TIME_INTERVAL.getKey()) || cxjqj.equals(AskAndEvctionWayEnum.HOUR.getKey())) {
leaveDuration = Double.valueOf(Util.null2String(detailData.get("qjsc")));
@ -201,7 +204,7 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
if (hsdw.equals(AccountingUnitEnum.HOUR.getKey()) && (cxjqj.equals(AskAndEvctionWayEnum.ALLDAY.getKey()) || cxjqj.equals(AskAndEvctionWayEnum.HALFDAY.getKey()))) {
leaveDuration = leaveDuration * 8;
}
log.info("leaveDuration : [{}]", leaveDuration);
log.debug("leaveDuration : [{}]", leaveDuration);
// List<Map<String, Object>> holidayBalancefilterList = holidayBalanceList.stream().filter(e -> DateUtil.getTime(e.get("yqsxrq").toString()).compareTo(DateUtil.getTime(ksrq)) >= 0).collect(Collectors.toList());
for (Map<String, Object> holidayBalance : holidayBalanceList) {
//额定未休时长
@ -235,7 +238,7 @@ public class AskForLeaveWorkFlowSubmitAction implements Action {
return Action.FAILURE_AND_CONTINUE;
}
}
log.info("detailTable2 : [{}]", detailTable2);
log.debug("detailTable2 : [{}]", detailTable2);
//更新流程明细表2
String delteSql = "delete from " + detail2TableName + " where mainid=?";

@ -34,7 +34,7 @@ public class GetAskForLeaveRecordListCmd extends AbstractCommonCommand<Map<Strin
String businessTripsType = Util.null2String(params.get("businessTripsType"));
String startDate = Util.null2String(params.get("startDate"));
String endDate = Util.null2String(params.get("endDate"));
log.info("targetUserId : {}, businessTripsType : {}, startDate : {}, endDate : {}", targetUserId, businessTripsType, startDate, endDate);
log.debug("targetUserId : {}, businessTripsType : {}, startDate : {}, endDate : {}", targetUserId, businessTripsType, startDate, endDate);
String detailSql = "select a.id,a.cxqj,a.ksrq,a.kssj,a.jsrq,a.jssj,a.qjsc,a.qtj,a.btj,a.cxsm from uf_jcl_kq_qjjl_dt1 a left join uf_jcl_kq_qjjl b on a.mainid=b.id where (a.cxqj is null or a.cxqj<>1) and b.qjry =? and a.ksrq >= ? and a.ksrq <= ? and b.jqlx=?";
List<Map<String, Object>> detailList = DbTools.getSqlToList(detailSql,targetUserId,startDate,endDate,businessTripsType);
@ -43,7 +43,7 @@ public class GetAskForLeaveRecordListCmd extends AbstractCommonCommand<Map<Strin
} else {
retmap.put("result", null);
}
log.info("detailList : [{}]", detailList);
log.debug("detailList : [{}]", detailList);
return retmap;
}

@ -29,7 +29,7 @@ public class GetEliminationsEvctionListCmd extends AbstractCommonCommand<Map<Str
String businessTripsType = Util.null2String(params.get("businessTripsType"));
String startDate = Util.null2String(params.get("startDate"));
String endDate = Util.null2String(params.get("endDate"));
log.info("targetUserId : {}, businessTripsType : {}, startDate : {}, endDate : {}",targetUserId, businessTripsType, startDate, endDate);
log.debug("targetUserId : {}, businessTripsType : {}, startDate : {}, endDate : {}",targetUserId, businessTripsType, startDate, endDate);
String sql = "select * from uf_jcl_kq_qjjl where qjry="+targetUserId;
if (!businessTripsType.equals("")) {
sql += " and jqlx = " + businessTripsType;
@ -40,7 +40,7 @@ public class GetEliminationsEvctionListCmd extends AbstractCommonCommand<Map<Str
if (!endDate.equals("")) {
sql += " and jsrq <= '" + endDate+"'";
}
log.info(sql);
log.debug(sql);
List<String> maidList = new ArrayList<>();
if (!targetUserId.equals("")) {
List<Map<String,Object>> datas = DbTools.getSqlToList(sql);
@ -50,7 +50,7 @@ public class GetEliminationsEvctionListCmd extends AbstractCommonCommand<Map<Str
});
}
}
log.info("maidList : [{}]",maidList);
log.debug("maidList : [{}]",maidList);
//查询子表数据
if (maidList.size() > 0) {
String detailSql = "select a.id,a.ksrq,a.kssj,a.jsrq,a.jssj,a.qjsc,a.qtj,a.btj,a.cxqj from uf_jcl_kq_qjjl_dt1 a where mainid in ("+String.join(",",maidList)+")";
@ -60,7 +60,7 @@ public class GetEliminationsEvctionListCmd extends AbstractCommonCommand<Map<Str
} else {
retmap.put("result", null);
}
log.info("detailList : [{}]",detailList);
log.debug("detailList : [{}]",detailList);
} else {
retmap.put("result", null);
}

@ -45,11 +45,11 @@ public class GetKqCycleTimeIntervalCmd extends AbstractCommonCommand<Map<String,
yearSet.add(map.get(submitStr).toString().split("-")[0]);
}
log.info("GetKqCycleTimeIntervalCmd userId:[{}],submitDateList:[{}],submitStr:[{}]",userId,submitDataList,submitStr);
log.debug("GetKqCycleTimeIntervalCmd userId:[{}],submitDateList:[{}],submitStr:[{}]",userId,submitDataList,submitStr);
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc");
Set<String> attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null);
log.info("attendanceSetIdsSets : {}",attendanceSetIdsSets);
log.debug("attendanceSetIdsSets : {}",attendanceSetIdsSets);
if (attendanceSetIdsSets.size() == 0){
//取默认周期
String sql = "select id from uf_jcl_kq_kqzqmc where mrzq=1";
@ -71,7 +71,7 @@ public class GetKqCycleTimeIntervalCmd extends AbstractCommonCommand<Map<String,
try {
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
pdeptids = deptid + pdeptids;
log.info("pdeptids : [{}]",pdeptids);
log.debug("pdeptids : [{}]",pdeptids);
sql = "select a.zt,a.ksrq,a.jsrq,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.mc=? and a.nd in ("+String.join(",",yearSet)+")";
if (attendanceSetIdsSets.toArray().length == 0){
@ -79,12 +79,12 @@ public class GetKqCycleTimeIntervalCmd extends AbstractCommonCommand<Map<String,
return resultMap;
}
List<Map<String,Object>> list = DbTools.getSqlToList(sql,attendanceSetIdsSets.toArray()[0]);
log.info("GetKqCycleTimeIntervalCmd list : [{}]",list);
log.debug("GetKqCycleTimeIntervalCmd list : [{}]",list);
for (Map<String,Object> detailData:submitDataList){
String ksrq = Util.null2String(detailData.get(submitStr)).split(" ")[0];
List<Map<String,Object>> cycleTime = list.stream().filter(e->DateUtil.getTime(e.get("ksrq").toString()).compareTo(DateUtil.getTime(ksrq)) <= 0 &&
DateUtil.getTime(e.get("jsrq").toString()).compareTo(DateUtil.getTime(ksrq)) >=0).collect(Collectors.toList());
log.info("数据业务日期:[{}],周期数据:[{}]",ksrq,cycleTime);
log.debug("数据业务日期:[{}],周期数据:[{}]",ksrq,cycleTime);
if (cycleTime.size() > 0){
Map<String,Object> date = Maps.newHashMap();
date.put("startDate",cycleTime.get(0).get("ksrq"));
@ -126,8 +126,8 @@ public class GetKqCycleTimeIntervalCmd extends AbstractCommonCommand<Map<String,
}catch (Exception e){
log.error("catch error :{}",e);
}
log.info("GetKqCycleTimeIntervalCmd closeList : [{}]",closeList);
log.info("GetKqCycleTimeIntervalCmd nocycleList : [{}]",nocycleList);
log.debug("GetKqCycleTimeIntervalCmd closeList : [{}]",closeList);
log.debug("GetKqCycleTimeIntervalCmd nocycleList : [{}]",nocycleList);
resultMap.put("closeList",closeList);
resultMap.put("nocycleList",nocycleList);

@ -64,7 +64,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
for (Map<String, String> detail:detailTableData){
String ksrq = detail.get("ksrq");
List<Map<String,Object>> list = holidayBalanceList.stream().filter(e-> DateUtil.getTime(e.get("yqsxrq").toString()).compareTo(DateUtil.getTime(ksrq))>=0).collect(Collectors.toList());
log.info("ksrq : [{}], list : [{}]",ksrq,list);
log.debug("ksrq : [{}], list : [{}]",ksrq,list);
double totalUnearnedLeave = list.stream().mapToDouble(e->Double.valueOf(e.get("wxsc").toString())).sum();
if (totalUnearnedLeave == 0){
List<Map<String,String>> details = (List<Map<String,String>>)useItemMap.get(holidayItem.get("id"));

@ -27,7 +27,7 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
String businessTripsType = Util.null2String(params.get("businessTripsType"));
String startDate = Util.null2String(params.get("startDate"));
String endDate = Util.null2String(params.get("endDate"));
log.info("targetUserId : {}, businessTripsType : {}, startDate : {}, endDate : {}", targetUserId, businessTripsType, startDate, endDate);
log.debug("targetUserId : {}, businessTripsType : {}, startDate : {}, endDate : {}", targetUserId, businessTripsType, startDate, endDate);
//查询子表数据
String detailSql = "select a.id,a.cxcc,a.ksrq,a.kssj,a.jsrq,a.jssj,a.ccsc,a.qtcc,a.btcc,a.cxsm from uf_jcl_kq_ccjl_dt1 a left join uf_jcl_kq_ccjl b on a.mainid=b.id where (a.cxcc is null or a.cxcc<>1) and a.ccr =? and a.ksrq >= ? and a.ksrq <= ? and b.cclx=?";
@ -37,7 +37,7 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
} else {
retmap.put("result", null);
}
log.info("detailList : [{}]", detailList);
log.debug("detailList : [{}]", detailList);
return retmap;
}

@ -29,7 +29,7 @@ public class ProcessSubmitCheckServiceImpl extends Service implements ProcessSub
resultMap.put("result","0");
Set<String> attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null);
log.info("attendanceSetIdsSets : {}",attendanceSetIdsSets);
log.debug("attendanceSetIdsSets : {}",attendanceSetIdsSets);
for (String submitDate:submitDates.split(",")){
LocalDateTime localDateTime = DateUtil.getTime(submitDate);
int year = localDateTime.getYear();
@ -41,7 +41,7 @@ public class ProcessSubmitCheckServiceImpl extends Service implements ProcessSub
try {
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
pdeptids = deptid + pdeptids;
log.info("pdeptids : [{}]",pdeptids);
log.debug("pdeptids : [{}]",pdeptids);
sql = "select a.zt,a.ksrq,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<Map<String,Object>> list = DbTools.getSqlToList(sql,year,attendanceSetIdsSets.toArray()[0],month);

@ -133,16 +133,16 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
List<Map<String,Object>> hrmListByDepartAndSubCompanyIds = DbTools.getSqlToList(sql);
//部门id-人员id集合
Map<String,List<Map<String,Object>>> hrmListGroupByDepart = hrmListByDepartAndSubCompanyIds.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("departmentid"))));
log.info("hrmListGroupByDepart : [{}]",hrmListGroupByDepart);
log.debug("hrmListGroupByDepart : [{}]",hrmListGroupByDepart);
//分部id-人员id集合
Map<String,List<Map<String,Object>>> hrmListGroupBySubCompany = hrmListByDepartAndSubCompanyIds.stream().collect(Collectors.groupingBy(e->Util.null2String(e.get("subcompanyid1"))));
log.info("hrmListGroupBySubCompany : [{}]",hrmListGroupBySubCompany);
log.debug("hrmListGroupBySubCompany : [{}]",hrmListGroupBySubCompany);
//人员分组id-人员id集合
if (personOrganzationIds.size() >0){
//人员分组id-假别假期规则id
Map<String,Set<String>> personGroupUserIds = getPersonGroupUserIds(personOrganzationIds);
log.info("personGroupUserIds : [{}]",personGroupUserIds);
log.info("personOrganzationMap : [{}]",personOrganzationMap);
log.debug("personGroupUserIds : [{}]",personGroupUserIds);
log.debug("personOrganzationMap : [{}]",personOrganzationMap);
for (Map.Entry<String,Object> entry : personOrganzationMap.entrySet()){
String personGroupId = entry.getKey();
//人员分组假别假期规则id
@ -165,9 +165,9 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
}
}
log.info("before personMap : [{}]",personMap);
log.debug("before personMap : [{}]",personMap);
//部门id
log.info("departMentMap : [{}]",departMentMap);
log.debug("departMentMap : [{}]",departMentMap);
for (Map.Entry<String,Object> entry : departMentMap.entrySet()){
String departMentId = entry.getKey();
//部门假别假期规则id
@ -190,7 +190,7 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
}
}
//分部id
log.info("subCompanyMap : [{}]",subCompanyMap);
log.debug("subCompanyMap : [{}]",subCompanyMap);
for (Map.Entry<String,Object> entry : subCompanyMap.entrySet()){
String subCompanyId = entry.getKey();
//分部假别假期规则id
@ -212,7 +212,7 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
}
}
}
log.info("personMap : [{}]",personMap);
log.debug("personMap : [{}]",personMap);
Map<String,Object> newpersonMap = Maps.newHashMap();
for (Map.Entry<String,Object> entry :personMap.entrySet()){
String userId = entry.getKey();
@ -267,7 +267,7 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
}else {
sql = sql+ " and "+filters;
}
log.info("getPersonnelGroupingByPerson filter sql : {}",sql);
log.debug("getPersonnelGroupingByPerson filter sql : {}",sql);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));

@ -44,8 +44,8 @@ public class QueryCommonCmd extends AbstractCommonCommand<Map<String,Object>> {
conditionSql = conditionSql.substring(0,conditionSql.length()-3);
sentenceSql = sentenceSql +" where "+ conditionSql;
}
log.info("sql : [{}]",sentenceSql);
log.info("objs : [{}]",objs);
log.debug("sql : [{}]",sentenceSql);
log.debug("objs : [{}]",objs);
List<Map<String,Object>> lists = DbTools.getSqlToList(sentenceSql,objs);
resultMap.put("data",lists);

@ -23,7 +23,7 @@ public class CommonServiceImpl extends Service implements CommonService {
@Override
public Map<String, Object> updateCommon(Map<String, Object> param) {
Map<String, Object> result = new HashMap<>();
log.info("updateCommon param:[{}]",param);
log.debug("updateCommon param:[{}]",param);
result.put("result", DbTools.update(CommonUtil.makeUpdateSql(Util.null2String(param.get("tableName")),Utils.resolveMap(Util.null2String(param.get("data"))),Utils.resolveMap(Util.null2String(param.get("condition"))))));
return result;
}
@ -31,7 +31,7 @@ public class CommonServiceImpl extends Service implements CommonService {
@Override
public Map<String, Object> insertCommon(Map<String, Object> param) {
Map<String, Object> result = new HashMap<>();
log.info("insertCommon param:[{}]",param);
log.debug("insertCommon param:[{}]",param);
Map<String,Object> params = Utils.resolveMap(Util.null2String(param.get("params")));
String tableName = Util.null2String(params.get("tableName"));
params.remove("tableName");

@ -1,9 +1,11 @@
package com.engine.common.util;
import com.engine.attendance.attendanceanalysis.cmd.getclockInpoint.AdjustClockPointAction;
import com.engine.attendance.component.persongroup.commonutil.PersongroupCommonUtil;
import com.engine.attendance.enums.ApplicableOrganizationEnum;
import com.engine.attendance.enums.CheckBoxEnum;
import com.engine.attendance.enums.PersonGroupListTypeEnum;
import com.engine.common.exception.AttendanceRunTimeException;
import com.google.common.collect.Maps;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
@ -49,8 +51,8 @@ public class CommonUtil {
key = key.substring(0,key.length()-1) + ")";
value = value.substring(0,value.length()-1)+")";
insertSql = insertSql + key +" values "+value;
log.info("makeInsertSql : [{}]",insertSql);
log.info("needInsertDate: [{}]",dataList);
log.debug("makeInsertSql : [{}]",insertSql);
log.debug("needInsertDate: [{}]",dataList);
return DbTools.update(insertSql,dataList);
}
@ -72,7 +74,7 @@ public class CommonUtil {
for (Map.Entry<String,Object> e : condition.entrySet()){
updateSql = updateSql + " and "+ e.getKey()+"='"+e.getValue()+"'";
}
log.info("makeUpdateSql : [{}]",updateSql);
log.debug("makeUpdateSql : [{}]",updateSql);
return updateSql;
@ -95,7 +97,7 @@ public class CommonUtil {
key = key.substring(0,key.length()-1) + ")";
value = value.substring(0,value.length()-1)+")";
sql = sql + key +" values "+value;
log.info("insertBatch sql :"+sql);
log.debug("insertBatch sql :"+sql);
List<List> insertDataList = Lists.newArrayList();
for (Map<String,Object> dataMap : dataList){
ArrayList<Object> list = new ArrayList<>();
@ -104,7 +106,7 @@ public class CommonUtil {
}
insertDataList.add(list);
}
log.info("insertBatch : [{}]",insertDataList);
log.debug("insertBatch : [{}]",insertDataList);
return DbTools.updateBatch(sql,insertDataList);
}
@ -144,10 +146,10 @@ public class CommonUtil {
if (personGroupOrganizationList != null && dataIds.size() ==0){
Set<String> 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);
log.debug("query personGroupData : {}",sql);
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(sql);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate);
log.info("personnelGroupIds : {}",personnelGroupIds);
log.debug("personnelGroupIds : {}",personnelGroupIds);
for (Map<String,Object> personGroupOrganization :personGroupOrganizationList){
String personnelGroupId = Util.null2String(personGroupOrganization.get("dx")).split("-")[0];
if (personnelGroupIds.contains(personnelGroupId)){
@ -161,7 +163,7 @@ public class CommonUtil {
String pdeptids = "";
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
pdeptids = deptid + pdeptids;
log.info("pdeptids : [{}]",pdeptids);
log.debug("pdeptids : [{}]",pdeptids);
for (Map<String,Object> departmentOrganization :departmentOrganizationList){
String dx = Util.null2String(departmentOrganization.get("dx"));
String ids = dx.split("-")[0];
@ -187,7 +189,7 @@ public class CommonUtil {
}
log.info("dataIds : {}",dataIds);
log.debug("dataIds : {}",dataIds);
return dataIds;
}
@ -229,10 +231,10 @@ public class CommonUtil {
if (personGroupOrganizationList != null){
Set<String> 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);
log.debug("query personGroupData : {}",sql);
List<Map<String,Object>> personGroupData = DbTools.getSqlToList(sql);
Set<String> personnelGroupIds = PersongroupCommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate);
log.info("personnelGroupIds : {}",personnelGroupIds);
log.debug("personnelGroupIds : {}",personnelGroupIds);
for (Map<String,Object> personGroupOrganization :personGroupOrganizationList){
String personnelGroupId = Util.null2String(personGroupOrganization.get("dx")).split("-")[0];
if (personnelGroupIds.contains(personnelGroupId)){
@ -246,7 +248,7 @@ public class CommonUtil {
String pdeptids = "";
pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids);
pdeptids = deptid + pdeptids;
log.info("pdeptids : [{}]",pdeptids);
log.debug("pdeptids : [{}]",pdeptids);
for (Map<String,Object> departmentOrganization :departmentOrganizationList){
String dx = Util.null2String(departmentOrganization.get("dx"));
String ids = dx.split("-")[0];
@ -272,7 +274,7 @@ public class CommonUtil {
}
log.info("dataIds : {}",dataIds);
log.debug("dataIds : {}",dataIds);
return dataIds;
}
@ -315,7 +317,7 @@ public class CommonUtil {
DetailTable[] detailtables = request.getDetailTableInfo().getDetailTable();// 获取明细表数据
if (detailtables.length > index) {
DetailTable dt = detailtables[index];// 获取明细表 0代表明细表1
log.info("getDetailTableInfo :[{}]",dt.getTableDBName());
log.debug("getDetailTableInfo :[{}]",dt.getTableDBName());
Row[] rows = dt.getRow();// 获取明细表中所有行的信息
for (int i = 0; i < rows.length; i++) {
Row row = rows[i];// 获取具体行信息
@ -388,7 +390,7 @@ public class CommonUtil {
}
}
//人员类型
log.info("empIdInfos : " + empIdInfos);
log.debug("empIdInfos : " + empIdInfos);
for (Map<String, String> map : empIdInfos) {
String id = map.get("id");
String minSecurityLevel = map.get("minSecurityLevel");
@ -402,20 +404,20 @@ public class CommonUtil {
querySql = querySql + " and seclevel <= " +maxSecurityLevel;
}
Map<String,Object> data = DbTools.getSqlToMap(querySql);
log.info("querySql : " + querySql);
log.debug("querySql : " + querySql);
if (data.size() > 0) {
empIdList.add(id);
}
}
//人员分组类型
log.info("empGroupIdInfos : " + empGroupIdInfos);
log.debug("empGroupIdInfos : " + empGroupIdInfos);
for (Map<String, String> map : empGroupIdInfos) {
String id = map.get("id");
String minSecurityLevel = map.get("minSecurityLevel");
String maxSecurityLevel = map.get("maxSecurityLevel");
//获取分组包含人员id
Set<String> empIdsByGroup = getEmpGroupUserIds(id);
log.info("empGroupId : " + id + ", empIdsByGroup : " + empIdsByGroup);
log.debug("empGroupId : " + id + ", empIdsByGroup : " + empIdsByGroup);
//查询目标人员信息
if (empIdsByGroup.size() > 0) {
String querySql = "select * from hrmresource where id in ("+String.join(",",empIdsByGroup)+")";
@ -426,15 +428,15 @@ public class CommonUtil {
querySql = querySql + " and seclevel <= " +maxSecurityLevel;
}
List<Map<String,Object>> datas = DbTools.getSqlToListKeySmallLetter(querySql);
log.info("querySql : " + querySql);
log.debug("querySql : " + querySql);
if (datas.size() > 0) {
log.info("datas.size : " + datas.size());
log.debug("datas.size : " + datas.size());
datas.forEach(f -> empIdList.add(f.get("id").toString()));
}
}
}
//部门类型
log.info("depIdInfos : " + depIdInfos);
log.debug("depIdInfos : " + depIdInfos);
for (Map<String, String> map : depIdInfos) {
String id = map.get("id");
String minSecurityLevel = map.get("minSecurityLevel");
@ -448,14 +450,14 @@ public class CommonUtil {
querySql = querySql + " and seclevel <= " +maxSecurityLevel;
}
List<Map<String,Object>> datas = DbTools.getSqlToListKeySmallLetter(querySql);
log.info("querySql : " + querySql);
log.debug("querySql : " + querySql);
if (datas.size() > 0) {
log.info("datas.size : " + datas.size());
log.debug("datas.size : " + datas.size());
datas.forEach(f -> empIdList.add(f.get("id").toString()));
}
}
//分部类型
log.info("subCompanyIdInfos : " + subCompanyIdInfos);
log.debug("subCompanyIdInfos : " + subCompanyIdInfos);
for (Map<String, String> map : subCompanyIdInfos) {
String id = map.get("id");
String minSecurityLevel = map.get("minSecurityLevel");
@ -469,9 +471,9 @@ public class CommonUtil {
querySql = querySql + " and seclevel <= " +maxSecurityLevel;
}
List<Map<String,Object>> datas = DbTools.getSqlToListKeySmallLetter(querySql);
log.info("querySql : " + querySql);
log.debug("querySql : " + querySql);
if (datas.size() > 0) {
log.info("datas.size : " + datas.size());
log.debug("datas.size : " + datas.size());
datas.forEach(f -> empIdList.add(f.get("id").toString()));
}
}
@ -509,7 +511,7 @@ public class CommonUtil {
}else {
sql = sql+ " and "+filters;
}
log.info("getPersonnelGroupingByPerson filter sql : {}",sql);
log.debug("getPersonnelGroupingByPerson filter sql : {}",sql);
List<Map<String,Object>> dataList = DbTools.getSqlToListKeySmallLetter(sql);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
@ -559,7 +561,7 @@ public class CommonUtil {
}else {
sql = sql+ " and "+filters;
}
log.info("getPersonnelGroupingByPerson filter sql : {}",sql);
log.debug("getPersonnelGroupingByPerson filter sql : {}",sql);
List<Map<String,Object>> dataList = DbTools.getSqlToListKeySmallLetter(sql);
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
@ -619,7 +621,7 @@ public class CommonUtil {
public static String getRqlx(String userId,String date){
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_rlmc");
Set<String> calendarSetIdsSets = CommonUtil.getDataIds(userId,modeId,DateUtil.getCurrentDate(),DateUtil.getCurrentDate());
log.info("getRqlx calendarSetIdsSets : [{}]",calendarSetIdsSets);
log.debug("getRqlx calendarSetIdsSets : [{}]",calendarSetIdsSets);
String rqlx = "";
if (calendarSetIdsSets.size() > 0){
String sql = "select rqlx from uf_jcl_kq_rlxx where rlmc=? and rq=?";
@ -650,7 +652,7 @@ public class CommonUtil {
public static List<Map<String,Object>> getYearCalendarList(String userId,String year){
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_rlmc");
Set<String> calendarSetIdsSets = CommonUtil.getDataIds(userId,modeId,DateUtil.getCurrentDate(),DateUtil.getCurrentDate());
log.info("getRqlx calendarSetIdsSets : [{}]",calendarSetIdsSets);
log.debug("getRqlx calendarSetIdsSets : [{}]",calendarSetIdsSets);
List<Map<String,Object>> resultList = Lists.newArrayList();
if (calendarSetIdsSets.size() > 0){
String sql = "select rqlx,rq from uf_jcl_kq_rlxx where rlmc=? and nd=?";
@ -741,4 +743,28 @@ public class CommonUtil {
}
return resultMap;
}
/**
*
*/
public static void initExtensionClassHolder(){
String sql = "select jkdzlwj,jkdzsxlx,zt,zhsx from uf_jcl_kq_ywdmjc a left join uf_jcl_kq_ywdmjc_dt1 b on a.id=b.mainid where a.zt=0";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
try {
//打卡卡点扩展类
List<AdjustClockPointAction> adjustClockPointAction = Lists.newArrayList();
List<Map<String,Object>> adjustClockPointActionResultList = dataList.stream().filter(e->"0".equals(e.get("jkdzsxlx"))).sorted(Comparator.comparing(e->Integer.valueOf(e.get("zhsx").toString()))).collect(Collectors.toList());
for (Map<String,Object> adjustClockPointActionMap:adjustClockPointActionResultList){
String classPath = adjustClockPointActionMap.get("jkdzlwj").toString();
AdjustClockPointAction action = (AdjustClockPointAction)Class.forName(classPath).newInstance();
adjustClockPointAction.add(action);
}
ExtensionClassHolder.setAdjustClockPointAction(adjustClockPointAction);
}catch (Exception e){
log.error("initExtensionClassHolder fail");
throw new AttendanceRunTimeException("初始化扩展类失败");
}
}
}

@ -0,0 +1,23 @@
package com.engine.common.util;
import com.engine.attendance.attendanceanalysis.cmd.getclockInpoint.AdjustClockPointAction;
import java.util.List;
/**
*
*/
public class ExtensionClassHolder {
/**
*
*/
private static ThreadLocal<List<AdjustClockPointAction>> adjustClockPointActionThreadLocal = new ThreadLocal<>();
public static void setAdjustClockPointAction(List<AdjustClockPointAction> adjustClockPointActionList) {
adjustClockPointActionThreadLocal.set(adjustClockPointActionList);
}
public static List<AdjustClockPointAction> getAdjustClockPointAction() {
return adjustClockPointActionThreadLocal.get();
}
}

@ -55,7 +55,7 @@ public class ResponseResult<T, R> {
public String run(Function<T, R> f, T t) {
try {
if (isLog) {
log.info("run attendance api , param {}", t);
log.debug("run attendance api , param {}", t);
}
return Ok(f.apply(t));
} catch (AttendanceRunTimeException e) {
@ -85,7 +85,7 @@ public class ResponseResult<T, R> {
public String run(Consumer<T> f, T t) {
try {
if (isLog) {
log.info("run attendance api , param {}", t);
log.debug("run attendance api , param {}", t);
}
f.accept(t);
return Ok();
@ -108,7 +108,7 @@ public class ResponseResult<T, R> {
public String run(Supplier<R> f) {
try {
if (isLog) {
log.info("run attendance api");
log.debug("run attendance api");
}
return Ok(f.get());
} catch (AttendanceRunTimeException e) {
@ -149,7 +149,7 @@ public class ResponseResult<T, R> {
apidatas.put("data", r);
String success = getJsonString(apidatas);
if (isLog) {
log.info("run attendance api success return {}", success);
log.debug("run attendance api success return {}", success);
}
return success;
}

@ -395,7 +395,7 @@ public class Utils<T> {
*/
public static int removeTime(String kssj,String jssj,List<Map<String, Object>> scheduleResult,String analysisDate){
int betweenMinutes = 0;
log.info("removeRestTime scheduleResult : {}",scheduleResult);
log.debug("removeRestTime scheduleResult : {}",scheduleResult);
for (Map<String, Object> restSchedule :scheduleResult){
String dtkssj = Utils.getkssjTime(restSchedule,analysisDate);
String dtjssj = Utils.getjssjTime(restSchedule,analysisDate);
@ -403,19 +403,19 @@ public class Utils<T> {
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dtkssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dtjssj)) >=0){
//休息时间在请假时间中间
betweenMinutes = DateUtil.getBetWeenMinutes(dtkssj,dtjssj);
log.info("休息时间在请假时间中间");
log.debug("休息时间在请假时间中间");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dtkssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dtjssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dtkssj)) >=0){
//休息时间在请假时间 右边
betweenMinutes = DateUtil.getBetWeenMinutes(dtkssj,jssj);
log.info("休息时间在请假时间 右边");
log.debug("休息时间在请假时间 右边");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dtkssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dtjssj)) >=0 && DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dtjssj)) <=0){
//休息时间在请假时间 左边
betweenMinutes = DateUtil.getBetWeenMinutes(kssj,dtjssj);
log.info("休息时间在请假时间 左边");
log.debug("休息时间在请假时间 左边");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(dtkssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(dtjssj)) <=0){
//请假时间在休息时间中间
betweenMinutes = 0;
log.info("请假时间在休息时间中间");
log.debug("请假时间在休息时间中间");
}
}
return betweenMinutes;
@ -445,19 +445,19 @@ public class Utils<T> {
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) >=0){
//请假外出时间在中间
betweenMinutes = DateUtil.getBetWeenMinutes(leavekssj,leavejssj);
log.info("请假外出时间在中间");
log.debug("请假外出时间在中间");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavekssj)) >=0){
//请假外出时间 右边
betweenMinutes = DateUtil.getBetWeenMinutes(leavekssj,jssj);
log.info("请假外出时间 右边");
log.debug("请假外出时间 右边");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) >=0 && DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavejssj)) <=0){
//休请假外出时间 左边
betweenMinutes = DateUtil.getBetWeenMinutes(kssj,leavejssj);
log.info("请假外出时间 左边");
log.debug("请假外出时间 左边");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) <=0){
//请假外出时间中间
betweenMinutes = DateUtil.getBetWeenMinutes(kssj,jssj);
log.info("加班实际在请假外出时间中间");
log.debug("加班实际在请假外出时间中间");
}
return betweenMinutes;
}
@ -473,19 +473,19 @@ public class Utils<T> {
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) >=0){
//时间在中间
betweenMinutes = removeRestTime(leavekssj,leavejssj,scheduleResult,analysisDate);
log.info("时间在中间,被包含");
log.debug("时间在中间,被包含");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) <=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavekssj)) >=0){
//时间 右边
betweenMinutes = removeRestTime(leavekssj,jssj,scheduleResult,analysisDate);
log.info("时间 右边");
log.debug("时间 右边");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) >=0 && DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavejssj)) <=0){
//时间 左边
betweenMinutes = removeRestTime(kssj,leavejssj,scheduleResult,analysisDate);
log.info("时间 左边");
log.debug("时间 左边");
}else if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(leavekssj)) >=0 && DateUtil.getTime(jssj).compareTo(DateUtil.getTime(leavejssj)) <=0){
//请假外出时间中间
betweenMinutes = removeRestTime(kssj,jssj,scheduleResult,analysisDate);
log.info("时间在中间,包含");
log.debug("时间在中间,包含");
}
return betweenMinutes;
}
@ -580,7 +580,7 @@ public class Utils<T> {
List<Map<String, Object>> classList = entry.getValue();
if (classList.size() > 1){
classList = classList.stream().filter(e->!e.get("pbtj").equals(RegularScheduleTypeEnum.REGULAR.getKey())).collect(Collectors.toList());
classList = classList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("pbrq")+" "+e.get("pbsj")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
classList = classList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("modedatacreatedate")+" "+e.get("modedatacreatetime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
if (classList.size() > 0){
resultList.add(classList.get(classList.size()-1));
}else {

@ -156,10 +156,10 @@ public class ExcelParseHelper {
public static List<Map<String, Object>> parse2Map(Sheet sheet, int rowIndex) {
int rowCount = sheet.getPhysicalNumberOfRows(); // 总行数
int cellCount = sheet.getRow(PARSE_EXCEL_ROW_VALID_CELL_INDEX).getPhysicalNumberOfCells(); // 总列数
log.info("rowCount: {}", rowCount);
log.info("cellCount: {}", cellCount);
log.debug("rowCount: {}", rowCount);
log.debug("cellCount: {}", cellCount);
List<String> sheetHeader = ExcelSupport.getSheetHeader(sheet, PARSE_EXCEL_ROW_VALID_CELL_INDEX);
log.info("sheetHeader: {}", sheetHeader);
log.debug("sheetHeader: {}", sheetHeader);
List<Map<String, Object>> result = new ArrayList<>();
for (; rowIndex < rowCount; rowIndex++) {

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save