日历排班分页,手工和已确认数据不分析,批量分析接口失败

zm_dev
liuliang 1 year ago
parent b17eb586c4
commit d1a3489f74

@ -1 +1 @@
аyГ~цЭ|дй~Й~хд|И}фЛ~ш}Т~М|юй~с}С}юЯ}У}Ь~к~Х}Н~г}ЭЖ|б}О}ЪрqчhаjЖkЛjВhТjгiлjфkзiУhЭlЩkуoжpжxЯuЭtЧvВvтwЛvа{иxяyТxЙvЮxЦvБyиxрzпwЧvзxаЫЧшСжМЧСъмЖСЪзнНШзЭдДоЩЪДвкдЩРыщчАяПЬэяЮчцПГЗУЪлощбЭхдЪтзЖТНБУщПсЩлэррЦькмИпЙПРжпАлиШФмюмШдшжиИЖъВнлОЙНиwбsСsЪvцsЕwаtПsщyАlГtДoфsшqлlЬqЦpЗrКlыsЖsвuрsХmхoьqЛrщlйjНZК\т^Й\ФZоVфZХXШ\РVИhбwчxкzБyп{Шzб|ш{оxОxЙ|фzд|яwи{ЗvБyК|ЦVеZюUаYфSТYхXе\цXэaцcвeщ_ЮWхWц^бTмRюTЫTПZсWж[ъTЕ]ы[ЪWТRДWгVоZГZЧUЮYСQсXЮWБYЦ[кZшgО~В~ыzю~л{РzвyК{Бxи~ц|М{ъ~тж|Ф}к~н}ычaчdВ]вhп]вaь^ГaК`гaй^ж_Ш]С]И]в^Т^в^и]Т]Х`ЯkКgшgюgЩgюhШcТ]жWЬkшiцqжhЧoяLбLшLюMБMГMКMКMНMсNХMКMНMГMХMЙMНMФMХMЯKДKЕKЙKюKаJцJЪJЕKЦKБKоLшKФKГKГKЕKИKЕKЕKИJюJФJсKЕKИKФKЕKФKДKГKГKпLДKЕKшKжJаJХJДKЕKХKЦKоLЦKДKЦKИKГKФKЕKюKдJЧIсKБKЦKХKГKЕKДKГKЕKГKрLФKГKКJЪIсJтKЕKФKГKДKоLФKФKФKДKЙKДKвKшJюJФJЧKДKДKДKДK
<EFBFBD><EFBFBD>Y<EFBFBD>Y<EFBFBD>Y<EFBFBD>r<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD>~<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

@ -19,25 +19,36 @@
<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/GetClockInTimeItemCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetClockInTimeItemCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetClockInTimeListCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/cmd/GetClockInTimeListCmd.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/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/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/web/AttendanceanalysisAction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/web/AttendanceanalysisAction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/cmd/HandleOverdueVocationCmd.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/cmd/HandleOverdueVocationCmd.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/attendance/vacation/util/VocationCommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/attendance/vacation/util/VocationCommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/util/CommonUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/CommonUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/util/DateUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/DateUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AttendanceSummaryServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/service/impl/AttendanceSummaryServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/engine/common/util/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/engine/common/util/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetClockInTimeItemCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetClockInTimeItemCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetClockInTimeListCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetClockInTimeListCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/cmd/GetScheduleResultListCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/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$/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/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/attendanceanalysis/wrapper/AttendanceAnalysisWrapper.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$4.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$4.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$5.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$5.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$6.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$6.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$7.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl$7.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/component/calendarscheduling/service/impl/WorkRulesServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/cmd/HandleOverdueVocationCmd.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/cmd/HandleOverdueVocationCmd.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/HolidayGenerationJob.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/job/holidaygeneration/tactics/OneTimePayMentWay.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/util/VocationCommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/vacation/util/VocationCommonUtil.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/classes/com/engine/attendance/workflow/service/impl/EnterpriseCalendarServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/attendance/workflow/service/impl/EnterpriseCalendarServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/common/util/CommonUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/CommonUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/common/util/DateUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/DateUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/engine/common/util/Utils.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/engine/common/util/Utils.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/TestAttendanceAllowance/Test.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/TestAttendanceAllowance/Test.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/test-classes/vocation/Test1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/vocation/Test1.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$/test/vocation/Test1.java" beforeDir="false" afterPath="$PROJECT_DIR$/test/vocation/Test1.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -115,7 +126,7 @@
<command value="organzationList" />
</option>
</component>
<component name="RunManager" selected="JUnit.Test1.test2">
<component name="RunManager" selected="JUnit.Test.testAnalysis">
<configuration name="TestObj" type="Application" factoryName="Application" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TestObj" />
<module name="hrm-attendance" />
@ -181,35 +192,35 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test1.test3" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<configuration name="Test.testAnalysis" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="hrm-attendance" />
<shortenClasspath name="MANIFEST" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="workflow.*" />
<option name="PATTERN" value="TestAttendanceAllowance.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="workflow" />
<option name="MAIN_CLASS_NAME" value="workflow.Test1" />
<option name="METHOD_NAME" value="test3" />
<option name="PACKAGE_NAME" value="TestAttendanceAllowance" />
<option name="MAIN_CLASS_NAME" value="TestAttendanceAllowance.Test" />
<option name="METHOD_NAME" value="testAnalysis" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="TestHandleOverdueVocation.test1" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<configuration name="Test.testJob" 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.Test" />
<option name="METHOD_NAME" value="testJob" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
@ -224,11 +235,11 @@
</configuration>
<recent_temporary>
<list>
<item itemvalue="JUnit.Test1.test2" />
<item itemvalue="JUnit.Test.testAnalysis" />
<item itemvalue="JUnit.Test1.test3 (1)" />
<item itemvalue="JUnit.Test.testJob" />
<item itemvalue="JUnit.Test1.test2" />
<item itemvalue="JUnit.Test1.test1" />
<item itemvalue="JUnit.Test1.test3" />
<item itemvalue="JUnit.TestHandleOverdueVocation.test1" />
</list>
</recent_temporary>
</component>
@ -672,7 +683,12 @@
<workItem from="1717392850003" duration="7014000" />
<workItem from="1717400027080" duration="8076000" />
<workItem from="1717464908378" duration="2433000" />
<workItem from="1717479367551" duration="594000" />
<workItem from="1717479367551" duration="2207000" />
<workItem from="1717487687547" duration="5997000" />
<workItem from="1717495483305" duration="5307000" />
<workItem from="1717551326927" duration="7073000" />
<workItem from="1717565799282" duration="8912000" />
<workItem from="1717577182099" duration="2331000" />
</task>
<servers />
</component>
@ -721,11 +737,6 @@
<line>221</line>
<option name="timeStamp" value="108" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/service/impl/WorkOverTimeServiceImpl.java</url>
<line>69</line>
<option name="timeStamp" value="118" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/test/calendarscheduling/TestgetDepartSchedule.java</url>
<line>27</line>
@ -733,9 +744,14 @@
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/common/util/DateUtil.java</url>
<line>154</line>
<line>158</line>
<option name="timeStamp" value="138" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/com/engine/attendance/attendanceanalysis/wrapper/UpdateAttendanceResultWrapper.java</url>
<line>407</line>
<option name="timeStamp" value="155" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<watches-manager>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -15,6 +15,9 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
*/
@Slf4j
public class GetClockInTimeItemCmd extends AbstractCommonCommand<Map<String,Object>> {
public GetClockInTimeItemCmd(Map<String, Object> params){

@ -127,7 +127,7 @@ public class GetClockInTimeListCmd extends AbstractCommonCommand<Map<String,Obje
lastestTime = lastTime;
}
boolean mark = false;
if (DateUtil.getTime(earliestTime).compareTo(DateUtil.getTime(needGetDate+" 00:00:00")) < 0){
//当最早打卡时间点在前一天时,获取前一天的出勤结果打卡数据
String earliestDate = earliestTime.split(" ")[0];
@ -148,11 +148,13 @@ public class GetClockInTimeListCmd extends AbstractCommonCommand<Map<String,Obje
String out = Util.null2String(clockIntime.get("c"+i));
if (!"".equals(out) && !"NULL".equals(out)){
if (DateUtil.getTime(out).compareTo(DateUtil.getTime(earliestTime)) > 0){
mark = true;
earliestTime = out;
}
break;
}else if (!"".equals(in) && !"NULL".equals(in)){
if (DateUtil.getTime(in).compareTo(DateUtil.getTime(earliestTime)) > 0){
mark = true;
earliestTime = in;
}
break;
@ -160,6 +162,10 @@ public class GetClockInTimeListCmd extends AbstractCommonCommand<Map<String,Obje
}
}
}
if (mark){
earliestTime = DateUtil.AfterSeconds(earliestTime,1);
}
log.info("earliestTime :[{}],lastestTime: [{}]",earliestTime,lastestTime);
String finalEarliestTime = earliestTime;
String finalLastestTime = lastestTime;

@ -224,13 +224,16 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
}
public List<Map<String,Object>> getDate(Map<String,Object> param){
String userId = params.get("pbdx").toString();
String nd = Util.null2String(param.get("nd"));
String glpb = Util.null2String(param.get("glpb"));
String sql = "select nd,rq,nlrq,rqlx,xq,rlmc from uf_jcl_kq_rlxx a left join uf_jcl_kq_glpb b on a.rlmc=b.qyrl where b.id=? and a.nd=? ";
List<Map<String,Object>> dataList=null;
if ("".equals(glpb)){
sql = "select a.nd,a.rq,a.nlrq,a.rqlx,a.xq,a.rlmc from uf_jcl_kq_rlxx a left join uf_jcl_kq_rlmc b on a.rlmc=b.id where a.nd=? and b.mrrl=1";
dataList = DbTools.getSqlToList(sql,nd);
sql = "select subcompanyid1 from hrmresource where id =?";
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
String subcompanyid1 = departMentMap.get("subcompanyid1").toString();
dataList = Utils.getDefaultDateList(subcompanyid1,nd);
}else {
dataList = DbTools.getSqlToList(sql,glpb,nd);
}

@ -572,19 +572,11 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
/**
*
*/
if (scheduleResult.size() > 0) {
List<Map<String, Object>> restScheduleList = scheduleResult.stream().filter(e -> ClassSegmentTypeEnum.REST_AND_DINE.getKey().equals(e.get("bdlx")) || ClassSegmentTypeEnum.REST_PERIOD.getKey().equals(e.get("bdlx"))
|| ClassSegmentTypeEnum.DINING_PERIOD.getKey().equals(e.get("bdlx"))).collect(Collectors.toList());
for (int i=0;i<restScheduleList.size();i++){
Map<String, Object> restSchedule = restScheduleList.get(i);
String dtsfdx = Util.null2String(restSchedule.get("dtsfdx"));
String dtzddxfz = Util.null2String(restSchedule.get("dtzddxfz"));
String dtdxhs = Util.null2String(restSchedule.get("dtdxhs"));
if (CheckBoxEnum.CHECKED.getKey().equals(dtsfdx)){
List<Map<String, Object>> restScheduleList = scheduleResult.stream().filter(e -> (ClassSegmentTypeEnum.REST_AND_DINE.getKey().equals(e.get("bdlx")) || ClassSegmentTypeEnum.REST_PERIOD.getKey().equals(e.get("bdlx"))
|| ClassSegmentTypeEnum.DINING_PERIOD.getKey().equals(e.get("bdlx"))) && CheckBoxEnum.CHECKED.getKey().equals(e.get("dtsfdx"))).collect(Collectors.toList());
if (restScheduleList.size() > 0){
}
}
}
/**
* 22
*/
@ -881,4 +873,6 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
return false;
}
}
}

@ -34,7 +34,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
public void execute() {
log.info("********AttendanceAnalysisJob start********");
String queryUserSql = "select id from hrmresource where (status = 0 or status = 1 or status = 2 or status = 3) and status != 10";
String queryUserSql = "select id from hrmresource";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String beforeFourDayDate = DateUtil.getCurrentDateMinusDay(4);
@ -52,9 +52,10 @@ public class AttendanceAnalysisJob extends BaseCronJob {
dataList.addAll(makeUpList);
}
dataList = dataList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
sql = "select sjzt,sgsj,ygid,rq from uf_jcl_kq_cqjg where rq>=? and rq<=?";
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()));
for (Map<String,Object> userMap:userList){
String userId = Util.null2String(userMap.get("id"));
@ -73,7 +74,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
Map<String,Object> workHourdataMap = basicsetService.getWorkHoursItemByPerson(paramMap);
List<Map<String,Object>> workHourItems = (List<Map<String,Object>>)workHourdataMap.get("data");
attendanceAnalysisService.attendanceAnalysis(userId,collect.get(userMap.get("id")),attendanceItems,workHourItems,clockInTimeMap);
attendanceAnalysisService.attendanceAnalysis(userId,nowDate,collect.get(userMap.get("id")),attendanceItems,workHourItems,clockInTimeMap,attendaceGroupById.get(userId));
}
Map<String,Object> param = Maps.newHashMap();
param.put("startDate",DateUtil.beforeDay(nowDate,1));

@ -43,9 +43,9 @@ public class AttendanceanalysisAction {
try {
Map<String,Object> paramMap = ParamUtil.request2Map(request);
// Map<String,Object> paramMap = Maps.newHashMap();
// paramMap.put("startDate","2024-05-02");
// paramMap.put("endDate","2024-05-02");
// paramMap.put("userIds","27");
// paramMap.put("startDate","2024-04-28");
// paramMap.put("endDate","2024-04-28");
// paramMap.put("userIds","31");
String startDate = Util.null2String(paramMap.get("startDate"));
@ -55,7 +55,7 @@ public class AttendanceanalysisAction {
String userIds = Util.null2String(paramMap.get("userIds"));
int betweenDays = DateUtil.getBetWeenDays(startDate,endDate);
if ("".equals(userIds)){
String queryUserSql = "select id from hrmresource where (status = 0 or status = 1 or status = 2 or status = 3) and status != 10";
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);
@ -67,9 +67,11 @@ public class AttendanceanalysisAction {
}
dataList = dataList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
sql = "select sjzt,sgsj,ygid,rq from uf_jcl_kq_cqjg where rq>=? and rq<=?";
List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,startDate,endDate);
Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString()));
for (Map<String,Object> userMap :userList){
String userId = userMap.get("id").toString();
@ -97,16 +99,22 @@ public class AttendanceanalysisAction {
classesParamMap.put("pblx","0");
classesParamMap.put("pbdx",userId);
classesParamMap.put("current","1");
classesParamMap.put("pageSize",10);
classesParamMap.put("pageSize",DateUtil.getBetWeenDays(startBeforeDate,endAfterDate)+1);
classesParamMap.put("recurrence",1);
classesParamMap.put("clockInTimeMap",clockInTimeMap);
classesParamMap.put("clockInData",dataList);
classesParamMap.put("attendanceItems",attendanceItems);
Map<String,Object> schedulMap = utilService.getSchedulingInFormation(classesParamMap);
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();
if (attendaceResult != null && attendaceResult.size() > 0) {
attendaceResultMap = attendaceGroupById.get(userId).stream().collect(Collectors.groupingBy(e -> e.get("rq").toString()));
}
for (int i=0; i<=betweenDays;i++){
String date = DateUtil.AfterDay(startDate,i);
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap);
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap,attendaceResultMap.get(date));
}
allowanceService.addAllowanceRecords(paramMap);
}
@ -124,6 +132,11 @@ public class AttendanceanalysisAction {
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
sql = "select sjzt,sgsj,ygid,rq from uf_jcl_kq_cqjg where rq>=? and rq<=? and ygid in ("+userIds+")";
List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,startDate,endDate);
Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString()));
for (String userId : userIds.split(",")){
/**获得人员考勤项目*/
Map<String,Object> param = Maps.newHashMap();
@ -150,16 +163,21 @@ public class AttendanceanalysisAction {
classesParamMap.put("pblx","0");
classesParamMap.put("pbdx",userId);
classesParamMap.put("current","1");
classesParamMap.put("pageSize",10);
classesParamMap.put("pageSize",DateUtil.getBetWeenDays(startBeforeDate,endAfterDate)+1);
classesParamMap.put("recurrence",1);
classesParamMap.put("clockInTimeMap",clockInTimeMap);
classesParamMap.put("clockInData",dataList);
classesParamMap.put("attendanceItems",attendanceItems);
Map<String,Object> schedulMap = utilService.getSchedulingInFormation(classesParamMap);
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();
if (attendaceResult != null && attendaceResult.size() > 0) {
attendaceResultMap = attendaceGroupById.get(userId).stream().collect(Collectors.groupingBy(e -> e.get("rq").toString()));
}
for (int i=0; i<=betweenDays;i++){
String date = DateUtil.AfterDay(startDate,i);
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap);
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),attendanceItems,schedulMap,workHourItems,clockInTimeMap,attendaceResultMap.get(date));
}
}
paramMap.put("empIds",paramMap.get("userIds"));

@ -37,18 +37,19 @@ public class AttendanceAnalysisWrapper extends Service {
/**
*
*
* @param userId id
* @param dataList
* @param attendanceItems
*/
public void attendanceAnalysis(String userId, List<Map<String,Object>> dataList,List<Map<String,Object>> attendanceItems,List<Map<String,Object>> workHourItems,Map<String,Map<String,Object>> clockInTimeMap){
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) {
log.info("***********analysis userId:{} start***********", userId);
log.info("clockInTimeDate : [{}]", dataList);
String beforeFourDayDate = DateUtil.getCurrentDateMinusDay(4);
String beforeTwoDayDate = DateUtil.getCurrentDateMinusDay(2);
String beforeOneDayDate = DateUtil.getCurrentDateMinusDay(1);
String nowDate = DateUtil.getCurrentDate();
String beforeFourDayDate = DateUtil.beforeDay(analysisDate, 4);
String beforeTwoDayDate = DateUtil.beforeDay(analysisDate, 2);
String beforeOneDayDate = DateUtil.beforeDay(analysisDate, 1);
String nowDate = analysisDate;
/** 打卡数据 */
Map<String, List<Map<String, Object>>> collect = Maps.newHashMap();
if (dataList != null && dataList.size() > 0) {
@ -77,33 +78,53 @@ public class AttendanceAnalysisWrapper extends Service {
getClockTimeParam.put("schedulingResultCollect", schedulingResultsMap);
getClockTimeParam.put("clockInTimeMap", clockInTimeMap);
getClockTimeParam.put("userId", userId);
//前一天打卡数据
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();
if (attendaceResult != null && attendaceResult.size() > 0) {
attendaceResultMap = attendaceResult.stream().collect(Collectors.groupingBy(e -> e.get("rq").toString()));
}
List<Map<String, Object>> beforeOneDayDateattendaceResult = attendaceResultMap.get(beforeOneDayDate);
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);
clockInTimeMap.put(beforeOneDayDate, recordDataTime1);
}
getClockTimeParam.put("date", beforeTwoDayDate);
List<Map<String, Object>> beforeTwoDayDateattendaceResult = attendaceResultMap.get(beforeTwoDayDate);
if (beforeTwoDayDateattendaceResult == null || beforeTwoDayDateattendaceResult.size() == 0 || (!CheckBoxEnum.CHECKED.getKey().equals(beforeTwoDayDateattendaceResult.get(0).get("sgsj")) &&
!"3".equals(beforeTwoDayDateattendaceResult.get(0).get("sjzt")))) {
//前第二天打卡数据
List<Map<String, Object>> beforeTwoDayClockInTimeList = utilService.getClockInTime(getClockTimeParam);
log.info("beforeTwoDayClockInTimeList : [{}]", beforeTwoDayClockInTimeList);
//分析前第二天考勤
Map<String, Object> recordDataTime2 = analysis(userId, beforeTwoDayDate, beforeTwoDayClockInTimeList, schedulingResultsMap.get(beforeTwoDayDate), attendanceItems, workHourItems);
clockInTimeMap.put(beforeTwoDayDate, recordDataTime2);
}
}
/**
*
*
* @param userId id
* @param analysisDate
* @param dataList 23
* @param attendanceItems
*/
public void attendanceAnalysisForApi(String userId,String analysisDate, List<Map<String,Object>> dataList,List<Map<String,Object>> attendanceItems,Map<String,Object> schedulMap,List<Map<String,Object>> workHourItems,Map<String,Map<String,Object>> clockInTimeMap){
public void attendanceAnalysisForApi(String userId, String analysisDate, List<Map<String, Object>> dataList, List<Map<String, Object>> attendanceItems, Map<String, Object> schedulMap, List<Map<String, Object>> workHourItems, Map<String, Map<String, Object>> clockInTimeMap,List<Map<String,Object>> attendaceResult) {
log.info("***********analysis userId:{},analysisDate:{} start***********", userId, analysisDate);
log.info("clockInTimeDate : [{}]", dataList);
log.info("attendaceResult : [{}]",attendaceResult);
if (attendaceResult!=null && attendaceResult.size()>0 && (CheckBoxEnum.CHECKED.getKey().equals(attendaceResult.get(0).get("sgsj")) ||
"3".equals(attendaceResult.get(0).get("sjzt")))) {
return;
}
Map<String, List<Map<String, Object>>> collect = Maps.newHashMap();
if (dataList != null && dataList.size() > 0) {
collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("signdate"))));
@ -123,8 +144,10 @@ public class AttendanceAnalysisWrapper extends Service {
Map<String, Object> recordDataTime = analysis(userId, analysisDate, clockInTimeList, schedulingResultsMap.get(analysisDate), attendanceItems, workHourItems);
clockInTimeMap.put(analysisDate, recordDataTime);
}
/**
*
*
* @param userId
* @param analysisDate
* @param clockInTimeList
@ -189,7 +212,6 @@ public class AttendanceAnalysisWrapper extends Service {
}
List<Map<String, Object>> askForLeaveAndEvctionSchedule = Lists.newArrayList();
//请假记录
Map<String, Object> askForLeaveDataMap = updateAttendanceResultWrapper.getAskForLeave(workingHourparam);
@ -301,7 +323,6 @@ public class AttendanceAnalysisWrapper extends Service {
List<Map<String, Object>> recordWorkOverTime = updateAttendanceResultWrapper.recordWorkOverTime(recordAbnormalParam);
/**
*
*/
@ -339,6 +360,7 @@ public class AttendanceAnalysisWrapper extends Service {
/**
*
*
* @param askForLeaveAndEvctionSchedule
* @param analysisDate
* @return

@ -426,11 +426,7 @@ public class UpdateAttendanceResultWrapper extends Service {
recordParam.put("recordDataTime",Maps.newHashMap());
recordParam.put("attendanceDuration",0);
recordParam.put("formmodeIdMap",Utils.getFormmodeIdMap());
List<Map<String, Object>> recordDataList = Lists.newArrayList();
recordDataList.add(new HashMap(){{
put("item",SystemItemEnum.NO_SCHEDULING.getKey());
put("itemduration","NULL");
}});
List<Map<String, Object>> recordDataList = Lists.newArrayList();;
if (allowanceMap.get("ifnotWork") != null){
//次日免班
recordParam.put("cqzt",CheckBoxEnum.UNCHECKED.getKey());
@ -439,9 +435,14 @@ public class UpdateAttendanceResultWrapper extends Service {
}
if (rqlx.equals(DateTypeEnum.WORK_DAY.getKey()) || rqlx.equals(DateTypeEnum.CHANGECLASS.getKey())){
recordParam.put("cqzt",CheckBoxEnum.CHECKED.getKey());
recordDataList.add(new HashMap(){{
put("item",SystemItemEnum.NO_SCHEDULING.getKey());
put("itemduration","NULL");
}});
}else {
recordParam.put("cqzt",CheckBoxEnum.UNCHECKED.getKey());
recordParam.put("sfxx",CheckBoxEnum.CHECKED.getKey());
}

@ -103,7 +103,6 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
conditions = " departmentid="+deparmentId;
}
RecordSet rs = new RecordSet();
String dbType = rs.getDBType();
List<Map<String,Object>> dataTable = null;
int startindex = (pageindex-1)*pageSize;
int endindex = pageindex*pageSize;
@ -112,32 +111,32 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
String endTime = dateTime+"-"+monthDays;
//当为系统管理员用户登录时
if ("1".equals(userId)){
if ("oracle".equals(dbType) || "dm".equals(dbType) || "jc".equals(dbType) || "st".equals(dbType)){
// if ("oracle".equals(dbType) || "dm".equals(dbType) || "jc".equals(dbType) || "st".equals(dbType)){
//
//
// String sql = "select id,subcompanyid1,departmentid,workcode,lastname,ROWNUM rn from hrmresource where 1=1 and ROWNUM<="+endindex;
// sql = sql+" and "+conditions;
// String queryDatatablesql = "select * from ("+sql+") where rn >"+startindex;
// log.info("queryDatatablesql : {}",queryDatatablesql);
// dataTable = DbTools.getSqlToList(queryDatatablesql);
//
// }else if ("sqlserver".equals(dbType)){
// String sql = "select row_number() over(order by id asc) rownum,id from hrmresource where "+conditions;
// sql = "select top 1 a.id from ( "+sql+" ) a where a.rownum>"+startindex;
// String queryDatatablesql = "select top "+pageSize+" id,subcompanyid1,departmentid,workcode,lastname from hrmresource where id >=("+sql+") and "+conditions;
// log.info("queryDatatablesql : {}",queryDatatablesql);
// dataTable = DbTools.getSqlToList(queryDatatablesql);
String sql = "select id,subcompanyid1,departmentid,workcode,lastname,ROWNUM rn from hrmresource where 1=1 and ROWNUM<="+endindex;
sql = sql+" and "+conditions;
String queryDatatablesql = "select * from ("+sql+") where rn >"+startindex;
log.info("queryDatatablesql : {}",queryDatatablesql);
dataTable = DbTools.getSqlToList(queryDatatablesql);
}else if ("sqlserver".equals(dbType)){
String sql = "select row_number() over(order by id asc) rownum,id from hrmresource where "+conditions;
sql = "select top 1 a.id from ( "+sql+" ) a where a.rownum>"+startindex;
String queryDatatablesql = "select top "+pageSize+" id,subcompanyid1,departmentid,workcode,lastname from hrmresource where id >=("+sql+") and "+conditions;
log.info("queryDatatablesql : {}",queryDatatablesql);
dataTable = DbTools.getSqlToList(queryDatatablesql);
}else {
String sql = "select id from hrmresource where "+conditions+" limit "+startindex+",1";
String querySql = "select id,subcompanyid1,departmentid,workcode,lastname from hrmresource where id >=("+sql+") and "+conditions+" limit "+pageSize;
log.info("queryDatatablesql : {}",querySql);
dataTable = DbTools.getSqlToList(querySql);
// }else {
// String sql = "select id from hrmresource where "+conditions+" limit "+startindex+",1";
// String querySql = "select id,subcompanyid1,departmentid,workcode,lastname from hrmresource where id >=("+sql+") and "+conditions+" limit "+pageSize;
// log.info("queryDatatablesql : {}",querySql);
// dataTable = DbTools.getSqlToList(querySql);
// }
String querySql = "select id,subcompanyid1,departmentid,workcode,lastname from hrmresource ";
if (!conditions.equals("")){
querySql = querySql+" where "+conditions;
}
dataTable = DbTools.getSqlToList(querySql);
}else {
String querySql = "select id,subcompanyid1,departmentid,workcode,lastname from hrmresource ";
if (!conditions.equals("")){
@ -201,6 +200,17 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
}
}
}
int total = dataTable.size();
resultMap.put("count",total);
if (endindex > total){
endindex = total;
}
startindex = endindex-pageSize;
if (startindex < 0){
startindex = 0;
}
dataTable = dataTable.subList(startindex,endindex);
Map<String,Object> param = Maps.newHashMap();
param.put("tableName",params.get("tableName"));
@ -268,7 +278,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
resultMap.put("datas",datas);
resultMap.put("columns",getCloumns(monthDays,startTime));
resultMap.put("pagesize",pageSize);
resultMap.put("count",dataTable.size());
resultMap.put("pageindex",pageindex);
return resultMap;
}
@ -277,10 +287,11 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
List<Map<String,Object>> cloumns = Lists.newArrayList();
cloumns.add(new HashMap(){{
put("title","编号");
put("width",80);
put("width",120);
put("dataIndex","workcode");
put("key","workcode");
put("fixed","left");
put("height",40);
put("align","center");
}});
cloumns.add(new HashMap(){{
@ -289,22 +300,25 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
put("dataIndex","lastname");
put("key","lastname");
put("fixed","left");
put("height",40);
put("align","center");
}});
cloumns.add(new HashMap(){{
put("title","分部");
put("width",80);
put("width",120);
put("dataIndex","subcompany");
put("key","subcompany");
put("fixed","left");
put("height",40);
put("align","center");
}});
cloumns.add(new HashMap(){{
put("title","部门");
put("width",80);
put("width",120);
put("dataIndex","department");
put("key","department");
put("fixed","left");
put("height",40);
put("align","center");
}});
@ -314,6 +328,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
map.put("dataIndex",DateUtil.AfterDay(startTime,i));
map.put("key",i+1);
map.put("width",80);
map.put("height",40);
map.put("isCalendar",0);
cloumns.add(map);
}

@ -418,7 +418,7 @@ public class CommonUtil {
log.info("empGroupId : " + id + ", empIdsByGroup : " + empIdsByGroup);
//查询目标人员信息
if (empIdsByGroup.size() > 0) {
String querySql = "select * from hrmresource where id = in ("+String.join(",",empIdsByGroup)+")";
String querySql = "select * from hrmresource where id in ("+String.join(",",empIdsByGroup)+")";
if (!minSecurityLevel.equals("")) {
querySql = querySql + " and seclevel >= " +minSecurityLevel;
}
@ -627,10 +627,16 @@ public class CommonUtil {
if (dataList.size() > 0){
rqlx = dataList.get(0).get("rqlx").toString();
}else {
rqlx = Utils.getDefaultDateType(userId,date);
sql = "select subcompanyid1 from hrmresource where id =?";
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
String subcompanyid1 = departMentMap.get("subcompanyid1").toString();
rqlx = Utils.getDefaultDateType(subcompanyid1,date);
}
}else {
rqlx = Utils.getDefaultDateType(userId,date);
String sql = "select subcompanyid1 from hrmresource where id =?";
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
String subcompanyid1 = departMentMap.get("subcompanyid1").toString();
rqlx = Utils.getDefaultDateType(subcompanyid1,date);
}
return rqlx;
}

@ -67,6 +67,10 @@ public class DateUtil {
LocalDateTime localDateTime = DateUtil.getTime(time);
return localDateTime.plusMinutes(minutes).format(yyyyMMddHHmm);
}
public static String AfterSeconds(String time,long seconds){
LocalDateTime localDateTime = DateUtil.getTime(time);
return localDateTime.plusSeconds(seconds).format(yyyyMMddHHmmss);
}
public static String nowMonth(String time){
LocalDateTime localDateTime = LocalDate.parse(time, yyyyMMdd).atStartOfDay();

@ -655,15 +655,12 @@ public class Utils<T> {
}
/**
*
* @param userId
* @param subcompanyid1
* @param date
* @return
*/
public static String getDefaultDateType(String userId,String date){
public static String getDefaultDateType(String subcompanyid1,String date){
String rqlx = "";
String sql = "select subcompanyid1 from hrmresource where id =?";
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
String subcompanyid1 = departMentMap.get("subcompanyid1").toString();
String parentSubcompanyids = "";
try {
@ -672,7 +669,7 @@ public class Utils<T> {
log.error("getDefaultDateType error:[{}]",e);
}
parentSubcompanyids = subcompanyid1+parentSubcompanyids;
sql = "select b.szjg,a.rqlx from uf_jcl_kq_rlxx a left join uf_jcl_kq_rlmc b on a.rlmc=b.id where b.mrrl=1 and b.szjg in ("+parentSubcompanyids+") and a.rq=?";
String sql = "select b.szjg,a.rqlx from uf_jcl_kq_rlxx a left join uf_jcl_kq_rlmc b on a.rlmc=b.id where b.mrrl=1 and b.szjg in ("+parentSubcompanyids+") and a.rq=?";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,date);
Map<String,Object> dataMap = dataList.stream().collect(Collectors.toMap(e->e.get("szjg").toString(),e->e.get("rqlx")));
for (int i=0;i<parentSubcompanyids.split(",").length;i++){
@ -684,6 +681,33 @@ public class Utils<T> {
}
return rqlx;
}
/**
*
* @param subcompanyid1
* @param year
* @return
*/
public static List<Map<String,Object>> getDefaultDateList(String subcompanyid1,String year){
List<Map<String,Object>> resultList=null;
String parentSubcompanyids = "";
try {
parentSubcompanyids = new SubCompanyComInfo().getAllParentSubcompanyId(subcompanyid1,parentSubcompanyids);
}catch (Exception e){
log.error("getDefaultDateType error:[{}]",e);
}
parentSubcompanyids = subcompanyid1+parentSubcompanyids;
String sql = "select a.nd,a.rq,a.nlrq,a.rqlx,a.xq,a.rlmc,b.szjg from uf_jcl_kq_rlxx a left join uf_jcl_kq_rlmc b on a.rlmc=b.id where b.mrrl=1 and b.szjg in ("+parentSubcompanyids+") and a.nd=?";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,year);
Map<String,List<Map<String,Object>>> dataMap = dataList.stream().collect(Collectors.groupingBy(e->e.get("szjg").toString()));
for (int i=0;i<parentSubcompanyids.split(",").length;i++){
String subId = parentSubcompanyids.split(",")[i];
resultList = dataMap.get(subId);
if (resultList != null){
break;
}
}
return resultList;
}
/**
*

@ -1,5 +1,6 @@
package TestAttendanceAllowance;
import com.engine.attendance.attendanceanalysis.job.AttendanceAnalysisJob;
import com.engine.attendance.attendanceanalysis.web.AttendanceanalysisAction;
import com.engine.attendance.component.calendarscheduling.web.WorkRulesController;
import com.engine.common.util.DateUtil;
@ -28,12 +29,17 @@ Test extends beforlog{
@org.junit.Test
public void test2() throws Exception{
Map<String,Object> paramMap = Maps.newHashMap();
paramMap.put("startDate","2024-04-15");
paramMap.put("endDate","2024-04-15");
paramMap.put("startDate","2024-04-28");
paramMap.put("endDate","2024-04-28");
paramMap.put("userIds","31");
WorkRulesController action = new WorkRulesController();
action.getDepartSchedule(null,null);
}
@org.junit.Test
public void testJob() {
AttendanceAnalysisJob job = new AttendanceAnalysisJob();
job.execute();
}
}

@ -43,8 +43,8 @@ public class Test1 extends beforlog {
}
@Test
public void test3() throws Exception{
System.out.println(DateUtil.nextMonth("2022-12-31",6,DateUtil.yyyyMMdd));
System.out.println(DateUtil.getBetWeenMonths("2022-12-31","2023-06-30"));
System.out.println(DateUtil.getTime("2024-06-05 12:11:01"));
}

Loading…
Cancel
Save